您不妨略过阅读,但其中包含的理由是可以过滤掉告诉我不要做我不确定的事情的人。

我正在尝试调试一些多线程数据库hoopla,尽管它能正常工作,但我会很高兴的。我是DBExpress的新手(仅使用4-5小时)。我没有使用TSQLConnection或任何设计时组件,因为我正试图以一种不费吹灰之力而又不为人所知的方式重写现有的ODBC32.dll接口,一旦完成,我将展示其余的精妙之处。我之所以提到它,是因为很明显,我没有以许多教程中所示的正常方式使用dbexpress。



这是问题

我正在使用TDBXConnection并连接到ODBC数据源,我想尝试在连接上设置SQL_ATTR_ASYNC_DBC_FUNCTIONS_ENABLE参数,但是我不知道在何处设置该特定参数。

最佳答案

您已经在其他地方定义了FDBConnection : TDBXConnection;,所以现在您必须:
....

begin
  if FDBConnection is TDBXOdbcConnection then
  with FDBConnection as TDBXOdbcConnection do
  begin
    MethodTable.SQLSetEnvAttr(EnvironmentHandle, SQL_ASYNC_ENABLE, Pointer(SQL_ASYNC_ENABLE_ON), 0);
    MethodTable.SQLSetEnvAttr(EnvironmentHandle, SQL_ASYNC_DBC_FUNCTIONS, Pointer(SQL_ASYNC_DBC_CAPABLE), 0);

  end;
end;

那很轻松。
在使用中包括Data.DBXODBCSystem.ODBC,您就很聪明。

10-05 22:42