在BPL开发框架中(Bpl,EXE,DLL结构,主窗口一个EXE,每个模块一个DLL,开发框架为BPL),用DLL支持具体的数据连接方式(BDE,ADO,DBExpress等等).
当使用ADO时,在DLL中一功能窗体中弹出编辑对话框,数据抽象封装类的实例是在功能窗体中创建的,打开对话框时将该实例赋与对话框以利用封装类的保存方法,但在对话框中保存数据时,严重超时。同样的情况用DBExpress没问题。跟踪到ADOQuery的SQL属性改变事件引起超时,但跟不进该ADODB单元中的SQL的TStrings.OnChange改变事件。诸位有谁遇到类似的问题?
解决问题后奉送上100分
当使用ADO时,在DLL中一功能窗体中弹出编辑对话框,数据抽象封装类的实例是在功能窗体中创建的,打开对话框时将该实例赋与对话框以利用封装类的保存方法,但在对话框中保存数据时,严重超时。同样的情况用DBExpress没问题。跟踪到ADOQuery的SQL属性改变事件引起超时,但跟不进该ADODB单元中的SQL的TStrings.OnChange改变事件。诸位有谁遇到类似的问题?
解决问题后奉送上100分
解决方案 »
- 跪求 ------Delphi中 100分奉送 解决马上给分!!!!!!!
- 为什么我的打印机程序打出来的纸张大小都是A4,无论在系统的打印机中设成多大的,打出来的大小都是A4的,
- 一个服务程序判断启动的问题
- 如何在程序中检测在摄像头的快门按钮被按下的事件?
- 不知道怎样在delphi下开发串口通信!!!
- 升级,而且非常幸运的得了感冒,为此散分!
- Come on!!! DAXIA! 实在很急关于本地表的问题.
- 大家好!!!日期时间如何在delphi中进行加减???
- Indy在DLL的使用问题D7
- 一个指向整形变量的指针,如何取该指针所指位置的值?
- 如何自动绘制一条曲线
- 求ActiveX,供javaScript调用? 这个,怎么做啊?
当在窗体中调用数据封装类的保存方法是没有问题,而换成DBExpress连接也不存在此问题!请有类似经验的高手指示一二!!谢谢
----------------------可以把Use Debug DCUs钩上,来调试VCL的单元。
我追踪到TParameters.InternalRefresh()方法,其中有二个内置方法。
耗时的指令就在其中的RefreshFromOleDB过程中,跟踪确认是下行代码严重超时
OLEDBCommand := (Command.CommandObject as ADOCommandConstruction).OLEDBCommand as ICommand;
奇怪的是在窗体中执行数据抽象类的方法时也会执行到此处,但不会如此耗时。而且只是第一次进对话框时才耗时,第二次就很快了!但关闭窗体后,再打开编辑对话框操作后保存又重现耗时的情景...l...晕中总体感觉ADODB这个单元很多问题,特别是涉及到主从表、汉字时,相同情况使用DBExpree却没有任何异常!!且ADO的速度也差太大!!