Recordset对象,Open方法,第一个参数可以使用Command对象,但是不知道参数要怎么填写?
m_pRecordset->Open(_variant_t( (IDispatch*)pCommand, true),_variant_t((IDispatch*)NULL,true),CursorType, LockType, lOption )
有谁这么用过的?给个成功的代码例子。谢谢
m_pRecordset->Open(_variant_t( (IDispatch*)pCommand, true),_variant_t((IDispatch*)NULL,true),CursorType, LockType, lOption )
有谁这么用过的?给个成功的代码例子。谢谢
_CommandPtr m_pCommand;
m_pCommand.CreateInstance("ADODB.Command");
_variant_t vNULL;
vNULL.vt = VT_ERROR;
vNULL.scode = DISP_E_PARAMNOTFOUND;///定义为无参数
m_pCommand->ActiveConnection = m_pConnection;///非常关键的一句,将建立的连接赋值给它
m_pCommand->CommandText = "SELECT * FROM users";///命令字串
m_pRecordset = m_pCommand->Execute(&vNULL,&vNULL,adCmdText);///执行命令,取得记录集
用open和直接执行command的execute一样可以获得记录集合
就是记录集的打开方式是adOpenForwardOnly的。一般情况下没什么问题,但在我的程序当中,
使用的时候,不是那么方便。我希望打开方式是adOpenDynamic。
但是我又必须使用Command对象(譬如访问预编译SQL,或者存储过程)。
ado的Recordset的对象的open方法,支持直接将Command对象作为第一个参数(即数据源参数).
但是我没有实验成功。如果试验成功,我就可以将Recordset打开方式事先修改为adOpenDynamic
类型。============下面是ado210.chm中的说明===============================
Open 方法 (ADO Recordset)
打开游标。
语法
recordset.Open Source, ActiveConnection, CursorType, LockType, Options
参数
Source 可选,变体型,计算 Command 对象的变量名、SQL 语句、表名、存储过程调用或持久 Recordset 文件名。
ActiveConnection 可选。变体型,计算有效 Connection 对象变量名;或字符串,包含 ConnectionString 参数。使用 Recordset 对象的 Open 方法可打开代表基本表、查询结果或者以前保存的 Recordset 中记录的游标。
使用可选的 Source 参数指定使用下列内容之一的数据源:Command 对象变量、SQL 语句、存储过程、表名或完整的文件路径名。
如果 Source 是文件路径名,它可以是完整路径(“c:\dir\file.rst”)、相对路径(“..\file.rst”)或 URL(“http://files/file.rst”)。
你试试用null呢
_variant_t vNULL;
vNULL.vt = VT_ERROR;
vNULL.scode = DISP_E_PARAMNOTFOUND;
_CommandPtr pCommand;
...
m_pRecordset->Open(_variant_t( (IDispatch*)pCommand, true),vNULL,CursorType, LockType, lOption )