access数据库连接的问题,请教(10分)

  • 主题发起人 主题发起人 yedixifeng
  • 开始时间 开始时间
Y

yedixifeng

Unregistered / Unconfirmed
GUEST, unregistred user!
以下是软件用的数据库连接代码:
procedure Tdatabase.DataModuleCreate(Sender: TObject);
begin
adoc.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' + extractfilepath(application.exename) + 'mdb/jxc.mdb;Persist Security Info=False';
end;

我想实现mdb/jxc.mdb专门放到一个目录下,如放到E盘的mdb/jxc.mdb,软件随便放到另外的哪个盘里都能运行,同时要是放到局域网别的电脑上也能运行,主机名叫PC01,请教代码该如何写?谢谢
 
将路径保存在一个配置文件里,然后将从配置文件中取得的路径代入连接字符串
 
我觉得你用SQL数据库还要方便些。
 
增加一个文件打开对话框。

打开窗口时从INI文件读入上次用户指定的文件名和路径,作为对话框的默认路径。

用户如果需要通过对话框指定文件。

关闭窗口时将文件路径、名称写入INI文件。
 
读取INI文件
var
IniFile : TIniFile;
begin
IniFile:= TIniFile.Create('application.ini');
edit1.text := IniFile.ReadInteger('Default','data',''); //数据库路径名称
edit2.text := IniFile.ReadInteger('Default','table',''); //表名
IniFile.Free;
end;

用户选择数据库和表
OpenDialog1.Title := '选择一个Accsee数据库文件';
OpenDialog1.Filter := 'Access库文件|*.mdb';
OpenDialog1.Execute;
edit1.Text := UpperCase(OpenDialog1.FileName);
//对话框可从网上邻居中选择其它计算机的数据库,表名由用户输入。

本次使用的数据库、表写入INI文件
var
IniFile : TIniFile;
begin
IniFile:= TIniFile.Create('application.ini');
IniFile.WriteString('Default','data',edit1.text);
IniFile.WriteString('Default','table',edit2.text);
IniFile.Free;
end;
 
谢谢以上各位。
刚才改写成这样能在本机上运行:
adoc.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:/xt/mdb/jxc.mdb;Persist Security Info=False';

可加了pc01,写成这样:
adoc.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=//pc01/E:/xt/mdb/jxc.mdb;Persist Security Info=False';
却不运行,连不上数据库,不知道是怎么一回事。
 
运行时设置连接字符串吧。DFW里有方法的,搜索一下有的
 
后退
顶部