在ODBC數據源裡配置數據庫,通過這種方式,應用程序的編寫變的簡單。只需要在應用程序裡面指定已經配置好的數據源就可以連接,訪問數據庫。但是,這種方式也有一定的局限性,需要手工的在ODBC數據源裡面配置。需要教會程序的使用者如何去配置,而且,如果一不小心更改了ODBC數據源的配置(也許是無意的)。就會造成連接數據庫失敗。這時候,程序的使用人員也許會一籌莫展,束手無策。
在form或Data Modules上放置Tdatabase控件,屬性設置如下:
object dbWork: TDatabase
DatabaseName = 'work'
LoginPrompt = False
SessionName = 'Default'
TransIsolation = tiDirtyRead
Left = 32
Top = 16
End
1)Paradox數據庫的連接
dbWork.Connected := False
dbWork.DriverName :='STANDARD';
dbWork.Params.Values['PATH'] := ‘d:/data’; //填寫數據庫路徑
dbWork.Connected := True;
2)Informix數據庫的連接(BDE連接)
dbWork.Connected := False
dbWork.DriverName := 'informix';
dbWork.Params.Values['SERVER NAME'] := sServer ;//數據庫服務器名稱
dbWork.Params.Values['USER NAME'] := sUse ;//用戶名稱
dbWork.Params.Values['DATABASE NAME'] := ‘sysmaster;//數據庫名稱
dbWork.Params.Values['PASSWord'] := sPass ;//用戶密碼
dbWork.Connected:=True;
3) SQL Server數據庫的連接(與informix一樣)
dbWork.Connected := False
dbWork.DriverName := 'MSSQL';
dbWork.Params.Values['SERVER NAME'] := sServer ;//數據庫服務器名稱
dbWork.Params.Values['USER NAME'] := sUse ;//用戶名稱
dbWork.Params.Values['DATABASE NAME'] := ‘master;//數據庫名稱
dbWork.Params.Values['PASSWord'] := sPass ;//用戶密碼
dbWork.Connected:=True;
4)Postgrd SQL數據庫的連接(ODBC連接)
dbWork.Connected := False
dbWork.DriverName := 'PostgreSQL';
dbWork.Params.Values['ODBC DSN'] := 'PgSQL';/ /數據源名稱
dbWork.Params.Values['SERVER NAME'] := sServer ;//數據庫服務器名稱
dbWork.Params.Values['USER NAME'] := sUse ;//用戶名稱
dbWork.Params.Values['DATABASE NAME'] := ‘master;//數據庫名稱
dbWork.Params.Values['PASSWord'] := sPass ;//用戶密碼
dbWork.Connected:=True;
PS:ODBC連接時,請保證odbc驅動安裝正確;並且有設置odbc;
附自動設置odbc代碼:
// sDriName 驅動程序名 (PostgreSQL)
// sDsnName 數據源名
function CreateDSN(sDriName,sDsnName:string): boolean;
var
regTmp: TRegistry;
sTmp: String;
begin
Result:= True;
regTmp:= TRegistry.Create;
try
with regTmp do
begin
RootKey:= HKEY_LOCAL_MacHINE;
if openkey('softwareODBCODBCINST.INI'+sDriName,false) then
begin
sTmp:= ReadString('driver');
if sTmp = '' then
begin
result:= false;
exit;
end;
end
else
begin
result:= false;
exit;
end;
CloseKey;
RootKey:= HKEY_CURRENT_USER;
if openkey('softwareODBCODBC.INIODBC Data Sources',True) then
begin
if not ValueExists(sDsnName) then
WriteString(sDsnName,sDriName);
end
else
begin
result:= false;
exit;
end;
CloseKey;
if openkey('softwareODBCODBC.INI'+sDsnName,True) then
begin
if not ValueExists('ServerName') then
writeString('ServerName','');
if not ValueExists('DataBase') then
writeString('DataBase','');
if not ValueExists('UserName') then
writeString('UserName','');
if not ValueExists('PassWord') then
writeString('PassWord','');
if not ValueExists('Description') then
writeString('Description','DoWhat Create');
if not ValueExists('driver') then
writeString('driver',sTmp);
end
else
begin
result:= false;
exit;
end;
end;
finally
regTmp.CloseKey;
end;