📄 subject_33848.htm
字号:
<p>
序号:33848 发表者:qwh 发表日期:2003-03-24 17:01:04
<br>主题:最郁闷的问题!!!!(请高手指点!)
<br>内容:我用ADO+Oracle+VC写了一段代码如下:<BR><BR>_RecordsetPtr OpenRecordset(CString strSQL)<BR>{<BR> try <BR> { <BR> pRecordset.CreateInstance(__uuidof(Recordset));<BR> pRecordset->Open((_variant_t)strSQL,<BR> theApp.m_pConnection.GetInterfacePtr(), <BR> adOpenStatic,<BR> adLockOptimistic,<BR> adCmdText);<BR><BR> }<BR> catch(_com_error *e)<BR> {<BR> AfxMessageBox(e->ErrorMessage());<BR> }<BR> <BR> return pRecordset;<BR>}<BR><BR><BR>void CMyDlg::WriteData(DATA *p,int count)<BR>{<BR> CString strSQL="select * from tab_values";<BR> _RecordsetPtr pRds;<BR> pRds=OpenRecordset(strSQL);<BR><BR> for (int i=0;i<count;i++)<BR> {<BR> CString s1,s2,s3;<BR> if ((*p).fStatus==0)<BR> {<BR> s1=(*p).szPntName;<BR> s2.Format("%.4f",(*p).pupvValue->real);<BR> <BR> SYSTEMTIME localTime;<BR> GetLocalTime(&localTime);<BR> CTime szCurTime( localTime.wYear,<BR> localTime.wMonth,<BR> localTime.wDay,<BR> localTime.wHour,<BR> localTime.wMinute,<BR> localTime.wSecond);<BR> s3 = szCurTime.Format("%Y-%m-%d %H:%M");<BR><BR> pRds->AddNew(); <BR> pRds->PutCollect("point",_variant_t(s1));<BR> pRds->PutCollect("rdata",_variant_t(atof(s2)));<BR> pRds->PutCollect("rtime",_variant_t(s3));<BR><BR> pRds->Update();<BR> }<BR> *p++;<BR> }<BR><BR> pRds->Close();<BR> pRds=NULL;<BR>}<BR><BR>调试单步执行没有问题,直接运行报错:<BR><BR> abnormal program termination!<BR>我一次插入400多条记录,每隔1分钟一次,我试过加大周期(6分种),也一样出错!<BR><BR>请帮忙啊!
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
回复者:qwh 回复日期:2003-03-24 20:22:40
<br>内容:怎么没有人指点啊?
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:panxin 回复日期:2003-03-24 22:29:47
<br>内容:我也遇到过这种情况<BR>你的cursor指定由问题<BR>当cursor指定是adOpenDynamic而不是adOpenStatic时就可以解决这个问题<BR>如:<BR> _variant_t vNull;<BR> _bstr_t nsql;<BR> nsql=sql.GetBuffer(sql.GetLength()+1);<BR> sql.ReleaseBuffer();<BR> vNull.vt=VT_ERROR;<BR> vNull.scode=DISP_E_PARAMNOTFOUND;<BR> p_recordset->Open(_variant_t(nsql),vNull,adOpenDynamic,adLockOptimistic,adCmdText);<BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:qwh 回复日期:2003-03-25 20:49:12
<br>内容:非常感谢!<BR>但是我不明白:<BR> vNull.vt=VT_ERROR;<BR> vNull.scode=DISP_E_PARAMNOTFOUND;<BR>这是必须的吗?
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -