状況:従来の古典的なASPコードを使用して、古いサーバから新しいサーバにコードベースを移動しようとしました。MySQL ODBC 5.1ドライバが間違ったデータ型をADODBに返します
コードは、MySQL ODBC 5.1ドライバとADODB.Connectionオブジェクトを使用して、Windowsサーバー上のMySQLデータベースに接続しようとします。
Connection String = "Driver={MySQL ODBC 5.1 Driver};Server=dbserver;Database=dbname;Uid=username;Password=password;Option=3"
クエリ結果は、ADODB.RecordSetオブジェクトで返されます。 私は標準のMySQL整数を含むフィールドにアクセスしようとすると、私はこのエラーを取得:
Microsoft VBScript runtime error '800a01ca'
Variable uses an Automation type not supported in VBScript
私は手動でCLNGを(使用してフィールドを変換した場合)、エラーが解消され、正しい値が返されます。しかし、整数への各参照を手動で検索して手動で変換するコードが多すぎます。
これらの値は、VarType()が19を返します。これは、VBが理解できないLong型のデータ型のようです。 (See here) ODBCドライバは、長い整数に対してVarType 3を返すはずですか? (see here)
接続文字列の "option ="パラメータにオプション16384(NO_BIGINT)を渡そうとしましたが、違いはありませんでした。
これを修正する方法はありますか? Long型のデータ型としてlongを返すためにMySQL ODBCドライバに渡すオプションがあるはずですが、見つけられません。
誰もが言及する前に:はい私たちは古典的なASPが悪いことを知っている。いいえ、私たちはこのコードを他の何かに移植するリソースを持っていません。現行のASPで従来のASPで作業を続けるだけで済みます。
古典的なASPが何らかの形で本質的に悪いと言ってもらえませんか。 (私はMySQLで働いたことがないので、実際の質問には役に立たないが、私はそこに書きたいと思っている) – Martha
@Martha彼らはそれを書いておく必要はない、Classic ASPはそれだけでは悪くない古い。まだ.NETに移行しないでサポートされなければならないプロジェクトがたくさんあります。クライアントはそれがどのように実行されるので、それが置かれたままになっている多くの時間。 – Lankymart
OKだからなぜdownvote?私は何を間違えたのですか? –