2010-05-24 59 views
2

我想在運行時與SQL Server 2008與德爾福2009年使用DBExpress連接,它不工作。當我在設計時設置所有屬性時,它運行良好,但在RunTime,我得到「未知驅動程序:mssql」。下面是代碼:
DBExpress連接SQL 2008在運行時與德爾福2009年


    scnConexao := TSQLConnection.Create(nil); 
    scnConexao.DriverName := 'MSSQL'; 
    scnConexao.ConnectionName := 'MSSQLConnection'; 
    scnConexao.GetDriverFunc := 'getSQLDriverMSSQL'; 
    scnConexao.LibraryName := 'dbxmss.dll'; 
    scnConexao.VendorLib := 'oledb'; 
    scnConexao.LoginPrompt := False; 
    scnConexao.Params.Add('SchemaOverride=sa.dbo'); 
    scnConexao.Params.Add('HostName=DESKTOP'); 
    scnConexao.Params.Add('DataBase=DBNAME'); 
    scnConexao.Params.Add('OS Authentication=False'); 
    scnConexao.Params.Add('User_Name=UserName'); 
    scnConexao.Params.Add('Password=Password'); 
    scnConexao.Params.Add('MSSQL TransIsolation=ReadCommited'); 
    scnConexao.Open; 

我已經包含在同一個目錄中我的應用程序的dbxmss.dll,但無濟於事。任何幫助將不勝感激。
韓國社交協會

+0

貌似沒有人注意到這一點。我添加了更通用的「delphi」標籤,以便獲得更多視圖。 – 2010-05-27 17:40:35

+1

我讀了幾次,通過在uses子句中包含相關單元解決了此問題,在這種情況下我認爲「DBXMsSql」。順便說一句,改變連接名稱的AFAIK將重置驅動程序名稱,因此預先設置驅動程序名稱沒有意義。 – 2010-05-28 02:06:06

回答

0

嘗試這種情況:

With MSSQLCONNECTION do begin 
ConnectionName:= 'SQLCONN'; 
LoadParamsFromIniFile('file.ini'); 
try 
Connected:=true; 
Execute('select * from auto',nil); 
except 
    on E: Exception do begin 
    ShowException(E, nil); 
    Halt(1); 
    end; 
end; 

端;

base.ini:

[SQLCQONN] 
bad param 
drivername=MSSQL 
schemaoverride=%.dbo 
vendorlibwin64=sqlncli10.dll 
HostName=localhost\sqlexpress 
database=sec 
user_name=sa 
password=Guess 
blobsize=-1 
localecode=0000 
isolationlevel=ReadCommitted 
os authentication=False 

詳見http://docwiki.embarcadero.com/RADStudio/en/Setting_Up_TSQLConnection