To:SS2000 &
lich
您们说的很对,TQuery本身就是指针,我那样做是画蛇添足,我对DELPHI的VCL内幕的确
所知甚少,现在正想练习这方面的内功:)
我刚才按照测试过了,只用'Select 1 as MyLog'一个查询语句,不牵涉到查询SQL 2000
的情况下,一切正常,但是一旦向SQL 2000查询,就出现了这个问题。
另外,SS2000提到的在主程序中加入ShareMem单元,我想这应该是解决长字符串WideString
的问题的,我在DLL的项目文件和单元文件都第一个引用了ShareMem,但是在主程序中,我
第一个引用,编译正常(刚才说的编译错误是笔误),但是在关闭程序的时候,Delphi6就出现"Invalid Pointer Operation"错误。如果不引用,则一切正常。
我的主程序的相关源码如下:
////////////////////////////////////////////////////////////////
//下面是主程序的项目文件Srv.dpr加入ShareMem的相关代码:
unit main;
interface
uses
ShareMem, Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, ShellAPI, Menus, DB, DBTables;
。。。。。。
//下面是需要引用Basic.dll的主程序中的RDM.pas单元文件的相关代码:
unit RDM;
{$WARN SYMBOL_PLATFORM OFF}
interface
uses
ShareMem, Windows, Messages, SysUtils, Classes, ComServ, ComObj, VCLCom, DataBkr,
DBClient, Srv_TLB, StdVcl, Provider, DB, DBTables;
。。。。。。
/////////////////////////////////////////////////////////////////