我用ADO做了个数据库程序到别人的机子上就不能运行了,首先我认为是别人的
机子上没装补丁程序mdac.typ.exe文件,但我装了以后还是运行出错,这时我想
起来我的ADOconnection的connectionstring属性是在程序设计时静态指定的,如
设计时是在e盘,而别人把我的程序拷贝到d盘,那样就肯定会出错了。请问我该
在程序中怎样动态改变ADOconnection的connectionstring属性了?
我的数据库是用access2000创建的,别人机子上没有access2000会不会有问题了?
请多多指教!
机子上没装补丁程序mdac.typ.exe文件,但我装了以后还是运行出错,这时我想
起来我的ADOconnection的connectionstring属性是在程序设计时静态指定的,如
设计时是在e盘,而别人把我的程序拷贝到d盘,那样就肯定会出错了。请问我该
在程序中怎样动态改变ADOconnection的connectionstring属性了?
我的数据库是用access2000创建的,别人机子上没有access2000会不会有问题了?
请多多指教!
var
s:string;
begin
s:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source=';
s:=s+当前目录+'data\glxt.mdb;';
s:=s+'Persist Security Info=False';
ADOConnection1.Connected:=false;
ADOConnection1.ConnectionString:=s;
end;
别人机子上没有access2000不会有问题
Function GetNowPath:string;
Var
NowPath:string;
begin
GetDir(0,NowPath);
if GetRightText(NowPath,1)<>'\' then
nowpath:=nowpath+'\';
Result:=NowPath;
end;
你把通过向导生成的ConnecionString截取下来,自己往里拼接就行了,注意,IP是指服务器的IP
我就这么用的,很好用。
to heixiu1980:你似乎理解错了我的意思,我做的是单机数据库。
to flyingkiller:相对路径?我不懂,该怎样去做了?
adodb
tmpStr :=PromptDataSource(0,'')
数据源,你所在的数据库的目录,而使用你软件的人可能是非专业的人员,怎能要求他们
这样做了,似乎不太实际。
拜托各位拉!
例如我一个连接excel文件的连接串如下拼接:
adoConnection1.ConnectionString:= 'DBQ='+ExtractFilePath(Application.ExeName)+'cxxt.xls;DefaultDir='
+ExtractFilePath(Application.ExeName)+';Driver={Microsoft Excel Driver (*.xls)};DriverId=790;FIL=excel 8.0;FILEDSN='
+ExtractFilePath(Application.ExeName)+'cxxt.dsn;MaxBufferSize=2048;MaxScanRows=8;PageTimeout=5;ReadOnly=0;SafeTransactions=0;Threads=3;UID=admin;UserCommitSync=Yes;';
begin
Result:=copy(text,length(text)-len+1,len);
end;
begin
self.ADOCon.close; // :='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+extractfilepath(application.exename)+'shdata.mdb;Persist Security Info=False'
self.ADOCon.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+extractfilepath(application.exename)+'*.mdb;Persist Security Info=False';
self.ADOCon.Open;end;
with dmmain.ADOMain do
begin
connectionstring:='Provider=Microsoft.Jet.OLEDB.4.0;'+
'Data Source='+ExtractFilePath(paramstr(0))+'sdsf.mdb';
open;
end;
//ExtractFilePath(paramstr(0))为应用程序所在的目录
无论在哪里都能够执行,但一跑到别人的机子上就不行了,我不知这是为什么?
在别人机子上的出错信息是:exception estackoverflow in module project.exe at
0009964D stack over flow.
请指教拉!
数据库是d:\aaa\data\a.mdb
将connectionstring设置为
系统默认为
Provider=Microsoft.Jet.OLEDB.4.0;Data Source='d:aaa\data\a.mdb...'
改为
Provider=Microsoft.Jet.OLEDB.4.0;Data Source='data\a.mdb...'
应可以了
FrameSniper(框架狙击手) EditConnectionString这函数怎样使用啊?是API吗