2010-02-28 50 views
1

我想使用dbExpress和TSQLConnection對象來允許我的應用程序的用戶連接到他們的任何ODBC dsn並對其運行SQL查詢。我有它,所以用戶可以選擇一個DSN(通過DSN我是指在控制面板 - 管理工具 - 數據源(ODBC)中列出的所有配置的數據源),但一旦他們選擇了一個 我不是確定如何配置TSQLConnection對象。在運行時將TSQLConnection連接到用戶選擇的DSN

我想我需要設置:

SQLCon.connectionName

SQLCon.driverName

SQLCon.getDriverFunc

在一個給定的DSN的註冊表設置我有一個 'DRIVER'條目指向一個DLL,但沒有指示'getDriverFunc'值。

有沒有人有任何建議或在運行時建立一個ODBC DSN的TSQLConnection(或任何其他delphi數據庫連接)的例子?

感謝

回答

2

我發現做到這一點的最好辦法是使用TADOConnection,只需在連接字符串中的DSN。

1
  1. 如果您在使用ODBC的DSN通過dbExpress的TECHNOLOGIE工作,那麼你必須下載並使用「for ODBC的Kylix /德爾福開源dbExpress驅動程序」,從http://open-dbexpress.sourceforge.net。在那裏你可以找到連接的例子,列出DSN的函數。等
  2. 如果你有更簡單的東西,那麼你可以使用TADOConnection和MSDASQL OLEDB提供程序,它是OLEDB-> ODBC橋提供程序。 T
  3. 如果您需要Delphi的高級ODBC支持,那麼您應該看看3D派對產品。

所以,決定你需要什麼,然後我將能夠爲你提供一些樣品。

0

雖然沒有使用DBexpress,但如果您使用ADB,則ADO單元中會有一個預製方法。
我認爲你可以使用,如果需要你可能會改變它返回的連接字符串的SOM部分。

該方法是ADODB.PromptDataSource;

2

這裏如何做到這一點的TADOConnection:

這是ODBC提供商(系統DSN)的連接字符串:

Provider=MSDASQL;DSN=mySystemDSN;Uid=myUsername;Pwd=myPassword 

,這裏是演示展示了你可以如何使用它來連接到DSN命名爲'SQLServerDSN',用戶'sa'和pasword'pass':

procedure TForm1.Button1Click(Sender: TObject); 
begin 
    ADOConnection1.ConnectionString := 'Provider=MSDASQL;DSN='+ 
    'SQLServerDSN;Uid=sa;Pwd=pass'; 
    ADOConnection1.Connected := true; 
end; 

我希望這會有所幫助。