odbc的安装问题???(100分)

  • 主题发起人 主题发起人 哦哦哦哦哦
  • 开始时间 开始时间

哦哦哦哦哦

Unregistered / Unconfirmed
GUEST, unregistred user!
我用odbc连的access数据库(table控件),现要打包发布,设置安装odbc时数据库路径是我的机子上数据库的路径,如果用户在安装时改变了安装路径,那程序就没办法用了,我该怎么设呢?还有,此时bde需要装吗?如果我用dao连access,打包时需要装什么?bde还是什么?
 
expandfilename 取得文件全路径名
extractfileext 取得文件扩展名
extractfilename 取得全路径名中的文件名
extractfilepath 返回特定文件的路径
BDE需要安装!
 
你把数据库做在前目录下,数据库链接也是当前目录下,这样不管用户安装到哪,都会到当前目录下找你的数据库。
 
制作安装盘的时候,工具会自动给你设置路径,odbc也可以。比如wise.
要不就自己写程序,写进注册表,来添加数据源
 
谁有wise或其他安装程序的教程或例子啊?我用wise可以配置odbc,但在别的机子上装了,运行没反应,这是怎么回事?还有wise装bde老说版本有问题?
 
wise配置odbc需要修改一个地方,就是数据库的位置改成%????%你的数据库的相对位置。
 
如果我用dao连access,打包时需要装什么文件,并Copy到系统的哪里?
谢谢各位高手!
 
你打包是什么也不用,但是你要注意在你发布的机子上更新ADO的驱动程序,在微软上有下载,win9x下用,win2000或winme呀winxp就不用了。
至于链接数据库,嘿,这按我这法子动态链接就好了,啥也不用设,只要将数据库拷到执行文件目录上就行
procedure TDataModule1.DataModuleCreate(Sender: TObject);
var
path: string;
begin
path := ExtractFilePath(Application.ExeName);
//程序路径
ADOConnection1.Connected := False;
try
con1.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' +
path + 'qnsb.mdb' + ';Persist Security Info=False';
ADOConnection1.Connected := true;
except
MessageBox(GetActiveWindow(), '系统错误!', '警告', MB_OK + MB_ICONWARNING);
application.Terminate;
end;
end;
 
我原用BDE来做程序时,也是用ODBC来连接数据库用到了如下文件
BANTAM.DLL
IDAPI32.DLL
IDBAT32.DLL
IDODBC32.DLL
IDPDX32.DLL
IDSQL32.DLL
然后我在工程文件中写一段动态建立ODBC别名的代码,这样,用户就用不着去设置ODBC了,当然也就不用担心用户误删了别名而运行不了软件了
代码如下
uses
Forms,
windows,
messages,
Registry,
sysUtils,
ShellApi,
...
var
rSysReg, registry1: TRegistry;
SysDir: PChar;
AppPath, Params, Path, DbPath: string;
begin
AppPath := ExtractFilePath(Application.ExeName);
//取得应用程序的当前路径
GetMem(SysDir, 255);
GetSystemDirectory(SysDir, 255);
//取得WINDOWS系统目录
Path := string(SysDir);
registry1 := tregistry.Create;
registry1.RootKey := HKEY_CURRENT_USER;
if registry1.OpenKey('software/odbc/odbc.ini/odbc data sources', true) then
begin
registry1.WriteString('SF', 'Microsoft Access Driver (*.mdb)');
registry1.CloseKey;
end;

if registry1.OpenKey('software/odbc/odbc.ini/SF', true) then
begin
registry1.WriteString('DBQ', apppath + 'SF.mdb');
registry1.WriteString('Driver', path + '/odbcjt32.dll');
registry1.Writeinteger('DriverId', 25);
registry1.writestring('FIL', 'MS Access;');
registry1.WriteInteger('SafeTransactions', 0);
registry1.WriteString('UID', '');
registry1.CloseKey;
end;

if registry1.OpenKey('software/odbc/odbc.ini/SF/Engines/Jet', true) then
begin
registry1.writestring('ImplicitCommitSync', 'Yes');
registry1.writeinteger('MaxBufferSize', 512);
registry1.WriteInteger('PageTimeout', 10);
registry1.writeinteger('Threads', 3);
registry1.WriteString('UserCommitSync', 'Yes');
end;
registry1.CloseKey;
registry1.Free;
 
谢谢! app2001 :
我发布的电脑是Win98的,你提到的更新ADO的驱动程序是安装包吗?
再请教另个问题:用ADO+Oracle客户端应如何连接和访问数据库?
谢谢你了!
 
有的,有一个叫MDAC2.7.EXE的升级包,你在网上找一找?
至于ADO+Oracler,我记得安装DELPHI时,是有一个选项要安装它的驱动程序的,但我也没有用过Oracler的数据库,具体我就不太清楚了
 
谢谢 app2001! 其它高手可以指点下吗?
 
唉,还是用ado了
 
后退
顶部