我在一个单独的数据模块中卸载了所有 ADO 引擎盖,因此一个模块可以被多个应用程序引用。我所有的应用程序基本上只需要两个工作方法来访问数据:
AdoQuery
以TADODataSet
.
AdoExecute
执行简单的更新/删除查询而不获取任何结果。
这是类结构:
type
TMyDataModule = class(TDataModule)
procedure DataModuleCreate(Sender: TObject);
procedure DataModuleDestroy(Sender: TObject);
private
procedure pvtAdoConnect;
procedure pvtAdoExecute(const sql: string);
function pvtAdoQuery(const sql: string): TADODataSet;
public
AdoConnection: TADOConnection;
end;
然后我在类方法中添加了两个公开的包装器。我用它来避免调用中的长类引用:
function AdoQuery(const sql: string): TADODataSet;
procedure AdoExecute(const sql: string);
implementation
function AdoQuery(const sql: string): TADODataSet;
begin
Result := MyDataModule.pvtAdoQuery(sql);
end;
以上是我在所有表单中调用的工作函数。
AdoConnect
在DataModuleCreate
事件中只运行一次。TDatModule 派生自TPersistent
,它允许在整个运行时持久化连接的单个实例。
到目前为止,唯一让我烦恼的是一个无用的 .DFM,我根本不需要它。
有没有办法摆脱它?