在[id(5), helpstring("method Query")] HRESULT Query([in]BSTR bstrSQL,[out,reval]_Recordset **rst);出现这样的编译错误:
C:\Documents and Settings\Administrator\桌面\ADOSamp\ADOSamp.idl(22) : error MIDL2025 : syntax error : expecting ] or , near "reval"
C:\Documents and Settings\Administrator\桌面\ADOSamp\ADOSamp.idl(22) : error MIDL2025 : syntax error : expecting ] or , near "reval"
2.在类型库开始部分加上
importlib("C:\Program Files\Common Files\System\ado\msado15.dll");
先编译idl文件,记住,不要直接buid,更不要rebuild,
3.在idl编译出来的头文件里面,加上
#import "C:\Program Files\Common Files\System\ado\msado15.dll" no_namespace rename("EOF", "adoEOF")
这一行加的位置也要注意,有些地方是不能加的,我是加在
#include "oaidl.h"
#include "ocidl.h"
这两句紧挨着的后面。
4.build(绝对不能rebuild)。OK,不过好象vc6.0不行,但7.0绝对可以。对于vc6.0,我建议你还是用VARIANT好。
.
.
.
pRecordset.CreateInstance(__uuidof(Recordset));
pRecordset->CursorLocation = adUseClient;pRecordset->Open(YourString,pConnection.GetInterfacePtr(),adOpenForwardOnly,adLockOptimistic,adCmdUnknown);
pRecordset->PutRefActiveConnection(NULL);pRecordset->QueryInterface(IID_IDispatch,(void **) rst);
.
.
.