可以有不同方式,
1。ODBC
在ADOConnection组件中设置ConnectString属性为:
‘Provider=MSDASQL.1;Persist Security Info=False;Data Source=TansoERP’
其中'TansoERP'为ODBC中设置的数据源名。2。Jet Engine
‘Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\tansoERP\Data\001\UF_2001.mdb;Persist Security Info=False’
其中'D:\tansoERP\Data\001\UF_2001.mdb'为数据库所在目录和数据库文件名
1。ODBC
在ADOConnection组件中设置ConnectString属性为:
‘Provider=MSDASQL.1;Persist Security Info=False;Data Source=TansoERP’
其中'TansoERP'为ODBC中设置的数据源名。2。Jet Engine
‘Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\tansoERP\Data\001\UF_2001.mdb;Persist Security Info=False’
其中'D:\tansoERP\Data\001\UF_2001.mdb'为数据库所在目录和数据库文件名
本意就是要动态的实现,没这个文件源的话,自动生成。
procedure TForm1.BtnGenODBCClick(Sender: TObject);
var
WINNT,USER,DATANAME,DATANAME,PASS:String[20];
XTREAD:Integer;
IsOk:Integer;
DRIVER,UID,FIL,dBASEvar:PCHAR;
ls_hk:HKEY;
Registry: TRegistry;
AppPath: String;
begin
try
AppPath:=ExtractFilePath(ParamStr(0));
DRIVER:=Pchar(GetSysDir+'\odbcjt32.dll'); //?
UID:='';
FIL:='dBase 5.0';
LS_HK:=HKEY_CURRENT_USER;
If RegCreateKey( HKEY_CURRENT_USER,'Software\ODBC\ODBC.INI\dBASE FILES test',ls_hk ) = ERROR_SUCCESS then
begin
RegSetValueEx(ls_hK,'DRIVER',0 ,REG_SZ,DRIVER,REG_EXPAND_SZ);
RegSetValueEx(ls_hK,'UID',0 ,REG_SZ,UID,REG_EXPAND_SZ);
RegSetValueEx(ls_hK,'FIL',0 ,REG_SZ,FIL,REG_EXPAND_SZ);
end;
Registry:=TRegistry.Create;
Registry.RootKey:=HKEY_CURRENT_USER;
Registry.OpenKey('Software\ODBC\ODBC.INI\dBASE FILES test',False);
Registry.Writestring('DefaultDir',AppPath);
Registry.WriteInteger('DriverId',533);
Registry.WriteInteger('SafeTransactions',0);
Registry.CloseKey;
If RegCreateKey( HKEY_CURRENT_USER,'Software\ODBC\ODBC.INI\dBASE FILES test\Engines\Xbase',ls_hk ) = ERROR_SUCCESS then
begin
RegSetValueEx(ls_hK,'Deleted',0 ,REG_BINARY,0,4);
RegSetValueEx(ls_hK,'Statistics',0 ,REG_BINARY,0,4);
Registry.OpenKey('Software\ODBC\ODBC.INI\dBASE FILES test\Engines\Xbase',False);
Registry.WriteInteger('PageTimeout',30);
Registry.WriteInteger('Threads',3);
Registry.Writestring('UserCommitSync','Yes');
Registry.Writestring('ImplicitCommitSync','');
Registry.Writestring('CollatingSequence','ASCII');
end;
Registry.CloseKey;
finally
Registry.Free;
end;
dBASEvar:='Microsoft dBase Driver (*.dbf)';
If RegCreateKey( HKEY_CURRENT_USER,'Software\ODBC\ODBC.INI\ODBC Data Sources',ls_hk ) = ERROR_SUCCESS then
RegSetValueEx(ls_hK,'dBASE FILES test',0 ,REG_SZ,dBaseVar,length(dbaseVar));
end;
function GetSysDir :string;
var
pcSystemDirectory : PChar;
dwSDSize : DWORD;
begin
dwSDSize := MAX_PATH + 1;
GetMem( pcSystemDirectory, dwSDSize );
try
if Windows.GetSystemDirectory( pcSystemDirectory, dwSDSize ) <> 0 then
Result := pcSystemDirectory;
finally
FreeMem( pcSystemDirectory );
end;
end;
-----------------------------------------
Provider=MSDASQL.1;Connect Timeout=15;Extended Properties="DefaultDir=D:\Examples\ADO\通过ADO使用本地数据表\Sourse;Driver={Microsoft Paradox Driver (*.db )};DriverId=538;FIL=Paradox 5.X;MaxBufferSize=2048;MaxScanRows=8;PageTimeout=5;ParadoxNetPath=C:\WINDOWS\SYSTEM;ParadoxNetStyle=4.x;ParadoxUserName=admin;SafeTransactions=0;Threads=3;UID=admin;UserCommitSync=Yes;";Locale Identifier=2052-----------------------------------------
-- dBase 数据表的Connectionstring串
-----------------------------------------
Provider=MSDASQL.1;Connect Timeout=15;Extended Properties="DefaultDir=D:\Examples\ADO\通过ADO使用本地数据表\Sourse;Deleted=1;Driver={Microsoft dBase Driver (*.dbf)};DriverId=533;FIL=dBase 5.0;MaxBufferSize=2048;MaxScanRows=8;PageTimeout=600;SafeTransactions=0;Statistics=0;Threads=3;UID=admin;UserCommitSync=Yes;";Locale Identifier=2052
1.摆上一个adoconnection控件,双击控件打开连接字符串编辑器
2.选择Use Connection string,单击build按钮。
3.在data link属性框中,如果用Access使用"ms jet 4.0 ole db provider',单击next按钮,选择数据库,用户,密码,单击test connection按钮测试。成功后可单击确定按钮关闭,delphi自动生成连接字符串。
4.生成完毕注意将loginprompt设为false。
5.使用ado数据访问控件设置connection属性指向adoconnection控件即可。