在我做好学生管理系统时,发现要使用本软件必须配置数据库的数据源。于是我就想弄个脱离数据源的版本。
构造思想:
在con1的connectionstring有链接数据库文件作为数据源的做法,那么我们可以用数据库文件配置数据源。
于是百度了一下Data Source = 数据源路径。而student数据源在注册表中注册过,student数据源名称等价于路径。
思路:
第一步:马上想到要获得数据库所在的绝对路径。
第二步:代码编写ConnectionString,Provider要写完整数据提供者的驱动名称(如
Provider=Microsoft.Jet.OleDb.4.0(ACCESS数据引擎)
),而Data Source写为绝对路径。
技术关键:
1.获得程序所在目录,构造绝对路径:
sDBPath = extractFilepath(application.ExeName)+'dataname.mdb';
2.con1.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' + sDBPath +';';
步骤:
一:有这么一个界面
二、 先修改con1的属性
修改adoquery的属性
在form2添加onActivate事件(窗口激活事件)代码如下,
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
procedure
TForm2
.
FormActivate(Sender: TObject);
var
sDBPath :
string
;
begin
sDBPath := extractFilepath(application
.
ExeName) +
'students.mdb'
;
ADOQuery1
.
Active :=
false
;
con1
.
Connected :=
false
;
ADOQuery1
.
SQL
.
Clear;
ADOQuery1
.
SQL
.
Add(
'select * from admins'
);
//这句看窗口刚刚建立是否要数据库而定要写不写。
//User ID=Admin;数据库有用户名的相应的加上
//填写connectionstring
con1
.
ConnectionString :=
'Provider=Microsoft.Jet.OLEDB.4.0;Data Source='
+ sDBPath +
';'
;
con1
.
Connected :=
true
;
ADOQuery1
.
Active :=
true
;
end
;
|
这样就完成数据库脱离数据源的配置。
本文转自lilin9105 51CTO博客,原文链接:http://blog.51cto.com/7071976/1220029,如需转载请自行联系原作者