回 帖 发 新 帖 刷新版面

主题:[讨论]VC++ 采用ADO进行数据库访问 遇到的错误 请教高人!

代码:
void Ctransaction::sqlInsert()
{
    CString strSQL;
    strSQL="select * from transactionRecord";
    _RecordsetPtr m_pRecordset;
    HRESULT hTRes;
    hTRes=m_pRecordset.CreateInstance(_T("ADODB.Recordset"));
    hTRes=m_pRecordset->Open((LPTSTR)strSQL.GetBuffer(130),((CMy03App*)AfxGetApp())->m_pConn.GetInterfacePtr(),adOpenDynamic,adLockPessimistic,adCmdText);
    if(SUCCEEDED(hTRes))
    {
        m_pRecordset->AddNew();
        CString str;
        m_pRecordset->PutCollect("transactionType",_variant_t(transactionType));
        m_pRecordset->PutCollect("transactionSubject",_variant_t(transactionSubject));
        m_pRecordset->PutCollect("transactionDate",_variant_t(transactionDate));
        m_pRecordset->PutCollect("content",_variant_t(content));
        m_pRecordset->Update();
    }
}

错误:
1.error C2039: 'm_pConn' : is not a member of 'CMy03App'
2.error C2228: left of '.GetInterfacePtr' must have class/struct/union type

请教 怎么改正。

回复列表 (共4个回复)

沙发

在CMy03App中定义一个连接对象呀

板凳

修改后能运行了,多谢heyongjiu。
能帮忙解释下面的代码吗?
hTRes=m_pRecordset.CreateInstance(_T("ADODB.Recordset"));
hTRes=m_pRecordset->Open((LPTSTR)strSQL.GetBuffer(130),((CMy03App*)AfxGetApp())->m_pConn.GetInterfacePtr(),adOpenDynamic,adLockPessimistic,adCmdText);

3 楼

在用ADO时,要对所用的智能指针进行实例化,.CreateInstance(..);

m_pRecordset的Open函数中,第一个参数是要执行的SQL语句,也可以是一个表名;第二个参数是获得连接的接口,第三个参数是打开方式,可以是动态打开adOpenDynamic,也可以是adOpenStatic等等,第四个参数是对记录的锁定类型,可以是悲观的锁定,这时不允许其它人对记录表进行改动,第五个参数是对第一个参数的方式说明,当第一个参数是SQL语句时,为adCmdText,当是一个表名是,为adStoreProc即存储过程。


这样的资料网上都很多,可以自己去找更多的!

4 楼


不是广告:第一和第二可以分开看
第一
若可以做到在"WOW"(魔兽 游戏)里根据我门所给的文件(服务器名,玩家名).其中之一实现要求的有报酬.(全部的更多!)
要求
1.可以根据我们所给的服务器正确的选择,(要百分之九十九以上),游戏的一点延时可以忽略(一秒以内).
基本功能就是随便我在他制作软件里选择哪个服务器,都可以进入到游戏的相对应的那个服务器里面去.
如果给您一个内存开始为(00CFC134)的地址,然后读取下面的全部内容. 可以做到吗



有兴趣的请联系我QQ,375045164)或BELIVETHEFUTURE@HOTMAIL.COM




















第二
1、VC技能要求:精通VC++网络以及数据库编程,有VC++项目开发2年或以上,有游戏开发经验者优先;
必须了解以下内容: 
i.Windows下TCP/IP网络编程 
ii.Windows多线程编程 
iii.Windows界面编程 
iv.常用的数据结构及算法 
2、精通汇编与反汇编的操作.(关于底层的最好)
3、精通Oracle、SQL Server、Mysql等数据库开发; 
4、工作要细心和有责任心.

有兴趣的请发简历到(如有作品请附带)QQ,375045164或BELIVETHEFUTURE@HOTMAIL.COM

软件开发

我来回复

您尚未登录,请登录后再回复。点此登录或注册