Как установить атрибут для соединения ODBC через DBExpress? - PullRequest
2 голосов
/ 30 декабря 2011

Обоснование того, что вы могли бы также пропустить чтение, но оно включено, чтобы отфильтровать людей, говорящих мне не делать то, в чем я не уверен, во-первых.

Я пытаюсь отладить какую-то многопоточную шумиху в базе данных, это в основном экспериментально, хотя, если я получу это, я буду очень счастлив. Я очень новичок в DBExpress (только использую его в течение 4-5 часов). Я не использую TSQLConnection или какие-либо компоненты времени разработки, потому что я пытаюсь переписать существующий интерфейс ODBC32.dll безболезненно и незаметно, и как только я закончу, я раскрою остальную часть удивительности. Причина, по которой я упоминаю об этом, заключается в том, что совершенно очевидно, что я не использую dbexpress обычным способом, показанным во многих руководствах.


Вот вопрос

Я использую TDBXConnection и подключаюсь к источнику данных ODBC, я хочу попробовать установить параметр SQL_ATTR_ASYNC_DBC_FUNCTIONS_ENABLE для моего соединения, но у меня нет понятия, где можно установить этот конкретный параметр.

1 Ответ

2 голосов
/ 30 декабря 2011

Вы определили 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.DBXODBC и System.ODBC в использование, и вы золотой.

...