## Tcl8.6.17/Tk8.6.17 Documentation > tdbc::odbc Package Commands, version 1.1.12 > tdbc_odbc

### Tcl/Tk Applications | Tcl Commands | Tk Commands | [incr Tcl] Package Commands | SQLite3 Package Commands | TDBC Package Commands | tdbc::mysql Package Commands | tdbc::odbc Package Commands | tdbc::postgres Package Commands | tdbc::sqlite3 Package Commands | Thread Package Commands | Tcl C API | Tk C API | [incr Tcl] Package C API | TDBC Package C API

  NAME
    tdbc::odbc — TDBC-ODBC の橋渡し　　　　TDBC-ODBC bridge
  構文SYNOPSIS
  説明DESCRIPTION
    add
    add_system
    configure
    configure_system
    remove
    remove_system
  接続の指示項目CONNECTION OPTIONS
  用例 EXAMPLES
  追加的な接続方法 ADDITIONAL CONNECTION METHODS
    $connection evaldirect sqlStatement
  SEE ALSO
  KEYWORDS
  著作権 COPYRIGHT

### NAME

tdbc::odbc — TDBC-ODBC の橋渡し　　　　TDBC-ODBC bridge

### 構文SYNOPSIS

package require tdbc::odbc 1.0

tdbc::odbc::connection create db connectionString ?-option value...?
tdbc::odbc::connection new connectionString ?-option value...?

tdbc::odbc::datasources ?-system|-user?

tdbc::odbc::drivers

tdbc::odbc::datasource command driverName ?keyword-value?...

### 説明DESCRIPTION

tdbc::odbc 駆動譜は Tcl DataBase Connectivity (TDBC) に準拠する基礎データ対話機能を提供して Tcl 記述譜を ODBC 対話機能が存在するどの様な SQL 基礎データにも接続を許容する｡C 言語で､基礎データ駆動譜を如何に書くかの生きた実例として提供されるので､駆動譜記述家は更なる開発の為の出発点を有している｡　　　　　　 The tdbc::odbc driver provides a database interface that conforms to Tcl DataBase Connectivity (TDBC) and allows a Tcl script to connect to any SQL database presenting an ODBC interface. It is also provided as a worked example of how to write a database driver in C, so that driver authors have a starting point for further development.

ODBC 基礎データへの接続は､tdbc::odbc::connection create を起動し､接続操作子として使用される名前を渡し､標準 ODBC 接続っ文字列を続けることで確立される｡ 別法としては､tdbc::odbc::connection new を基礎データ接続生成に使用でき､自動的に代入された名前を伴う｡ tdbc::odbc::connection new からの返り値は接続操作子に選ばれた名前である｡　　　　　　 Connection to an ODBC database is established by invoking tdbc::odbc::connection create, passing it the name to be used as a connection handle, followed by a standard ODBC connection string. As an alternative, tdbc::odbc::connection new may be used to create a database connection with an automatically assigned name. The return value from tdbc::odbc::connection new is the name that was chosen for the connection handle.

接続文字列は最低限検索用語 DRIVER か DSN を含む､そして､特定の ODBC 駆動譜に定義された他のものを含むかもしれない(もし､局部 ODBC 系が画像使用者対話機能を運営している場合､-parent 指示項目(下を参照のこと)は､空接続文字列と一緒に tdbc::odbc::connection create 呼出しを許容しているかもしれない)｡　　　　　　　 The connection string will include at least a DRIVER or DSN keyword, and may include others that are defined by a particular ODBC driver. (If the local ODBC system supports a graphical user interface, the -parent option (see below) may allow calling tdbc::odbc::connection create with an empty connection string.)

tdbc::odbc::connection create の副作用は､新しく基礎データへの接続を生成する事である｡ 基礎データを操作する為の接続を如何に使用するかの詳細については､tdbc::connection(n) を参照されたい｡　　　　　　 The side effect of tdbc::odbc::connection create is to create a new database connection.. See tdbc::connection(n) for the details of how to use the connection to manipulate a database.

標準 TDBC 対話機能の他に､tdbc::odbc は三つの追加命令を運用している｡その第１は､tdbc::odbc::datasources であり､(接続文字列内で DSN 検索用語を伴う接続の為の)算譜に利用可能な名前のついたデータ原資を数え上げている Tclリストを返す｡tdbc::odbc::datasources の結果はそれぞれ -system か -user 指定によりシステムデータ源譜のみか､使用者データ源譜のみに限定できる｡　　　　　　 In addition to a standard TDBC interface, tdbc::odbc supports three additional ccommands. The first of these, tdbc::odbc::datasources, which returns a Tcl list enumerating the named data sources available to the program (for connection with the DSN keyword in the connection string). The result of tdbc::odbc::datasources may be constrained to only system data sources or only user data sources by including the -system or -user options, respectively.

