代码:
已经包含:#import "c:\program files\common files\system\ado\msado15.dll" rename("EOF","IsEOF") /*********ADO********/
::CoInitialize(NULL); ADODB::_ConnectionPtr ConnPtr;
ConnPtr.CreateInstance("ADODB.Connection"); ADODB::_RecordsetPtr RsPtr;
RsPtr.CreateInstance("ADODB.Recordset"); ConnPtr->Open("Provider=SQLOLEDB.1;Password=sql;Persist Security Info=True;User ID=sa;Initial Catalog=TestDB;Data Source=127.0.0.1","","",-1); /*
//如果使用如下两行已注释代码执行SQL语句则编译正常通过,并且可正常执行
_variant_t RecordsAffected;
ConnPtr->Execute("insert into [Table]([Row]) values('Hello Kitty')",&RecordsAffected,-1);
*/ RsPtr->Open("select [Row] from [Table]",ConnPtr,adOpenForwardOnly, adLockReadOnly, adCmdUnknown); ConnPtr->Close();
::CoUninitialize();
编译后出现:
d:\Proj\textboxmethod.h(65) : error C2065: 'adOpenForwardOnly' : undeclared identifier
d:\Proj\textboxmethod.h(65) : error C2065: 'adLockReadOnly' : undeclared identifier
d:\Proj\textboxmethod.h(65) : error C2065: 'adCmdUnknown' : undeclared identifier
怎么回事啊?
已经包含:#import "c:\program files\common files\system\ado\msado15.dll" rename("EOF","IsEOF") /*********ADO********/
::CoInitialize(NULL); ADODB::_ConnectionPtr ConnPtr;
ConnPtr.CreateInstance("ADODB.Connection"); ADODB::_RecordsetPtr RsPtr;
RsPtr.CreateInstance("ADODB.Recordset"); ConnPtr->Open("Provider=SQLOLEDB.1;Password=sql;Persist Security Info=True;User ID=sa;Initial Catalog=TestDB;Data Source=127.0.0.1","","",-1); /*
//如果使用如下两行已注释代码执行SQL语句则编译正常通过,并且可正常执行
_variant_t RecordsAffected;
ConnPtr->Execute("insert into [Table]([Row]) values('Hello Kitty')",&RecordsAffected,-1);
*/ RsPtr->Open("select [Row] from [Table]",ConnPtr,adOpenForwardOnly, adLockReadOnly, adCmdUnknown); ConnPtr->Close();
::CoUninitialize();
编译后出现:
d:\Proj\textboxmethod.h(65) : error C2065: 'adOpenForwardOnly' : undeclared identifier
d:\Proj\textboxmethod.h(65) : error C2065: 'adLockReadOnly' : undeclared identifier
d:\Proj\textboxmethod.h(65) : error C2065: 'adCmdUnknown' : undeclared identifier
怎么回事啊?
RsPtr->Open("select [Row] from [Table]",ConnPtr.GetInterfacePtr (),adOpenForwardOnly, adLockReadOnly, adCmdUnknown);
吧
ConnPtr.CreateInstance("ADODB.Connection");_RecordsetPtr RsPtr; //////////////记录集指针
RsPtr.CreateInstance("ADODB.Recordset");试一下
必须使用
ADODB::_ConnectionPtr ConnPtr;
而不是_ConnectionPtr ConnPtr;然后我改回后修改如下语句,编译通过
RsPtr->Open("select B from T where A='1'",ConnPtr.GetInterfacePtr(),ADODB::adOpenForwardOnly, ADODB::adLockReadOnly, ADODB::adCmdUnknown);感谢,结帖!