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连接Oracle数据库的通用登录模块,主要是涉及Delphi与Oracle数据库之间的操作,包括了 连接、登录数据库、创建记录集成操作,源代码文件中给出了丰富的注释,有些代码片段你可以直接用在你的Delphi开发项目中...
还介绍了SQL 语言,包括通用SQL 查询语句、更新查询语句、表之间的连接和数据定义语言,并且着重说明了如何在Delphi中使用SQL 语句创建查询。 第 2 章首先介绍Delphi 文件管理的基本概念和标准过程/函数,并提供了...
Delphi 通用数据库连接文件 双击打开 connection.udl 按提示操作配置数据库,选择本地或远程数据库,配置好后退出。
介绍了Delphi通用模块的实现方法,这些模块包括系统登录通用模块、用户及管理权限管理通用模块、数据库连接通用模块、数据访问通用模块和数据显示及打印通用模块。 第二部分为第6章~第11章。对几个典型的Delphi...
数据库通用访问工具,可访问oracle、sqlserver、excel工作薄、定制数据源连接数据库,无需安装数据库客户端,均支持标准sql语句执行(excel工作薄被当作数据库使用,每个sheet对应一张表)。
Delphi连接Oracle数据库的通用登录模块
>>描述 本套组件提供人性化的界面维护多个数据库连接的配置信息。 >>特性 * 使用ODBC API,无需安装Microsoft SQL ... * 可阻止在设计期连接的ADOConnection运行时自动连接数据库 * 支持Delphi 7 ~ Delphi 2007
可自定义及保存ADO连接(基于Delphi),以连接更多数据库! 2.不懂SQL语句也可执行一些基本查询! 3.可执行及保存一些基本SQL查询语句! 4.当打开的数据库表(例如SQL SERVER)所有者不是dbo时也可执行查询 ...
用delphi连接数据库,然后对数据库进行各种操作
数据库超级通用工具,能在不同(竟然包括MySQL)数据库间复制表,而且自由选择字段以及设置字段之间的对应关系。
//连接数据库 可以是ADO支持的所有数据库 调用TDBMrg提供的获取各种数据库的链接字符串即可,这里连接Access数据库 Gob_RmoDBsvr.ConnToDb(TDBMrg.GetAccessConnStr('cfg.mdb')); 到此为止,2行代码使你的这个程序...
//从文件中返回Ado连接字串。 function GetConnectionString(DataBaseName:string):string; //返回服务器的机器名称. function GetRemoteServerName:string; function InStr(const sShort: string; const sLong: ...
其中包括10章,分别为:物资管理信息系统概述及其总体框架设计、物资管理信息系统后台数据库设计、应用服务器的实现、客户端应用程序的设计、动态连接应用服务器的实现、通用权限管理模块的设计、通用查询组件和报表...
(1)单击“数据库”/“连接数据库”选项,弹出如图2所示的窗体,选择“USE Connection String”选项后的按钮 ,选择“Microsoft OLE DB Frovider for SQL Server”项,单击“下一步”按钮。如图3所示。
其中包括10章,分别为:物资管理信息系统概述及其总体框架设计、物资管理信息系统后台数据库设计、应用服务器的实现、客户端应用程序的设计、动态连接应用服务器的实现、通用权限管理模块的设计、通用查询组件和报表...
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、...
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 ...
Universal Data Access Components (UniDAC)是一款通用数据库访问组件,提供了多个数据库的直接访问,如针对Windows的Delphi, C++Builder, Lazarus (以及 Free Pascal) , Mac OS X, iOS, Android, Linux和64和32位的...