tdbc::odbc::drivers 命令は辞書を返し､その検索用語は､接続文字列内で DRIVER 検索用語のために利用可能な駆動譜の名前であり､その値は､駆動譜の記述である｡　　　　　　　 The tdbc::odbc::drivers command returns a dictionary whose keys are the names of drivers available for the DRIVER keyword in the connection string, and whose values are descriptions of the drivers.

tdbc::odbc::datasource 命令は ODBC 搭載応用算譜対話機能を運営しているシステム上の名前の付いたデータ源の構成設定設定を許容する｡ それは､遂行すべき操作と､問題になっている基礎データのための駆動譜の名前と､与えられた駆動譜によって解釈された用語-値対の群とを指定する命令を受入れる｡命令は次の内の一つでなければならない:　　　　　 The tdbc::odbc::datasource command allows configuration of named data sources on those systems that support the ODBC Installer application programming interface. It accepts a command, which specifies the operation to be performed, the name of a driver for the database in question, and a set of keyword-value pairs that are interpreted by the given driver. The command must be one of the following:

add
  使用者データ源を追加する｡検索用語-値対は少なくとも､データ源に名前付けしている指示項目 DSN を含まねばならない｡　　　　　　 Adds a user data source. The keyword-value pairs must include at least a DSN option naming the data source

add_system
  システムデータ源を追加する｡検索用語-値対は少なくとも､データ源に名前付けしている指示項目 DSN を含まねばならない｡　　　　　　 Adds a system data source. The keyword-value pairs must include at least a DSN option naming the data source

configure
  使用者データ源を構成設定設定する｡ 検索用語-値対は通常､データ源に名前付けしている指示項目 DSN を含むことになる｡ ある駆動譜は､Windows上のマイクロソフト Access 駆動譜への CREATE_DB 指定の如く､他の指示項目を運営する｡　　　　　　　 Configures a user data source. The keyword-value pairs will usually include a DSN option naming the data source. Some drivers will support other options, such as the CREATE_DB option to the Microsoft Access driver on Windows.

configure_system
  システムデータ源を構成設定設定する｡　　　　　　 Configures a system data source.

remove
  使用者データ源を取外す｡ 検索用語-値対は少なくとも､取外すデータ源を指定する DSN 指定を含まねばならない｡　　　　　　 Removes a user data source. The keyword-value pairs must include a DSN option specifying the data source to remove.

remove_system
  システムデータ源を取外す｡ 検索用語-値対は少なくとも､取外すデータ源を指定する DSN 指定を含まねばならない｡　　　　　　 Removes a system data source. The keyword-value pairs must include a DSN option specifying the data source to remove.

### 接続の指示項目CONNECTION OPTIONS

tdbc::odbc::connection create 対象 命令は､全ての TDBC 駆動譜に共通の -encoding と -isolation と -readonly と -timeoutの指示項目を運営する｡ -encoding指示項目は､要求された文字符号が系の文字符号と同じである時にのみ成功する; tdbc::odbc は ODBC 駆動譜に別の文字符号を指定することは試みない(ある駆動譜は接続文字列内に指定された文字符号を受け入れる)｡　　　　　　 The tdbc::odbc::connection create object command supports the -encoding, -isolation, -readonly and -timeout options common to all TDBC drivers. The -encoding option will succeed only if the requested encoding is the same as the system encoding; tdbc::odbc does not attempt to specify alternative encodings to an ODBC driver. (Some drivers accept encoding specifications in the connection string.)

更に､もし要求する解釈実行機能内に Tk が在り､且つ､局所システムの ODBC 駆動譜管理譜が画像使用者対話機能を運営している場合､tdbc::odbc::connection create 対象命令は -parent 指示項目を運営し､その値は Tk 窓の経路名である｡ もしこの指示項目が指定され､且つ､接続文字列が対話機能の接続に必要な全ての情報を指定していない場合､ODBC 駆動譜管理譜は､要求された追加的情報が何であれ､要求の為の問い合わせ箱を表示する｡ 要求している解釈実行機能は､接続が作られた箇所で､使用者が問い合わせ箱を破棄するまで､使用を制限する｡　　　　　　　 In addition, if Tk is present in the requesting interpreter, and the local system's ODBC driver manager supports a graphical user interface, the tdbc::odbc::connection create object command supports a -parent option, whose value is the path name of a Tk window. If this option is specified, and a connection string does not specify all the information needed to connect to an interface, the ODBC driver manager will display a dialog box to request whatever additional information is required. The requesting interpreter will block until the user dismisses the dialog, at which point the connection is made.

### 用例 EXAMPLES

