`
cfeers
  • 浏览: 135414 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

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 下测试通过,唯一的特点就是连接数据库的字符串加密了。

 

分享到:
评论

相关推荐

    DELPHI数据库通用模块及典型系统开发实例导航 3

    DELPHI数据库通用模块及典型系统开发实例导航 第3章 数据库连接通用模块

    Delphi连接Oracle数据库的通用登录模块.rar

    Delphi连接Oracle数据库的通用登录模块,主要是涉及Delphi与Oracle数据库之间的操作,包括了 连接、登录数据库、创建记录集成操作,源代码文件中给出了丰富的注释,有些代码片段你可以直接用在你的Delphi开发项目中...

    Delphi6数据库开发典型实例

    还介绍了SQL 语言,包括通用SQL 查询语句、更新查询语句、表之间的连接和数据定义语言,并且着重说明了如何在Delphi中使用SQL 语句创建查询。 第 2 章首先介绍Delphi 文件管理的基本概念和标准过程/函数,并提供了...

    通用数据库连接文件 详解

    Delphi 通用数据库连接文件 双击打开 connection.udl 按提示操作配置数据库,选择本地或远程数据库,配置好后退出。

    Delphi数据库通用模块及典型系统开发实例导航_随机光盘

    介绍了Delphi通用模块的实现方法,这些模块包括系统登录通用模块、用户及管理权限管理通用模块、数据库连接通用模块、数据访问通用模块和数据显示及打印通用模块。  第二部分为第6章~第11章。对几个典型的Delphi...

    数据库通用访问工具delphi源码

    数据库通用访问工具,可访问oracle、sqlserver、excel工作薄、定制数据源连接数据库,无需安装数据库客户端,均支持标准sql语句执行(excel工作薄被当作数据库使用,每个sheet对应一张表)。

    delphioracle_oracle_delphi_连接ORACLE_

    Delphi连接Oracle数据库的通用登录模块

    数据库连接通用管理模块(源码、例子)

    >>描述 本套组件提供人性化的界面维护多个数据库连接的配置信息。 >>特性 * 使用ODBC API,无需安装Microsoft SQL ... * 可阻止在设计期连接的ADOConnection运行时自动连接数据库 * 支持Delphi 7 ~ Delphi 2007

    通用数据库查看器1.0

    可自定义及保存ADO连接(基于Delphi),以连接更多数据库! 2.不懂SQL语句也可执行一些基本查询! 3.可执行及保存一些基本SQL查询语句! 4.当打开的数据库表(例如SQL SERVER)所有者不是dbo时也可执行查询 ...

    Delphi库存管理系统增删改查

    用delphi连接数据库,然后对数据库进行各种操作

    数据库超级通用工具(连MySQL也一网打尽哦)

    数据库超级通用工具,能在不同(竟然包括MySQL)数据库间复制表,而且自由选择字段以及设置字段之间的对应关系。

    方便高效实用的远程数据库对象(delphi 版)

    //连接数据库 可以是ADO支持的所有数据库 调用TDBMrg提供的获取各种数据库的链接字符串即可,这里连接Access数据库 Gob_RmoDBsvr.ConnToDb(TDBMrg.GetAccessConnStr('cfg.mdb')); 到此为止,2行代码使你的这个程序...

    delphi通用函数单元一

    //从文件中返回Ado连接字串。 function GetConnectionString(DataBaseName:string):string; //返回服务器的机器名称. function GetRemoteServerName:string; function InStr(const sShort: string; const sLong: ...

    Delphi_深度编程

    其中包括10章,分别为:物资管理信息系统概述及其总体框架设计、物资管理信息系统后台数据库设计、应用服务器的实现、客户端应用程序的设计、动态连接应用服务器的实现、通用权限管理模块的设计、通用查询组件和报表...

    TY.rar_DELPHI 查询_OLE DB_delphi 通用查询

    (1)单击“数据库”/“连接数据库”选项,弹出如图2所示的窗体,选择“USE Connection String”选项后的按钮 ,选择“Microsoft OLE DB Frovider for SQL Server”项,单击“下一步”按钮。如图3所示。

    《Delphi 深度编程及其项目应用开发》PDF书及代码

    其中包括10章,分别为:物资管理信息系统概述及其总体框架设计、物资管理信息系统后台数据库设计、应用服务器的实现、客户端应用程序的设计、动态连接应用服务器的实现、通用权限管理模块的设计、通用查询组件和报表...

    Delphi深度编程技术

    6.2.3 基于AD0的数据库连接技术 6.3 TSession元件 6.4 1 DahBase组件 6.4.1 TDataBase组件的使用 6.4.2 用配置文件动态设置BDE 6.5 数据访问组件 6.5.1 TTable组件 6.5.2 TQuery组件 6.5.3 TStoredProc过程...

    数据转换器(通用版)

    本软件可以通过两种方式连接数据库:一、通过ODBC连接数据库。二、通过ADO直接连接数据库。因此,只要您的数据库提供了两种方法里面的一种驱动程序,数据转换器就可以连接到此数据库上。一般包括(dBase、Paradox、...

    Delphi7组件应用实例

    6.8 实例——使用dbExpress方式连接Oracle数据库 6.9 实例——建立双平台运行的应用程序 第7章 BDE组件页 7.1 TTable组件 7.2 TQuery组件 7.3 TDataBase组件 7.4 TBatchMove组件 7.5 TUpdateSQL组件 7.6 ...

    Devart_UniDAC_Professional_6.2.8_Full_Source_Retail_for_Delphi_7_Install

    Universal Data Access Components (UniDAC)是一款通用数据库访问组件,提供了多个数据库的直接访问,如针对Windows的Delphi, C++Builder, Lazarus (以及 Free Pascal) , Mac OS X, iOS, Android, Linux和64和32位的...

Global site tag (gtag.js) - Google Analytics