ODBC経由でSQLへの接続を始める前に知っておくと助かることをさらにいくつか。(´ω`)
■SQLサーバ側の準備
例えばMySQLの場合、最低でも1アカウントの作成とポートの開放が必要です。
そして、MySQL Administratorを使えばそのアカウントでサーバに接続&DBの操作が
できることを確認しておきましょう。
■クライアント側の準備
最低でもODBCドライバをインストールするのを忘れないように。
少なくともMySQLの場合は、クライアントマシンが32bit/64bitのどちらにも関わらず、
ドライバは32bit版を使うのが最も無難です。
後述するODBCアドミニストレータで先に接続を確立しておくのが初心者向け。
仕組みがわかってきたら、dbopen命令で接続文字列を直接書くのがいいでしょう。
■ODBCのトレースログ
HSP側ではエラー状況をほとんど把握できませんが、ODBCアドミニストレータに備わっている
ログ機能を使えばかなり把握しやすくなります。
Windows7なら、
① コントロールパネルから「データソース(ODBC)」を実行、ODBCアドミニストレータを起動
② ODBCアドミニストレータの「トレース」タブをクリック
③ 「トレースの開始」ボタンを押せば、ボタン下のパスの場所にログが記録され始める
④ その状態でHSPでソースを実行する
⑤ ODBCアドミニストレータの「トレースの停止」ボタンを押し、ログ内容を閲覧する
全く接続ができなくとも上記ログを見れば、接続文字列がおかしいのか、それとも
接続まではいけてるがそれ以降がおかしいのか等の状況も把握できます。
■接続文字列について
dbopen命令で必要な接続文字列ですが、これは状況によって書き方が変わります。
① ODBCドライバをインストールしただけの場合
接続文字列に、サーバのURLやIDやPASSなどの詳細な情報を記入します。
通信環境に応じてプログラム側で内容を変更できる利点がありますが、そのIDやPASS等で
確実に接続できることがわかっていないとエラーの特定が極めて難しくなります。
"driver="で指定するドライバ名は、ODBCアドミニストレータの「ドライバー」タブ内でリストアップ
されている名前を正確に書いてください。
例: dbopen "driver=MySQL ODBC 3.51 Driver;server=127.0.0.1;user=root;password=rootpass;port=3306;charset=cp932;"
② ODBCドライバの「システムDSN」で既に接続を作ってある場合
接続文字列は、すでに接続が確立されたDSN名をそのまま指定します。
先に接続が確立した設定を使用できるので初心者向きですが、別のサーバに接続する
場合はODBCアドミニストレータで設定変更をしないとならないという不便があります。
ODBCアドミニストレータでの接続の作り方は、別途ググってください。( ゚ω゚ )
※汎用的にサーバへアクセスするための説明ですので、「ユーザDSN」「ファイルDSN」に
ついては説明を省きます。
例: ODBCアドミニストレータで「test」という名でシステムDSNの接続を作ってある場合
dbopen "DSN=test"