我该怎么作呢?(100分)

  • 主题发起人 主题发起人 tjcjh
  • 开始时间 开始时间
T

tjcjh

Unregistered / Unconfirmed
GUEST, unregistred user!
我用Query访问Paradox表,但是表的位置在硬盘中是经常变换的,应该怎么作呢?
 
指定Database的路径。再用Tquery连上Database
 
你可以用一个别名呀,表的位置换了把别名所指向的路径改一下就可以了;
你不要在TQUERY里指定绝对路径.
 
我以前的程序中用到的,只要你的DB数据库跟应用程序在一起就可以直接使用.不过,我以前
用的是MDB数据库,你要改成DB的,我用ADO连接,你建一个DataMould,在其Create事件中加入
下列代码,再Connect就行了.
function GetCurPath:string;
var
szFileName:array[0..49] of char;
szModuleName:array[0..19] of char;
iSize:integer;
begin
StrPCopy(szModuleName,'NameOfModule');
iSize:=GetModuleFileName(GetModuleHandle(szModuleName),szFileName,SizeOf(szFileName));
if iSize>0 then
Result:=string(szFileName)
else
Result:='';
end;

procedure TDMData.DataModuleCreate(Sender: TObject);
begin
AdoConn.Connected:=False;
GetCurPath;
AdoConn.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Password="";User ID=admin;Data Source=';
AdoConn.ConnectionString:=AdoConn.ConnectionString+GetFileName(StrPath,'company.mdb')+';';//我这儿是MDB,你改成你的DB,然后根据ADO的连接改掉Connectionstring,
AdoConn.ConnectionString:=AdoConn.ConnectionString+'Mode=Share Deny None;Extended Properties="";Locale Identifier=1028;Jet OLEDB:System database="";';
AdoConn.ConnectionString:=AdoConn.ConnectionString+'Jet OLEDB:Registry Path="";Jet OLEDB:Database Password="";Jet OLEDB:Engine Type=5;Jet OLEDB:Database Locking Mode=1;Jet OLEDB:Global Partial Bulk Ops=2;';
AdoConn.ConnectionString:=AdoConn.ConnectionString+'Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;';
AdoConn.ConnectionString:=AdoConn.ConnectionString+'Jet OLEDB:Don''t Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False;';
AdoConn.Connected:=True;
end;
 
同意TENSE,
我开始的时候都不用别名使用数据库的。直接指定路径!
 
你可以在程序的开始用一个输入框或选择框指定路径就可以了.
 
谢谢大家!
 
后退
顶部