HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2012
0217
eternallyhspdb使用時にMicrosoft SQL Serverに接続できない5解決


eternally

リンク

2012/2/17(Fri) 14:43:03|NO.44908

hspdb.dllを使用してデータベースアクセスのプログラムを作成しているのですが、
テスト時にはACCESSファイルをODBCに登録していたのですが
プログラムが完成したためメインのSQL Server 2008 R2にODBCの設定を変更したら
接続ができなくなってしまいました。

dbopen "DSN=MAIN_SQL"
を実行時にstatに3が入っておりこの時点でエラーとなっています。
ACCESSファイル時とSQL Server時も同じDSN名を使用しています。

ValueSQLにてSQL Serverに接続できることは確認済みです。
下記がODBCのトレースログです。

hsp3 924-cf8 ENTER SQLAllocEnv HENV * 0x01D01F94 hsp3 924-cf8 EXIT SQLAllocEnv with return code 0 (SQL_SUCCESS) HENV * 0x01D01F94 ( 0x02168F58) hsp3 924-cf8 ENTER SQLAllocConnect HENV 0x02168F58 HDBC * 0x01D01F98 hsp3 924-cf8 EXIT SQLAllocConnect with return code 0 (SQL_SUCCESS) HENV 0x02168F58 HDBC * 0x01D01F98 ( 0x0065A178) hsp3 924-cf8 ENTER SQLDriverConnectW HDBC 0x0065A178 HWND 0x00000000 WCHAR * 0x73268B34 [ -3] "******\ 0" SWORD -3 WCHAR * 0x73268B34 SWORD -3 SWORD * 0x00000000 UWORD 0 <SQL_DRIVER_NOPROMPT> hsp3 924-cf8 EXIT SQLDriverConnectW with return code 1 (SQL_SUCCESS_WITH_INFO) HDBC 0x0065A178 HWND 0x00000000 WCHAR * 0x73268B34 [ -3] "******\ 0" SWORD -3 WCHAR * 0x73268B34 <Invalid buffer length!> [-3] SWORD -3 SWORD * 0x00000000 UWORD 0 <SQL_DRIVER_NOPROMPT> DIAG [01000] [Microsoft][ODBC SQL Server Driver][SQL Server]データベース コンテキストが 'MAIN_SQL' に変更されました。 (5701) DIAG [01000] [Microsoft][ODBC SQL Server Driver][SQL Server]言語設定が 日本語 に変更されました。 (5703) hsp3 924-cf8 ENTER SQLFreeConnect HDBC 0x0065A178 hsp3 924-cf8 EXIT SQLFreeConnect with return code -1 (SQL_ERROR) HDBC 0x0065A178 DIAG [S1010] [Microsoft][ODBC Driver Manager] 関数シーケンス エラーです。 (0) hsp3 924-cf8 ENTER SQLFreeEnv HENV 0x02168F58 hsp3 924-cf8 EXIT SQLFreeEnv with return code -1 (SQL_ERROR) HENV 0x02168F58 DIAG [S1010] [Microsoft][ODBC Driver Manager] 関数シーケンス エラーです。 (0)

これからなにかわかることがあるでしょうか?
環境等必要な情報があれば別途書き込みを行います。

環境
OS:Windows 7 Professional SP1
HSPバージョン: 3.3
Server OS:Windows Server 2008 R2 SP1
SQL Server:SQL Server 2008 R2 SP1



この記事に返信する


eternally

リンク

2012/2/17(Fri) 18:49:35|NO.44910

※追記です。

1.
エディションが抜けていました

Server OS:Windows Server 2008 R2 Standard SP1
SQL Server:SQL Server 2008 R2 Standard SP1

2.
ODCBドライバは『SQL Server』、『SQL Server Native Client 10.0』を試しました。
SQL Serverを動かしているマシン上でも、別のマシン上でも変化はありませんでした。
ACCESSファイルは『Microsoft Access Driver (*.mdb)』を使用していました。

3.
試したOSは
・Windows Server 2008 R2 Standard SP1 (x64)
・Windows 7 Professional SP1 (x64)
・Windows XP Professional (x32)

4.
また、DSN指定時に

Dsn=MAIN_SQL;uid=user;pwd=pass;database=MAIN_SQL
も試しましたが変化はありませんでした。



(´ω`)

リンク

2012/2/18(Sat) 16:55:30|NO.44921

どーしてもMSSQL、って場合でなければ、つまりSQLを使いたいんだっていうだけの
場合なら、SQLite+SQLeleという選択肢もありますよ。
ていうか、こっちのが遥かに簡単です。

MySQL以外のODBCへの接続はオレも挫折したクチです。
DSNの正しい指定さえわかれば、たぶん接続できるはずなんですよね。

あんまし参考にならなくて申し訳ありません。(u´ω`)



eternally

リンク

2012/2/19(Sun) 11:27:12|NO.44954

>(´ω`)さん

一応接続文字列も色々試したんですが接続できなかったです。
パスワードの認証かとも思い、下記のも試しましたが効果なしでした。

Driver={SQL Server};Server=<接続先サーバ>;Uid=<ユーザID>;Pwd=<パスワード>;Database=<データベース> 

トレースログの <Invalid buffer length!> がどこのバッファのことをいってるのか分かれば対処のしようもあるのでしょうが・・・。



eternally

リンク

2012/2/20(Mon) 10:04:09|NO.44991

今日も調べていたのですが、
SQL Server側のアクセス履歴を確認すると
どうやらログインまでは達しているようです。
正常にログインが完了したあとの操作が無いのでログイン後に何かしらのエラーが
発生しているようですがサーバー側のログには残っていませんでした。



eternally

リンク

2012/2/20(Mon) 19:17:55|NO.44996

結局原因は分からず、下記サイトのスクリプトを3.3用に書き換えたらうまくいきましたので
とりあえず解決とします。
モジュール化をして使いたいと思います。
http://homepage1.nifty.com/dateshim/soft/odbc_acc.html

サーバーの設定に問題がなく、HSPからもアクセスできたということは
プラグイン側のパラメータの一部にSQL Serverと合わないのがあったんですかね?



ONION software Copyright 1997-2023(c) All rights reserved.