掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
ADO接続でSP2を入れると強制終了の回避方法? (ID:65824)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
動作環境 :WindowsXP Professional(英語版) Version 2002 SP2(英語版) 開発環境 :Visual C++6.0 SP6(英語版) データベース:Access2000(ADO接続) お世話になります。他の掲示板でも同じトピックスで載せています。 返答がなかったのでこちらの掲示板にも掲載させていただきます。 Access2000で作成したxxx.mdbに INSERT DELETE UPDATE 処理を行うと 強制終了してしまいます。 <<デバッカーではm_pConnect->Execute()で終了>> サービスパック2を入れてから 強制終了するようになりました。 サービスパック2をアンインスール したところ正常に動作しました。 ちなみに 日本語のWindowsXP Professional SP2 Windows2000 では正常に INSERT DELETE UPDATE 処理を行えます。 どなたか経験ある方はご連絡お願いします setting.udlの中身 プロバイダ Microsoft Jet 4.0 OLE DB ProVider 接続データベース名 C:\\partlib\\setting.mdb ユーザ名 Admin パスワード なし パスワード空にする 詳細設定 share Deny None static _TCHAR *_gszTableName[5] = { _T("TBL_Chip"), _T("xxx"), _T("xxx"), _T("xxx"), _T("") }; BOOL CVclsvwDlg::DB_Open() { HRESULT hr; r_count=0; char TmpTable[512]; int i=0; int s=1; AfxOleInit();//OLE/COMライブラリ初期化 try { //ADOオブジェクトの生成 hr = m_pConnect.CreateInstance(__uuidof(Connection)); if(SUCCEEDED(hr)) { //データベースへの接続 hr = m_pConnect->Open( _bstr_t(L"File Name=C:\\partlib\\setting.udl;"), _bstr_t(L""), _bstr_t(L""), adModeUnknown); if(SUCCEEDED(hr)) { m_IsConnectionOpen = TRUE; } } //レコードセット取得 if(m_IsConnectionOpen==TRUE) { if(s==0)//selectは正常に動作 { sprintf(TmpTable,"SELECT * FROM %s",_gszTableName[0]);//←selectは正常に動作 _bstr_t bstrQuery(TmpTable);//指定するテーブル _variant_t vRecsAffected(0L); m_pRecordset = m_pConnect->Execute(bstrQuery,&vRecsAffected,adOptionUnspecified); //レコードがEOFになるまでループ for(i=0;m_pRecordset->GetadoEOF()==false;i++) { DispFields(); listDataInsert(r_count); m_pRecordset->MoveNext(); r_count++; } } else if(s==1)//DELETE INSERT UPDATEはExecute()で強制終了 { sprintf(TmpTable,"DELETE FROM %s WHERE `Part No`=%d",_gszTableName[0],partNo); _bstr_t bstrQuery(TmpTable); _variant_t vRecsAffected(0L); m_pConnect->BeginTrans(); m_pConnect->Execute(bstrQuery,&vRecsAffected,adOptionUnspecified); m_pConnect->CommitTrans(); //............................................ } } catch(_com_error &e) { AfxMessageBox(CString(e.ErrorMessage())); } return TRUE; }
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.