我用的是ADO,在InitInstance中用connect連接數據庫正確
而且讀數據庫的內容也是正確的,但是寫的時候就通不過了,不知道是什么原因
可以保證,絕對有讀寫權
HRESULT hr;
try
{
m_pRecordset.CreateInstance("ADODB.Recordset");
hr=m_pRecordset->Open("SELECT * FROM QK_ZZQGD_BJ",_variant_t(theApp.m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText);
m_pRecordset->AddNew(); //調試的時候,這里出問題
if(m_pRecordset->adoEOF){
vBH="aaaaa";
vLX="bbbbb";
m_pRecordset->PutCollect("BJBH",vBH);
m_pRecordset->PutCollect("BJZL",vLX);
}
}
catch(_com_error e)///捕捉異常
{
AfxMessageBox("讀取數據庫失敗!");///顯示錯誤信息
}
8 个解决方案
AfxMessageBox(e.ErrorMessage()) // 看看詳細錯誤
你是以什么用戶名登錄ORACLE的 有寫的權限么。
1.在m_pRecordset.CreateInstance("ADODB.Recordset");的后面添加如下代碼試試看:
//設置服務器端游標
m_pRecordset->CursorLocation = adUseServer;//adUseClient;adUseNone
2.AddNew()必須和Update()同時使用。也就是在m_pRecordset->PutCollect("BJZL",vLX);的后面要寫:m_pRecordset->Update();
我單步執行到AddNew()時,就跳出了
錯誤信息代碼是0X800A0CB3,這個到哪里可以看出是什么原因啊
我也遇到了同樣的問題。用戶有讀寫權。
m_pRecordset.CreateInstance(__uuidof(Recordset));
m_pRecordset->Open("SELECT * FROM Budget", m_pConnection.GetInterfacePtr(),
adOpenDynamic,
adLockOptimistic,
adCmdText);
m_pRecordset->AddNew();
m_pRecordset->PutCollect("MoneyA", _variant_t(m_fMoney));
m_pRecordset->Update();
m_pRecordset->Close();
m_pRecordset = NULL;
不知道是怎么回事。有時到m_pRecordset->AddNew();就跳出
有時到m_pRecordset->Update();就跳出
查看一下e.Despcription()(or ...)
ORACLE用起來確實有點麻煩;
最好用
SELECT DBO.DBNAME ....
特別是在你訪問別的用戶創建的表