难道这又是个未解之谜?--- 关于DLL中使用ADODATASET出错的问题 Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiAPI/html/delphi_20061128102336156.html
搜索了之前的贴子,未找到有用的信息.  
   
  MD,搞了一天,头都大了,仍然找不到原因:  
  我在DLL中声明了全局ado:TADODataSet;  
  DLL装载时也有  
      CoInitialize(nil);  
      ado:=TADODataSet.Create(nil);  
  但是在读取记录时,  
        ado.CommandText:='select   text   from   Menus   where   id='+inttostr(MenuID);  
        ado.Open;  
        n:=ado.recordcount;    
      或   ado.recno:=1;    
   
  主程序调用此DLL时,走到最后两条这里有时就报内存地址错误,   但有时又没有.   有错误时,严重时会令主程序退出!!!  
  改用DataMoudle,问题依旧!!!  
  百思不得其解,到底为什么???

可以要用   ShareMem,   放在用到   dll   和   dll   的第一   use   顺序处

同意楼上,另外,如果不是多线程,没有必要加CoInitialize(nil);这句,也容易造成地址错误。

帮顶

早就过ShareMem.  
  没用.  
   
  不用CoInitialize(nil)这句,编译都通不过.

没有那么多的迷呀   LZ   F1帮助   可解决LZ一切问题~~

而且这个异常出现的很奇怪,   有时甚至打开QQ对话框,   也会导致它出错!  
  或打开其它一个软件或文件,   也导致其出那个错误,   而且错误都发声在访问ADO对象时!!!!  
  难解之谜啊

LZ这么写   把   ado:=TADODataSet.Create(nil);创建的时候写到异常里面去捕捉  
   
  ado:=TADODataSet.Create(nil);  
  try  
      执行ado要读取数据的代码  
  finally  
      ado.free;  
  and;

晕...拜托你看看题目再答吧,兄弟!!  
  创建对象时根本无任何问题,何况有时也能正常工作?

可能是dll中的ado连接的ADOConnection的问题,如果ADOConnection是放在数据模块中,而数据模块也是放在dll中,则这样使用肯定出错,如果是这种情况,你必须在装载dll时显式创建数据模块。

给你作了一个完整的DEMO,连续测试了1000次,OK。  
   
  uses  
      SysUtils,  
      Activex,  
      ADODB,  
      Classes;  
   
  {$R   *.res}  
   
  function   DataExport:   integer;  
  var  
      ADOConnection:   TADOConnection;  
      ADODataSet   :   TADODataSet;  
  begin  
      CoInitialize(nil);  
      ADOConnection   :=   TADOConnection.Create(nil);  
      ADOConnection.ConnectionString   :=   'Provider=SQLOLEDB.1;Persist   Security   Info=False;User   ID=sa;Initial   Catalog=WANGS;Data   Source=.';  
      ADOConnection.LoginPrompt   :=   False;  
      ADODataSet:=   TADODataSet.Create(nil);  
      ADODataSet.Connection   :=   ADOConnection;  
      try  
          ADODataSet.Close;  
          ADODataSet.CommandText:=   'Select   *   From   TWangs_UserInfo   ';  
          ADODataSet.Open;  
          Result   :=   ADODataSet.RecordCount;  
      finally  
          ADODataSet.Free;  
          ADOConnection.Free;  
          CoUnInitialize;  
      end;  
  end;  
   
  exports  
      DataExport;  
   
  begin  
  end.

老冯:  
  1.一定得用   ADODataSet.Connection吗?   这是不是那问题的症结所在?  
  2.可以将其它的ADO对象换成全局的吗?

1.一定得用   ADODataSet.Connection吗?   这是不是那问题的症结所在?   (没有测试过)  
   
  2.可以将其它的ADO对象换成全局的吗?   可以(测试过)

1.一定得用   ADODataSet.Connection吗?   这是不是那问题的症结所在?   可以   (刚刚测试过)  
   
  问题症结应该在  
   
  CoUnInitialize;

不过我建议就按我上面的规格办。我所有的系统涉及这些元件我都是这样办的。久经沙场的。呵呵呵呵

CoUnInitialize;  
  我试过N次了,   加不加这个东西,都一样会有时报错

