データベース接続が時々失敗することがあります。conn.open connstr に問題があり、接続クエリでの rs(user.id) の呼び出しにも問題があります。最近、顧客用の顧客管理システムを構築しているときに次のような問題が発生しました。
次の接続文字列を使用した場合の状況は次のとおりです。
connstr=DBQ=+server.mappath(db/#kehumsg.mdb)+;DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};
set conn=server.createobject(ADODB.CONNECTION)
conn.open connstr
結合クエリがあります。
呼び出される 2 番目のテーブルの ID は、
通常、rs(b.id) はこのように調整できますが、必要な名前または序数に対応する項目がコレクション内に見つからないことが表示されます。
csdnに投稿しても答えが見つかりませんでした。
最後に、rs(id) を使用して問題を解決しました。この呼び出しは最初のテーブルの ID を調整するためのものであるはずだと思いました。
しかし、それは2番目のメーターを調整しますが、私が欲しいのは2番目のメーターです。
調べてみると、後者のテーブルのIDを調整してくれることが分かりました。
しかし、私が仕事を終えようとしたとき、お客様は、問題が発生し、何もアクセスできないと言いました。
上記接続のconn.open connstrでエラーが発生しました。
ここで何か問題が発生するのはなぜですか?私はネットで検索して、これが起こったと言ったので、彼の言うとおりに変更しました。
dbpath=サーバー.マップパス(db/#kehumsg.mdb)
connstr= プロバイダ=microsoft.jet.oledb.4.0;データ ソース= & dbpath
set conn=server.createobject(adodb.connection)
conn.open connstr
あまり考えず、試してみたのかもしれませんが、
しかし、良い時期は長くは続かず、今日お客様から別の問題が提起されました。
見てみると、共同クエリで別のエラーが発生したことがわかりました。
どうしてこんなことが起こるのでしょうか? マネージャーと調査した結果、次のような問題が見つかりました。
このとき、2 番目のテーブルの id で rs(b.id) を呼び出すことができます。この方法で呼び出す必要があります。
最初の結合文字のようにすることはできません。
データベース エンジンに問題があるのではないかと思います。皆さんがどう思うかはわかりません。
ここでは、2 番目のタイプの接続を皆さんにお勧めします。
//////////////////////////////////////////////// /// ////////// //////////////////////////////////////////////// /// ///////////
別の問題が発見されました。解決策は、windows/temp のアクセス許可を変更するユーザーを追加することです。