帮我看看这个有没有问题

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.
...全文
59 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
shhao 2004-11-19
  • 打赏
  • 举报
回复
pdbird(老巢):想不到还要加什么了,能不能给些建议?

另外,FreeInstance函数有个错误,第一行的“inherited;”忘了删掉。
pdbird 2004-11-19
  • 打赏
  • 举报
回复
这样行的,但功能还要加强

2,497

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