Excel — Как привязать данные к SQLBindCol с помощью API драйвера ODBC с помощью переполнения стека

Я пытаюсь создать собственный драйвер ODBC, используя C ++ для среды Windows (например, PostgreSQL, Simba, Firebird и т. Д.), Поскольку ODBC API имеет несколько ODBC API методы по умолчанию.

Я установил соединения с помощью DSN, и я могу выполнить запрос SQL, используя SQLExecuteDirect метод.

Однако при подключении Excel с нашим драйвером ODBC я не могу связать список таблиц с мастером запросов Microsoft.
введите описание изображения здесь

SQLTables (), SQLBindColumn (), а также SQLFetch () методы используются для получения списка имен таблиц здесь. Данные связаны с использованием метода SQLBindColumn.

Но я не совсем понимаю, как извлечь имена таблиц и связать их с Excel?

9

Решение

После звонка SQLExecDirect () или же SQLPrepare () ты можешь позвонить SQLDescribeCol (). SQLDescribeCol () вернет всю необходимую вам информацию о столбце.

Вы можете посетить веб-сайт Microsoft для этого здесь: https://docs.microsoft.com/en-gb/sql/odbc/reference/syntax/sqldescribecol-function

Хотя это только полезно, если вы делаете

select top 1 * from (table name **SQLTables** found)

Или, если вы хотите найти имена столбцов из общего SQL.


Другой способ найти все столбцы — использовать SQLColumns () функция. Это похоже на SQLTables () (Тот же поиск по принципу поиска) и возвращает набор результатов с результатами. Нашел здесь: https://docs.microsoft.com/en-gb/sql/odbc/reference/syntax/sqlcolumns-function

0

Другие решения

Приложение Excel загрузит всю информацию схемы перед выполнением любого запроса.

В этом случае метод SQLTables будет вызываться с такими атрибутами, как каталог, схема и имена таблиц. На основе атрибута, называемого схемой, информация должна быть возвращена в методе SQLFetch.

Для справки: https://docs.microsoft.com/en-us/sql/odbc/reference/syntax/sqltables-function

Если метод SQLTables был вызван с атрибутом имени каталога, то имя каталога должно быть связано в методе SQLFetch с использованием адреса данных, возвращенного в методе SQLBindCol.

Аналогично, имена схем и таблиц также должны были быть возвращены для метода SQLTables.

Для получения дополнительной информации о том, как связать информацию по столбчатой ​​схеме, пожалуйста, обратитесь к разделу комментариев под вышеуказанной ссылкой.

0

По вопросам рекламы [email protected]