![]() |
|
|
![]()
|
|
| ПостороннимВ |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 14.8.2011 Репутация: нет Всего: нет |
Коллеги, кто работал с функциями ODBC напрямую? передо мной задача - получить полное описание всех таблиц в базе MDB. Список таблиц я прекрасно получаю и обрабатываю с помощью SQLTables. Список колонок получается при помощи SQLColumns. С именами и типами данных все в порядке. А вот с признаком NOT NULL - нет! Сколько бы ни было в таблице колонок NOT NULL, для всех них возвращается NULLABLE = 1 (11 позиция) и ISNULLABLE = "YES" (18 позиция).
У гугля спрашивал - только еще 1 человек в 2006 году интересовался подобным, и ему никто не ответил.... Вот есть программка http://alekseyrybakov.narod.ru/ViewODBC.zip, так она показывает все правильно. Посмотрел таблицу импорта exe-шника - автор вроде тоже пользуется SQLColumns, включил трассировку ODBC, и потом у себя воспроизвел те же вызовы с теми же параметрами - и нифига. Правда, он получает данные из result set-а, сделав предварительно SQLBindCol, как в примере в MSDN, а я через SQLGetData, но это же непринципиально, ИМХО. Я и через SQLBindCol пробовал - то же самое, Nullable = 1, хоть тресни. Написал тестовую прогу, она коннектится к базе db1.mdb, лежащей в текущем каталоге, создает таблицу с двумя NOT NULL колонками, и сразу же запрашивает инфу о колонках этой таблицы. Если обнаружена колонка NOT NULL, то должен выскочить MessageBox. Я уж пробовал и Nullable вместо SQLSMALLINT определять как SQLINTEGER - все равно 1. Может, я ошибаюсь где-то в программе? У меня такое чувство, что есть какая-то хитрость, которую знают все, кроме меня, потому что с виду все просто (для меня), и я не пойму, что можно подправить в получении полей запроса, чтобы заработало.
|
|||
|
||||
| Kirow |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 31 Регистрация: 1.11.2007 Репутация: нет Всего: нет |
Не могли бы привести пример кода, как с помощью SQLTables получить список таблиц БД? А то к сожалению у меня не получается...получаю пути к файлам вместо имен таблиц.
UPD: Нашел простой и рабочий пример кода с получением таблиц... Скопирую, на всякий случай...вдруг кому-либо понадобится
Это сообщение отредактировал(а) Kirow - 11.10.2011, 21:17 |
|||
|
||||
![]()
|
| Правила форума "C++: Базы данных" | |
|
|
Данный форум предназначен для обсуждения вопросов прямым образом связанных с C++ и БД. Так, вопросы только по C++ следует задавать в C++:Общие вопросы а вопросы по абстрактным БД в Базах данных или в соответствующих под-форумах. Благодарим за понимание. Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, chipset. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Базы данных | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |