Delphi连接数据库通用方法

DELPHI 连接数据库是个头痛的问题,现在我写了个通用方法,由一个配置工具和一个配置文件实现数据库连接并且可以加密字符串,有需要的留下邮箱,发给你。

 

1.新建一个窗体,放置5个控件,(TADOConnection的ConnectionString属性不需要指定连接字段)如下:
    dbgrd1: TDBGrid;
    ADOConnection: TADOConnection;
    ds1: TDataSource;
    qry1: TADOQuery;

    Button1: TButton;

 

2.主要几个事件的定义以及编写

 function GetSysPath:String;  //获取系统运行路径
  function ReadConnectionStr: String; //读取配制工具连接字符串
  function Decode(S:string):string;  //解码
  function Encode(S:string):string;  //编码

 

//获取系统运行路径
function GetSysPath:String; 
begin
  Result:=ExtractFilePath(ParamStr(0));
end;


//程序创建
procedure TForm1.FormCreate(Sender: TObject);
begin
 ADOConnection.ConnectionString:=ReadConnectionStr;
  try
    ADOConnection.Connected:=True;
  except
    on e:Exception do
      begin
        ADOConnection.Connected:=False;
        ShowMessage('数据库链接失败!请通过DbSetup.exe进行数据库配置,文件为(DBConfig.Ini)'+#13+e.Message);
      end;
  end;
end;

//编码
function Encode(S:string):string;
var
    Pwd,Bt:Byte;
    I:Integer;
begin
    if s = '' then
    begin
        Result:='';
        Exit;
    end;
    Pwd := Trunc((Now()-Date())*24*3600) mod 256;
    Result:=Chr(Pwd);
    for I:=1 to Length(S) do
    begin
        Bt:=(Byte(S[I]) xor Pwd);
        Result:=Result + Chr(Bt);
    end;
end;

//解码
function Decode(S:string):string;
var
    Pwd,Bt:Byte;
    I:Integer;
begin
    if S = '' then
    begin
        Result:='';
        Exit;
    end;
    Pwd := Byte(S[1]);
    for I:=2 to Length(S) do
    begin
        Bt:=((Byte(S[I])) xor Pwd);
        Result:=Result+ Chr(Bt);
    end;
end;

//读取配制工具连接字符串
function ReadConnectionStr: String;
var
    DBConfig:file;
    FileLen:Integer;
    Buff:array[1..1024] of Char;
    I:Integer;
begin
  if not FileExists(Trim(GetSysPath)+'DBConfig.Ini') then
    begin
      Result:='';
      Exit;
    end;
  try
    AssignFile(DBConfig,Trim(GetSysPath)+'DBConfig.Ini');
    Reset(DBConfig,1);
    try
        FileLen:=FileSize(DBConfig);
        BlockRead(DBConfig,Buff,FileLen);
    finally
        CloseFile(DBConfig);
    end;
    for I:=1 to FileLen do
        Result :=Result+Buff[I];
    Result := Decode(Result);
  except
    Result:='';
  end;
end;

//Button1按钮测试数据获取是否正常
procedure TForm1.Button1Click(Sender: TObject);
begin
  qry1.Close;
  qry1.SQL.Add('select * from tabel1');
  qry1.Open;
end;


以上实例在Delphi 7 + SQL 2000 下测试通过,唯一的特点就是连接数据库的字符串加密了。

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值