ODBC怎么样不用配置数据库写个程序直接就可以配好啊! ( 积分: 100 )

  • 主题发起人 主题发起人 hunkinm
  • 开始时间 开始时间
H

hunkinm

Unregistered / Unconfirmed
GUEST, unregistred user!
我现在用的是Delphi,用ODBC和BDE控件,但是每次连接不同的机器作为数据服务器的时候都要重新配置服务器名字,怎么直接用Delphi写代码,完成这个步骤呢?谢谢,请各位指教!!!!
 
怎么没人回答我的问题啊,谢谢大家指点下啊!!急!!!!!![green][/green]
 
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('MWKQ1','Microsoft Access Driver (*.mdb)');
registry1.CloseKey;
end;

if registry1.OpenKey('software/odbc/odbc.ini/MWKQ1',true) then
begin
registry1.WriteString('DBQ',apppath+'MWKQ1.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/MWKQ1/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;
end;
这个是联接ACCESS数据库时的ODBC的配置,你看看吧
 
简单的做法,就是所谓的动态连接。
你把静态连接时自动生成的那些代码放在
form的oncreate事件中就可以啦.
我试过,不过用的是ADO控件
 
用ADO控件,做个dblink.ini,将代码放在里面每次改它不就行了,然后在FormCreat里面写入读取ini文件的代码。
procedure TMainForm.FormCreate(Sender: TObject);
var filename:string;
begin
filename:=Extractfilepath(paramstr(0))+'dblink.ini';
myinifile:=Tinifile.Create(filename);
try
DMDB.Connected:=false;
DMDB.ConnectionString:=myinifile.ReadString('part1','dbstring','');
DMDB.Connected:=true;
except
showmessage('数据库连接失败,请检查dblink.ini文件中的连接设置是否正确!');
application.Terminate;
end;
end;
 
后退
顶部