⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dbx_mssql_connect.pas

📁 open-dbexpress 最新版本 3.026, 让dbExpress支持多种数据库
💻 PAS
字号:
{  Version: 2006.03.01}unit dbx_mssql_connect;interfaceuses  Windows, SysUtils, Classes, SqlConst, SqlExpr, DbxOpenOdbcInterface, Registry;procedure MsSqlConnect(SQLConnection: TSQLConnection;  const ServerName, DatabaseName, UserName, Password: string;  DirectOdbc: Boolean = True;  LoginPrompt: Boolean = False;  OSAuthentication: Boolean = False;  const DNS_NAME: string = '';  const AdditionalOptions: string = '';  const LanguageName: string = '');function IsPresentedMsSqlDriver(): Boolean;implementation//DSN=dsn_mssql;UID=user_name;PWD=mypassword;SERVER=server_name_or_ip;//DATABASE=database_name;Trusted_Connection=Yes;APP=application_name;//WSID=client_host_name;Network=DBMSSOCNprocedure MsSqlConnect(SQLConnection: TSQLConnection;  const ServerName, DatabaseName, UserName, Password: string;  DirectOdbc: Boolean = True;  LoginPrompt: Boolean = False;  OSAuthentication: Boolean = False;  const DNS_NAME: string = '';  const AdditionalOptions: string = '';  const LanguageName: string = '');var  sConnectionString: string;begin   SQLConnection.Close;     SQLConnection.DriverName    := '@MyDriver';     SQLConnection.GetDriverFunc := 'getSQLDriverODBC';     SQLConnection.LibraryName   := 'dbxoodbc.dll';     if OSAuthentication then     begin       LoginPrompt := False;       sConnectionString := 'Trusted_Connection=Yes';     end     else     begin       sConnectionString :=           'UID=' + UserName         + ';PWD=' + Password     end;     SQLConnection.LoginPrompt := LoginPrompt;     SQLConnection.Params.Clear;     SQLConnection.Params.Values['Trim Char'] := 'True';     if DirectOdbc then       SQLConnection.VendorLib := 'odbc32.dll'     else       SQLConnection.VendorLib := 'sqlsrv32.dll';     if ServerName <> '' then       sConnectionString := sConnectionString + ';SERVER=' + ServerName;     if DatabaseName <> '' then       sConnectionString := sConnectionString + ';DATABASE=' + DatabaseName;     if LanguageName <> '' then       sConnectionString := sConnectionString + ';LANGUAGE=' + DatabaseName;     if AdditionalOptions <> '' then       sConnectionString := sConnectionString + ';' + AdditionalOptions;     sConnectionString := sConnectionString + ';' + 'coCatPrefix=DATABASE';     if DirectOdbc then       sConnectionString := 'DRIVER={SQL Server};' + sConnectionString     else     begin       if DNS_NAME <> '' then         sConnectionString := 'DNS=' + DNS_NAME + ';' + sConnectionString       else         sConnectionString := 'DRIVER={SQL Server};' + sConnectionString;     end;     {$IF CompilerVersion > 14.01}        // Delphi 7 Up        SQLConnection.Params.Values[DATABASENAME_KEY]  := '?';        SQLConnection.Params.Values[CUSTOM_INFO] := cConnectionOptionsNames[coConnectionString] + '=' + sConnectionString;     {$ELSE}        // Delphi 6        if Length(sConnectionString) > 255 then          SetLength(sConnectionString, 255); // AV protect :(        SQLConnection.Params.Values[DATABASENAME_KEY]  := sConnectionString;     {$IFEND}   SQLConnection.Open;end;function IsPresentedMsSqlDriver(): Boolean;begin Result := False; try   with TRegistry.Create(KEY_READ) do   try     RootKey := HKEY_LOCAL_MACHINE;     if OpenKey('SOFTWARE\ODBC\ODBCINST.INI\SQL Server', False) and       ValueExists('Driver') then     begin        Result := True;     end;   finally     Free;   end; except end;end;end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -