TclODBC


  ■接続
  ■SQL実行
  ■変更された行数を得る
  ■行のフェッチ
  ■フィールド名称を得る
  ■フィールド値を文字列変換して取り出す
  ■切断
  ■サンプルプログラム
 


接続

odbc connect $DSN $UseName $Password

$DSN/データセット名。大文字,小文字の区別なし。
ユーザ名,パスワードが不要なデータセットの場合は省略可。
$UseName/ユーザー名。 大文字,小文字の区別なし。
$Password/パスワード。大文字,小文字の区別なし。
戻り値/接続番号(0から19まで。それ以外はエラー)。
SqlStatus/戻り値と同じ。
memo 接続は時間がかかるので初期設定で行っておくのが良い。
  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/同じ戻り値がセット。
memoSQL実行後に用いる。


フィールド名称を得る

odbc field $ConnectNo

$ConnectNo/接続番号。[odbc connect]の戻り値。接続番号を省略すると直前に接続されたデータセットが採用される。
戻り値/ブランクで区切られたフィールド名のリスト。
SqlStatus/成功:1 エラー:0
memo最初のout実行後に1回だけ用いる。


フィールド値を文字列変換して取り出す

odbc string $ConnectNo $Size

$ConnectNo/接続番号。[odbc connect]の戻り値。接続番号を省略すると直前に接続されたデータセットが採用される。
$Size/バッファサイズ。省略すると2024バイトが割り当てられる。
戻り値/Tclのリスト形式によるフィールド値のリスト。
SqlStatus/フィールド数がセット。(0はエラー)
memoout実行後に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

 

(C)FreeSoftNet,Inc.