转存ACCESS数据库和读入ACCESS数据库问题,在线等,我会马上回复(100分)

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

yuzhi2005

Unregistered / Unconfirmed
GUEST, unregistred user!
数据保存时发生错误,请稍候再试。

转存ACCESS数据库和读入ACCESS数据库问题,在线等,我会马上回复


我做了一个监控软件,现在要实现两个功能:
1。让用户选择存储路径转存本次记录的数据。用savedialog1我是这样写的:
procedure TMainForm.FormClose(Sender: TObject; var Action: TCloseAction);
var s:string;
begin

if (MessageDlg('您要保存这次记录的数据吗',mtConfirmation,[mbYes, mbNo],0)=mryes) then
begin
if savedialog1.execute then
copyfile(pchar('I:/1114新办法/WSHA_Temp_Date.mdb'),pchar(savedialog1.FileName),false);
s:=savedialog1.FileName;
showmessage('本次数据按照您指定位置保存成功');
end else
showmessage('您没有保存温控仪运行的数据');
end;
'I:/1114新办法/WSHA_Temp_Date.mdb'这个路径是我ACCESS数据库的路径,用这段程序用户保存以后数据库没有后缀.mdb,应该怎么改才能保存为*.mdb文件
2。我在程序里想实现查询历史数据的功能,历史数据也就是问题1中保存的*.mdb(存储的路径和名称都是用户自己定义的),我要实现弹出对话框让用户选择他要查询的历史数据库,记录下这个路径,以这个路径完成查询的功能。
还有个问题是大家在做安装文件时都是怎么做的啊??我的ACCESS数据库是自己建好的了,安装时当然要仪器加载,但是程序里连接数据库的路径是死的啊,用户选择安装路径后,数据库就不知道装到哪里去了,应该怎么处理啊
各位Delphi高手,帮忙了
 
savedialog有个filter属性,在里面指定就是了。
关于第二个问题,你需要用ini文件来记录一下用户保存的路径,到时候用户进行历史数据查询的时候,数据库的路径就从这里面读就是了。
关于最后一个问题,你把数据库的路径也写在ini文件里面,这样的话,安装的时候,让程序读ini文件来加载这个数据库。
对于ini文件的读写问题,大富翁论坛上有,很多的。
 
cqwty,谢谢。
我查查看看
 
还是没有设定好
谁能说的详细一点啊
 
1.设置SaveDialog1的DefaultExt为.mdb
设置SaveDialog1的Filter为 Access数据库(*.mdb)|*.mdb
这样用户不设定扩展名的话就默认使用.mdb,但是用户要设定扩展名的话,仍使用用户设定的扩展名。
若要定死扩展名,可以使用下面的函数,Delphi中的定义如下:
function ChangeFileExt(const FileName, Extension: string): string;

改成如下即可:
procedure TMainForm.FormClose(Sender: TObject; var Action: TCloseAction);
var s:string;
begin

if (MessageDlg('您要保存这次记录的数据吗',mtConfirmation,[mbYes, mbNo],0)=mryes) then
begin
if savedialog1.execute then
copyfile(pchar('I:/1114新办法/WSHA_Temp_Date.mdb'),pchar(ChangeFileExt(savedialog1.FileName, '.mdb')),false);
s:=savedialog1.FileName;
showmessage('本次数据按照您指定位置保存成功');
end else
showmessage('您没有保存温控仪运行的数据');
end;

2.不知道你用什么连接的数据库,应该可以在程序中改变ConnectionString吧
 
ANiDelphi,谢谢
我现在实现了这样的功能,用OpenDialog1
if OpenDialog1.Execute then
Edit1.Text:= ExtractFilepath(OpenDialog1.FileName)+ExtractFilename(OpenDialog1.FileName) ;
BitBtn1.Visible:=false;
ADOConnection1.Connected:=false;//数据库
ADOConnection1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+'+Edit1.Text +'+'.mdb;Persist Security Info=False;';
ADOConnection1.Connected:=true;
BitBtn1.Visible:=true;
TreeView1.Enabled:=true;
我的想法是保存文件时不加.mdb,程序运行时让用户选择保存过的没有扩展名的文件,读入路径放到Edit1.Text(已经实现),然后在连接数据库时,我在加上.mdb,但是上面的写法不对,可以看看吗???
 
ADOConnection1.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+ Edit1.Text + ';Persist Security Info=False;';

不一定要有.mdb扩展名都能连接使用的,只要用文件的完整路径名称就行了。

if OpenDialog1.Execute then
begin
BitBtn1.Visible := False;
ADOConnection1.Close;
ADOConnection1.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' +
OpenDialog1.FileName + ';Persist Security Info=False;';
ADOConnection1.Open;
BitBtn1.Visible := True;
TreeView1.Enabled := True;
end;
 
ANiDelphi,谢谢,我试试看
 
后退
顶部