手机版 | 登录 | 注册 | 留言 | 设首页 | 加收藏
联系客服
当前位置: 网站首页 > 程序技巧 > 文章 当前位置: 程序技巧 > 文章

关于AddNew()的问题

时间:2022-02-06    点击: 次    来源:网络    添加者:佚名 - 小 + 大

求助:关于AddNew()的问题
fj_jiangqi2004-06-07 04:58:39
_ConnectionPtr pCn;
_RecordsetPtr pRs;
char szSqlbuff[100]="select * from test_table";
try{
pCn.CreateInstance(_uuidof(Connection));
pRs.CreateInstance(_uuidof(Recordset));
pCn->Open(myadoCONNECTIONSTRING,myadoUSER,myadoPASSWORD,adModeUnknown);
pRs->Open(szSqlbuff,_variant_t((IDispatch*)pCn,true),adOpenStatic,adLockOptimistic,adCmdText);
pRs->AddNew(); //运行到此出错,错误提示:对象或提供者不能提供所需的操作
....
}catch(_com_error &e){
MessageBox(NULL,(TCHAR *)e.Description(),TEXT("error!"),MB_OK);
}
数据库用的是oracle8i,ado为1.5,数据库连接正常,读取数据正常,用_CommandPtr.Execute执行sql语句写入数据正常。由于写入的字段和数

据都比较多,所以想用AddNew()来添加数据,用put_Collect()写入数据。可总不能成功,无奈之中,有请高人指点迷津。先谢谢了。
30518点赞打赏收藏 分享举报
 写回复
18 条回复
 切换为时间正序
当前发帖距今超过3年,不再开放新的回复发表回复

gooyan 2004-09-161.stdafx.h中加入
#import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF","adoEOF")
2。app文件的InitInstance中加入
if(S_OK!=OleInitialize(NULL))
{
AfxMessageBox("初始化COM组件库错误");
}


下面就是数据库操作
_ConnectionPtr pConn;
_RecordsetPtr pRs;
CString strSQL;
pConn.CreateInstance(__uuidof(Connection));
pConn->CursorLocation=adUseClient;
strSQL="Provider=SQLOLEDB;Server=Gooyan;DataBase=SkillsBox;UID=sa;PWD=aaaaaaaa";
pConn->Open(_bstr_t(strSQL),"","",-1);

pRs.CreateInstance(__uuidof(Recordset));
pRs->CursorLocation=adUseClient;
pRs->PutActiveConnection(pConn.GetInterfacePtr());

pRs1.CreateInstance(__uuidof(Recordset));
pRs1->CursorLocation=adUseClient;
pRs1->PutActiveConnection(pConn.GetInterfacePtr());

strSQL="select * from catalog order by cataid";
pRs->Open(_bstr_t(strSQL),vtMissing,adOpenDynamic,adLockBatchOptimistic,adCmdText);


zcpingx 2004-09-16郁闷:问题终于解决了。
在 连接数据库 的 hr=m_pConnection->Open((_bstr_t)strConnection,"","",-1);前加上
m_pConnection->CursorLocation = adUseClient; 要不然 使用AddNew()函数总出错。你试试看吧。赞
zcpingx 2004-09-16连接部分:
AfxOleInit();//必须要有。
strConnection = "Provider=msdaora;Data Source=sfdb_10.0.0.254;User ID=pe; Password=express";
try
{
HRESULT hr = m_pConnection.CreateInstance(__uuidof(Connection));
if(SUCCEEDED(hr))
{
hr=m_pConnection->Open((_bstr_t)strConnection,"","",-1);

}
}
catch(_com_error e)
{

AfxMessageBox("连接数据库失败!");
return FALSE;
}
return TRUE;赞
zcpingx 2004-09-16请问你的问题解决了没有呀,我也遇到这样的问题。一起寻找答案吧,若解决了请相告一声!谢谢!赞
sony19791015 2004-09-14gz赞
marcopolo 2004-09-13关注赞
lzf8977 2004-09-11以前碰到这个问题:
将pRs->Open(szSqlbuff,_variant_t((IDispatch*)pCn,true),adOpenStatic,adLockOptimistic,adCmdText); 中的 adLockOptimistic 改为adLockPessimistic 试试!!

内存泄漏 2004-09-08pRs->Open(szSqlbuff,_variant_t((IDispatch*)pCn,true),adOpenStatic,adLockOptimistic,adCmdText);

在上面这条语句前面加上下面这条语句:
pRs->PutRefActiveConnection(pCn);

fj_jiangqi 2004-09-08谁可以帮我?赞
fj_jiangqi 2004-06-07用户,口令非要写在连接串中吗?我是分开来写的。
目前虽是本机运行,但日后便要在多台机子上运行,连接串中是一定要用到ip地址的。
除了AddNew(),put_Collect()还没正常过,其它读限数据包括执行update的SQL语句都是正常的。唉!不知道连接时或取记录时那没设置好?赞
Kudeet 2004-06-07呵呵!

"Provider=MSDAORA.1;Data Source=servername;UserID=...;Password=..;"赞
fj_jiangqi 2004-06-07laiyiling(最熟悉的陌生人)谢谢你对我的问题一直的关注,谢谢!
我的数据服务器是装在本机上的,因此使用127.0.0.1的地址。赞
Kudeet 2004-06-07不是本地连接吗?赞
fj_jiangqi 2004-06-07不对,上面我自己说错了,那个连接串好象是我从一个叫resin的jsp服务软件中仿造出来的。赞
fj_jiangqi 2004-06-07char *myadoCONNECTIONSTRING="Provider=MSDAORA.1;Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=linepic)))";
char *myadoUSER="linepic";
char *myadoPASSWORD="linepic";
这是我的连接串用户名与口令。连接串是从tnsnames.ora文件中拷出来的。
以上为pCn->Open(myadoCONNECTIONSTRING,myadoUSER,myadoPASSWORD,adModeUnknown);的打开语句的参数内容。
也不知是否有问题?唉!
还望高人指点!谢谢!赞
Kudeet 2004-06-07pCn->Open(myadoCONNECTIONSTRING,myadoUSER,myadoPASSWORD,adModeUnknown);的打开语句??赞
yuaner1978 2004-06-07我也有这个问题,困惑我好几天了。一起关注。谢谢赞
Kudeet 2004-06-07char szSqlbuff[100]="select * from test_table";

改为

CString str="select * from test_table";

 

 

选自 https://bbs.csdn.net/topics/50406719

分享按钮

上一篇:网页浏览数据的表头始终位于上方的方法

下一篇:用insert语句把一个数据库中的记录插到另外的数据库中

豫ICP备19032584号-1  |   QQ:80571569  |  地址:河南濮阳市  |  电话:13030322310  |  
Copyright © 2024 FE内容付费系统 版权所有,授权www.xingwp.cn使用 Powered by 66FE.COM