帮我看看这个有没有问题
shhao 2004-11-19 10:58:20 我想用这个类在程序中创建一个唯一的数据库连接,然后有很多的TQUERY实例绑定到这个连接上面 。这样行不行,我刚学用DELPHI的数据库编程,很多事情多搞不清楚。
下面是代码:
unit USingletonDb;
interface
uses
Classes, DB, DBTables;
type
TSingletonDatabase = class(TDatabase)
public
class function NewInstance:TObject;override;
procedure FreeInstance;override;
class function RefCount:integer;
end;
implementation
var
db_Instance:TSingletonDatabase = nil;
db_RefCount:integer = 0;
{ TSingletonDatabase }
procedure TSingletonDatabase.FreeInstance;
begin
inherited;
Dec(db_RefCount);
if db_RefCount=0 then
begin
db_Instance := nil;
inherited FreeInstance;
end;
end;
class function TSingletonDatabase.NewInstance: TObject;
begin
if not Assigned(db_Instance) then
begin
db_Instance := (inherited NewInstance) as TSingletonDatabase;
end;
Inc(db_RefCount);
Result := db_Instance;
end;
class function TSingletonDatabase.RefCount: integer;
begin
Result := db_RefCount;
end;
end.