在运行时将TSQLConnection连接到用户选择的DSN

时间:2010-02-28 22:57:16

标签: sql delphi odbc dbexpress

我想使用dbExpress和TSQLConnection对象来允许我的应用程序的用户连接到他们的任何ODBC dsn并对其运行SQL查询。

我拥有它所以用户可以选择DSN,(通过DSN我的意思是控制面板中列出的所有已配置的数据源 - 管理工具 - 数据源(ODBC)),但是一旦他们选择了一个 我不知道如何配置TSQLConnection对象。

我想我需要设置:

SQLCon.connectionName

SQLCon.driverName

SQLCon.getDriverFunc

在给定DSN的注册表设置中,我有一个指向DLL的“DRIVER”条目,但没有任何内容表示“getDriverFunc”值。

有没有人有任何建议或在运行时为ODBC DSN设置TSQLConnection(或任何其他delphi数据库连接)的示例?

由于

5 个答案:

答案 0 :(得分:2)

我发现最好的方法是使用TADOConnection,只需在连接字符串中指定DSN。

答案 1 :(得分:2)

这里如何在TADOConnection中执行此操作:

这是ODBC提供程序的连接字符串(系统DSN):

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

这里演示了如何使用它来连接到名为'SQLServerDSN'的DSN,用户'sa'和密码'pass':

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

我希望这会有所帮助。

答案 2 :(得分:1)

  1. 如果您必须通过dbExpress技术使用ODBC DSN,那么您必须从http://open-dbexpress.sourceforge.net下载并使用“Kylix / Delphi开源DbExpress驱动程序for ODBC”。在那里你可以找到连接示例,列出DSN的功能。等
  2. 如果您有更简单的东西,那么您可以使用TADOConnection和MSDASQL OLEDB提供程序,即OLEDB - > ODBC桥接提供程序。 Ť
  3. 如果您需要Delphi的高级ODBC支持,那么您应该关注3d party产品。
  4. 所以,决定你需要什么,然后我就能为你提供一些样品。

答案 3 :(得分:0)

没有使用过DBexpress,但是如果你使用ADB,ADO单元中有一个预制方法。
我认为您可以使用is,如果需要,您可以更改它返回的连接字符串的som部分。

方法是ADODB.PromptDataSource;

答案 4 :(得分:0)

可能是使用哪个连接字符串的最佳资源是connectionstrings.com。要将ODBC与dbExpress一起使用,您需要ODBC driver