接続
odbc connect $DSN $UseName $Password
- $DSN
- データセット名。大文字,小文字の区別なし。
ユーザ名,パスワードが不要なデータセットの場合は省略可。 - $UseName
- ユーザー名。 大文字,小文字の区別なし。
- $Password
- パスワード。大文字,小文字の区別なし。
- 戻り値
- 接続番号(0から19まで。それ以外はエラー)。
- SqlStatus
- 戻り値と同じ。
接続は時間がかかるので初期設定で行っておくのが良い。
20個のデータセットと接続可能。
データセット名(DSN)以外の接続方法(接続文字など)は未ポート。
SQL実行
odbc sql $ConnectNo $SQL
- $ConnectNo
- 接続番号。[odbc connect]の戻り値。
接続番号を省略すると直前に接続されたデータセットが採用される。 - $SQL
- SQLステートメント。
- 戻り値
- 1:成功。それ以外はエラー。
- SqlStatus
- 同じ戻り値がセット。
変更された行数を得る
odbc result $ConnectNo
- $ConnectNo
- 接続番号。[odbc connect]の戻り値。
接続番号を省略すると直前に接続されたデータセットが採用される。 - 戻り値
- DELETE,UPDATE,INSERTされた行数。
- SqlStatus
- 同じ戻り値がセット。
行のフェッチ
odbc out $ConnectNo
- $ConnectNo
- 接続番号。[odbc connect]の戻り値。
接続番号を省略すると直前に接続されたデータセットが採用される。 - 戻り値
- フィールド(カラム)数。0以下は失敗。0はNODATA
- SqlStatus
- 同じ戻り値がセット。
SQL実行後に用いる。
フィールド名称を得る
odbc field $ConnectNo
- $ConnectNo
- 接続番号。[odbc connect]の戻り値。接続番号を省略すると直前に接続されたデータセットが採用される。
- 戻り値
- ブランクで区切られたフィールド名のリスト。
- SqlStatus
- 成功:1 エラー:0
最初のout実行後に1回だけ用いる。
フィールド値を文字列変換して取り出す
odbc string $ConnectNo $Size
- $ConnectNo
- 接続番号。[odbc connect]の戻り値。接続番号を省略すると直前に接続されたデータセットが採用される。
- $Size
- バッファサイズ。省略すると2024バイトが割り当てられる。
- 戻り値
- Tclのリスト形式によるフィールド値のリスト。
- SqlStatus
- フィールド数がセット。(0はエラー)
out実行後に1回だけ用いる。
切断
odbc close $ConnectNo
- $ConnectNo
- 接続番号。[odbc connect]の戻り値。接続番号を省略すると直前に接続されたデータセットが採用される。
- 戻り値
- NULL文字列
サンプルプログラム
odbc Connect rodas rodas rodas
odbc Sql SELECT * FROM ROSEN_F
odbc Out; #1行目をフェッチ
if {$SqlStatus > 0 } {
set field_name [odbc Field]
puts $field_name; #フィールド名を表示
while 1 {
set line [odbc String]
puts $line; #1行プリントアウト
odbc Out; #次の行をフェッチ
if {$SqlStatus<=0} break
}
}
odbc Close