难道这又是个未解之谜?--- 关于DLL中使用ADODATASET出错的问题相关推荐

  1. 为什么人生下来就有意识 人脑五大未解之谜

    2008年11月29日 15:24:17 来源:网易探索 [字号 大 中 小] [留言] [打印] [关闭]  [Email推荐:   ]   科学如此发达的今天,人脑的神秘依然困惑着我们 据科学新知 ...

  2. 深度丨AI界的七大未解之谜:OpenAI丢出一组AI研究课题

    今天,OpenAI在官方博客上丢出了7个研究过程中发现的未解决问题. OpenAI希望这些问题能够成为新手入坑AI的一种有趣而有意义的方式,也帮助从业者提升技能. OpenAI版AI界七大未解之谜,现 ...

  3. AI界的七大未解之谜:OpenAI丢出一组AI研究课题

    来源:三体智讯 今天,OpenAI在官方博客上丢出了7个研究过程中发现的未解决问题. OpenAI希望这些问题能够成为新手入坑AI的一种有趣而有意义的方式,也帮助从业者提升技能. OpenAI版AI界 ...

  4. where显示null行_Python 之 MySql“未解之谜”14-- 都是 NULL 惹的祸(下)

    最近在网上看到 MySql 关于 NULL 的文章 有几个值得争议的观点,我们一起看看 ● 准备工作 MySql 版本 5.7,InnoDB 存储引擎, 表 test 数据量 10 w, 其中 a , ...

  5. 一个常见的物理现象,直今还是未解之谜!

    全世界只有3.14 % 的人关注了 爆炸吧知识 在我们的日常生活中存在着很多有趣的物理现象, 科学家对这些现象进行深入研究后,可以通过这些现象延伸,从而在前沿科技发展上得到很大的帮助,甚至去解决宇宙中 ...

  6. hibernate 复合主键 根据主键删除_Python 之 MySql“未解之谜”11--主键 id 那些事

    主键 id 用自增和 uuid 有什么区别? ● uuid 有 16 个字节,比 int(4 byte)和 bigint(8 byte)占用更多存储空间 有大量数据的时候 uuid 主键不会像自增主键 ...

  7. 山东科技大学c语言完全题库,“山东科技大学十大未解之谜”之完全解答

    "山东科技大学十大未解之谜"之完全解答 (2012-04-24 13:53:36) 标签: 娱乐 当我还是一枚小正太刚刚进入山科大的时候,我就看到过这些未解之谜,现在每每看到童鞋们 ...

  8. 很多未解之谜终于有答案了——2018年JVM生态系统报告出炉

    在Java开发者中,一直存在着很多鄙视链.如: IntelliJ → Eclipse → NetBeans Unix → Linux → Mac OS→ Windows → DOS Emacs → V ...

  9. ★大脑的9大未解之谜

    大脑的9大未解之谜 1.大脑为什么有时间的意识 为什么人人都自带"生物闹钟",比如想要第二天早晨办的很紧急的事,清晨一起床就想起来了(当然,健忘者另当别论):等待的时间越长,你会感 ...

最新文章

  1. word在线解密_实用技能 | 5款免费在线转换PDF的网站
  2. 关于delphi中的register, pascal, cdecl, stdcall, safecall
  3. python xrange_Python学习中的知识点(range和xrange)
  4. string 与BigDecimal互转
  5. Protocol类型限制
  6. UGUI之Toggle使用
  7. 学习ASP.NET Core Razor 编程系列六——数据库初始化
  8. webpack + react
  9. 字符编码转换 iconv命令
  10. 计算机二级公共基础知识个人整理
  11. c++求余弦的泰勒展开式
  12. Admin5推荐软文推广采用“链接标准化”
  13. 做硬件,想当然,犯大错
  14. memcached 特点
  15. 射频信号源及射频信号测试接口案例-纳米软件
  16. go日志库log/zap/logrus
  17. 批量打印之smsx.cab打印
  18. BZOJ 1029: [JSOI2007]建筑抢修 堆+贪心
  19. 网易云的招股书,递交了几分情怀?
  20. 破局 | STO 会是P2P不良资产包化解难的救星吗?

热门文章

  1. 路由及路由器工作原理深入解析3:路由与port
  2. 在Tomcat中部署Java Web应用程序几种方式
  3. 修改科技论文的6项注意
  4. WPF中的容器控件——GridSplit
  5. shell编程入门步步高(八、函数)
  6. visual studio 2010 professional , premium, ultimate各版本功能对比
  7. 真正的飞车-赛道狂飙:日出极限版
  8. 转载:asp.net生成缩略图通用函数(支持多种生成方式)
  9. HTML、CSS知识学习与整理
  10. 【转】Java字符串与字符集的基本概念