2010-05-24 4 views
2

Я пытаюсь подключиться во время выполнения с SQL Server 2008 с Delphi 2009 с помощью DBExpress, это не работает. Когда я устанавливаю все свойства во время разработки, он отлично работает, но в RunTime я получаю «неизвестный драйвер: mssql». Ниже приведен код:
DBExpress, соединяющий SQL 2008 во время выполнения с Delphi 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 в том же каталоге, что и мое приложение, но безрезультатно. Любая помощь будет принята с благодарностью.
Tks

+0

Похоже, никто не заметил. Я добавил более общий тег delphi, чтобы получить больше просмотров. –

+1

Я читал несколько раз, что эта проблема была решена путем включения соответствующего подразделения в предложение uses, я думаю, что «DBXMsSql» в этом случае. BTW, AFAIK, изменяющее имя подключения, сбрасывает имя драйвера, поэтому заранее не нужно указывать имя драйвера. –

ответ

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