ODBC 接続文字列は駆動譜に固有である為､それを組合せる為に必要な説明書を見付けることは困難である｡ 次の実施例は大多数の Windows 系で動く事が知られ､算譜ができる有用な幾つかの事を提供する｡　　　　　　　 Sincs ODBC connection strings are driver specific, it is often difficult to find the documentation needed to compose them. The following examples are known to work on most Windows systems and provide at least a few useful things that a program can do.

    tdbc::odbc::connection create db \
        "DSN={PAYROLL};UID={aladdin};PWD={Sesame}"

"PAYROLL"と言う名前の付いたデータ源に接続し､使用者名として "aladdin" ､暗証番号として "Sesame" を提供する｡ 接続の名前として db を使う｡　　　　　　　 Connects to a named data source "PAYROLL", providing "aladdin" as a user name and "Sesame" as a password. Uses db as the name of the connection.

    set connString {DRIVER={Microsoft Access Driver (*.mdb)};}
    append connString {FIL={MS Access}\;}
    append connString {DBQ=} \
        [file nativename [file normalize $fileName]]
    tdbc::odbc::connection create db2 -readonly 1 $connString

マイクロソフト社アクセスの名前が $fileName にある基礎データファイルへの接続を開く｡ 基礎データは読出し専用様式で開かれる｡ できた接続は "db2" と呼ばれる｡　　　　　　　 Opens a connection to a Microsoft Access database file whose name is in $fileName. The database is opened in read-only mode. The resulting connection is called "db2".

    tdbc::odbc::connection create db3 \
        "DRIVER=SQLite3;DATABASE=$fileName"

名前が "$fileName" にある SQLite3 基礎データへの接続を開く｡　　　　　　 Opens a connection to a SQLite3 database whose name is in "$fileName".

    tdbc::odbc::datasource add \
        {Microsoft Access Driver (*.mdb)} \
        DSN=MyTestDatabase \
        DBQ=[file native [file normalize $fileName]]

経路名が "$fileName" のマイクロソフト社アクセスファイルに束縛された名前が "MyTestDatabase" の新しい使用者データ源を生成する｡算譜が tdbc::odbc::connection create を呼出ない限り接続は作られない｡ 　　　　　 Creates a new user data source with the name, "MyTestDatabase" bound to a Microsoft Access file whose path name is in "$fileName". No connection is made to the data source until the program calls tdbc::odbc::connection create.

    tdbc::odbc::datasource configure \
        {Microsoft Access Driver (*.mdb)} \
        CREATE_DB=[file native [file normalize $fileName]] \
        General

新しい空のマイクロソフト社アクセス基礎データを "$fileName" で識別されるファイル内に生成する｡算譜が tdbc::odbc::connection create を呼出すまでは､接続は作られない｡　　　 Creates a new, empty Microsoft Access database in the file identified by "$fileName". No connection is made to the database until the program calls tdbc::odbc::connection create.

### 追加的な接続方法 ADDITIONAL CONNECTION METHODS

tdbc::connection(n) 対象への通常の方法に加えて､ODBC データベースへの接続は一つの追加的方法を支援している: In addition to the usual methods on the tdbc::connection(n) object, connections to an ODBC database support one additional method:

$connection evaldirect sqlStatement
  この手段は､与えられた 駆動装置-固有の SQL 符号 sqlStatement を採り､そして､それを準備することなく評価する｡記述は字句解析されてはならず､且つ､変数置換を含んではならない｡ sqlStatement の評価は､零或はそれ以上の行の結果の組を生成する｡命令の結果は辞書のリストであり､($connection allrows -as dicts によって返されるリストに似た書式で)結果の組の中の一行に付き一要素になっている｡この命令は､通常の prepare や preparecall 手段が正確に動く様な処では推奨されない｡それが提供されているので､駆動譜の準備された記述 API (CREATE DATABASE や CREATE PROCEDURE の様な)によって実装されたのではない､或は､字句解析機能によって予約された文字を含む､データ管理言語記述が実行され得る｡ This method takes the given driver-native SQL code sqlStatement and evaluates it without preparing it. The statement is not tokenized and must not contain variable substitutions. Evaluating the sqlStatement produces a result set of zero or more rows. The result of the command is a list of dictionaries, with one list element per row in the result set (in a similar format to the list returned by $connection allrows -as dicts). This command is not recommended for anything where the usual prepare or preparecall methods work correctly. It is provided so that data management language statements that are not implemented by the driver's prepared statement API (such as CREATE DATABASE or CREATE PROCEDURE), or that contain characters that are reserved by the tokenizer, can be executed.

### SEE ALSO

tdbc, tdbc::connection, tdbc::resultset, tdbc::statement

### KEYWORDS

TDBC, SQL, ODBC, database, connectivity, connection

### 著作権 COPYRIGHT

Copyright (c) 2008 by Kevin B. Kenny.