在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('software/ODBC/ODBCINST.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('software/ODBC/ODBC.INI/ODBC Data Sources',True) then
begin
if not ValueExists(sDsnName) then
          WriteString(sDsnName,sDriName);
      end
else
begin
result:= false;
exit;
end;
CloseKey;
if openkey('software/ODBC/ODBC.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','');
writeString('Description','DoWhat Create');
if not ValueExists('driver') then
writeString('driver',sTmp);
end
else
begin
result:= false;
exit;
end;
end;
finally
regTmp.CloseKey;
end;
end;
新聞熱點
疑難解答