网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > DELPHI > 正文
Delphi适应多种数据库之间存取操作的数据库访问层
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/12
下载{$ArticleTitle}原创论文样式

 //大家在进行数据库访问的时候,经常会将自己常用的一些写成函数的形式, 但如果是不同类型的数据库,或者想转换数据库类型,就比较麻烦了,此处提供了三个对象.TDataAccess为基类.TServerAccess为ADO类型的,TClientAccess为BDE类型的, 这几个都有点不太舒服的地方,就是没有提供初始化委托函数,而是用一个INITALL来进行初始化,大家可以自己改进,这只是我们应用的一个特例.

unit DataAccess_U; interfaceuses  Classes, ADODB, DB, SysUtils, Dbtables, Variants, Forms; type  TDataAccess = class  public    function GetSQLValue(ASQLStr: string; var AValue: Variant): Boolean; overload; virtual;    function GetSQLValue(ASQLStr: string; var AValue: string): Boolean; overload; virtual;     procedure ExecSQL(ASQLStr: string); virtual; abstract;    function OpenSQL(ASQLStr: string; var ADataSet: TDataSet): Boolean; virtual; abstract;  end;   TServerAccess = class(TDataAccess)  private    function GetCommQuery: TADOQuery;    procedure FreeCommQuery(AQuery: TADOQuery);  public    ADOConnection: TADOConnection;    ConnectString: string;    constructor Create;    destructor Destroy; override;     procedure ExecSQL(ASQLStr: string); override;     function OpenSQL(ASQLStr: string; var ADataSet: TDataSet): Boolean; override;    procedure InitAll; virtual;  end;   TClientAccess = class(TDataAccess)  private    DataBaseName: string; //{ DONE : 等待赋值 }    function GetCommQuery: TQuery;    procedure FreeCommQuery(AQuery: TQuery);  public    constructor Create;    procedure ExecSQL(ASQLStr: string); override;    function OpenSQL(ASQLStr: string; var ADataSet: TDataSet): Boolean; override;     class procedure CreateAlias;    procedure InitAll;  end;implementationconstructor TServerAccess.Create;begin  ADOConnection := TADOConnection.Create(nil);end; destructor TServerAccess.Destroy;begin  ADOConnection.Free;  inherited;end; procedure TServerAccess.ExecSQL(ASQLStr: string);var  tmpQuery: TADOQuery;begin  tmpQuery := GetCommQuery;  try    tmpQuery.Close;    tmpQuery.SQL.Text := ASQLStr;    tmpQuery.ExecSQL;  finally    freeCommQuery(tmpQuery);  end;end;procedure TServerAccess.FreeCommQuery(AQuery: TADOQuery);begin  FreeAndNil(AQuery);end; function TServerAccess.GetCommQuery: TADOQuery;begin  Result := TADOQuery.Create(nil);  Result.Connection := ADOConnection;end;procedure TServerAccess.InitAll;begin end;function TServerAccess.OpenSQL(ASQLStr: string

网学推荐

免费论文

原创论文

浏览:
设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
湘ICP备09003080号