<<<<<<<<===在VC里ADO中Stream对象的Open方法如何使用???===>>>>>>>>>

poweruser 2001-07-19 08:53:47
能找到的例子都是vb的,在vb中可以不加参数,但是VC中就不行,谁有这方面的经验请
赐教!!!
每次编译可以通过,但是运行到open这一句就出错
代码如下
_bstr_t SQLxml;

try
{
m_connection.CreateInstance("ADODB.Connection");
m_command.CreateInstance("ADODB.Command");
m_strmIn.CreateInstance("ADODB.Stream");
m_strmOut.CreateInstance("ADODB.Stream");
m_recordset.CreateInstance("ADODB.Recordset");
m_record.CreateInstance("ADODB.Record");

//Open a conneciton to the SQL Server
//m_connection->Provider="SQLOLEDB";
_bstr_t sql;
sql="driver=sql server;server=yangys;database=test;uid=sa";
m_connection->Open(sql,"","",adModeUnknown);

m_command->ActiveConnection=m_connection;

//build the command string for a XML
SQLxml="<root xmlns:sql=""urn:schemas-microsoft-com:xml-sql""><sql:query><![CDATA[select * form employee for xml auto]]></sql:query></root>";

//Open the command stream and write our template to it
_bstr_t bstrUser="sa";
_bstr_t bstrPwd="";

m_strmIn->GetState(); // for test state

m_strmIn->Open //<<<<<< RUNTIME ERROR>>>>>>>("",adModeUnknown,adOpenStreamFromRecord,bstrUser,bstrPwd);
m_strmIn->WriteText(SQLxml,adWriteChar);
m_strmIn->Position=0;

//Execute the command,open the return stream,and read the result
m_strmOut->Open("",adModeUnknown,adOpenStreamAsync,"","");
m_strmOut->LineSeparator=adCRLF;

_variant_t rsAffect;

Properties* pProperties;
Property* pProperty;
_variant_t vtIndex;
vtIndex.vt=VT_I2;
m_command->get_Properties((Properties**)&pProperties);
pProperties->get_Item(vtIndex,(Property**)&pProperty);
pProperty->GetValue();

m_command->Execute(&rsAffect,NULL,adExecuteStream);

m_strmOut->Position=0;

运行到m_strmIn->Open这句时就会出错,是内存读取错误
请帮忙看看,谢谢!
...全文
137 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
CFree 2001-10-31
  • 打赏
  • 举报
回复
poweruser,PEPSI:我也有这个问题,请问怎么解决的?
PEPSI 2001-07-20
  • 打赏
  • 举报
回复
我用过,要分来了
poweruser 2001-07-19
  • 打赏
  • 举报
回复
to lijunjoy:
我觉得好像不是这里的问题,我把这句改为
m_connection->Open("Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=test;Data Source=YANGYS","","",adModeUnknown);
运行到Open的时候还是出错:(

你认为应该改成什么?
poweruser 2001-07-19
  • 打赏
  • 举报
回复
push
poweruser 2001-07-19
  • 打赏
  • 举报
回复
和这两个变量没有关系,我试过不赋值,而且只要参数类型正确编译就不会出错,只有到运行时
才会出错。
我被这个问题困扰了一天一夜了,大家帮我想想办法吧!!!
不解 2001-07-19
  • 打赏
  • 举报
回复
是否与 _bstr_t bstrUser="sa"; _bstr_t bstrPwd="";的赋值有关?

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