• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >vc/mfc > 请COM+高手进来确实很难,分析一段代码,送100分。

请COM+高手进来确实很难,分析一段代码,送100分。

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-06-04

佚名通过本文主要向大家介绍了请床上调情高手进来,aa038.com进来撸,mv778.com进来房间,axax8.com进来房间,118com高手心水论坛等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: 请COM+高手进来确实很难,分析一段代码,送100分。
描述:

我用VC6.0编写了一COM+,下面的函数是用来保存数据的。
STDMETHODIMP CDataAccess::PostTableRow(BSTR ATableName, BSTR AFieldName, BSTR AFieldValue, IUnknown ** ATableRowData)
{
try
{
    _RecordsetPtr pRecordset;
pRecordset.CreateInstance(__uuidof(Recordset));
pRecordset.Attach((_Recordset *) *ATableRowData);
//SetConnect();
pRecordset->put_ActiveConnection(_variant_t(m_sConnStr));
pRecordset->UpdateBatch(adAffectAll);
m_spObjectContext->SetComplete();
pRecordset->put_ActiveConnection(vtMissing);
pRecordset->Close();
pRecordset.Release();
}
catch(_com_error * e)
{
e->ErrorMessage();
m_spObjectContext->SetAbort();
return S_FALSE;
}
return S_OK;
}
前端我用Delphi7.0编写并调用上面的方法,代码如下:
procedure TForm1.Button2Click(Sender: TObject);
var
  IUser: IDataAccess;
  vData: _Recordset;
begin
  IUser := CoDataAccess.Create;
  try
    vData := ADODataSet1.Recordset;
    try
      IUser.PostTableRow('accFormulaMain', 'FormulaID', 'A999', IInterface(vData));
    finally
      vData := nil;
    end;
  finally
    IUser := nil;
  end;
end;
结果:数据能成功保存到数据库中,但是最后报错,错误信息为“内存分配访问无效”。本人百思不得其解,请高人分析!


解决方案1:

有了
pRecordset.Attach((_Recordset *) *ATableRowData);
完事之前要Detch
否则COM里release一次,delphi里又vData := nil;  release一次


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 请各位高手进来看看,谢谢了!
  • 高手们进来看一下喽?怎样让控件字体显示不同的颜色
  • 各位高手,进来吧,如何终止任一指定进程?还可以加分。
  • 各位高手,进来吧,如何终止任一指定进程?还可以加分。
  • 高手再进来!
  • 高高高手请进来:能将一个EXE文件作为其它进程的一个线程来运行吗?
  • 急、急、急!高手请进来!在线等待。急啊!
  • 高手进来看!!!!!
  • 高手进来看看
  • 高手进来看看,回复有份

相关文章

  • 2017-06-04 400分--com组件连接本地数据库,客户端(远程,本身不能连接数据库)用web方式访问?可行吗?
  • 2017-06-05 如何用将串口读到的数据显示在MFC的编辑框
  • 2017-06-05 多线程下使用ADO疑问?
  • 2017-06-05 急求adsi编程相关资料,如枚举用户,组。等信息
  • 2017-06-05 某进程打开了一个"选择目录"的对话框,我已经枚举得到该进程的句柄,我该如何得到它的对话框的句柄?
  • 2017-06-04 请教高手:html网页里调用COM组件的时候,组件里的方法是不是只能有一个输入值和一个输出值。
  • 2017-06-04 求助,做过ActiveX的高手指点用VC做ActiveX的问题急在线等
  • 2017-06-04 我要把页面的<body>对象传给ActiveX控件,那么控件的方法的参数应该是什么?IHTMLDocument2p还是别的什么?
  • 2017-06-05 ISAPI的问题我在一个工程中,修改,然后将动态库重新命名,能不能和原来的动态库一起使用?
  • 2017-06-05 多线程间的全局变量问题。

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • CList中的第一个参数怎么用,我填了一个结构,可是不行,那位高手能给个指点,在此先谢过了!!!
    • 谁能帮我改段代码,???
    • 在activex的子线程中调用IOleClientSite的QueryInterface方法失败的问题(返回值:08000FFFF)
    • 一个让人崩溃的问题?如何得到IE中选定区域的html源码?
    • Atl开发,不用MFC,有没有类似MFC中的CArray、CList、CMap等集合类呀,我用的是VC60
    • 用MFC做ActiveX的问题
    • windows下的多进程共享内存问题
    • 关于PVIEW95的疑惑?
    • 正在学习com和对com感兴趣的请进
    • 第一次写DLL想问些菜问题

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有