Вниз
Скачать: CL | DM;

ODBC - как оно пашет   Найти похожие ветки 

← →
gag   (2003-10-25 13:05) [0]

Приветствую, Мастера. Есть проект движка баз данных (СУБД). Ну и значит, пока проект на доэмбриональной стадии (легко изменения вносить принципиальные), хочу добавить в структуру движка ODBC-элементы (шоб например в акцессе таблицу на моей субде сделаную можно было юзать, и наоборот). Вы на речевые обороты не смотрите, я серьёзно к этому проекту отношусь - это может стать моим дипломным проектом.


← →
kaif ©   (2003-10-25 13:23) [1]

Найди спецификацию по ODBC. Список функций, которые драйвер должен поддержать и пиши свой драйвер. Но это не такая простая задача, как может показаться. Нужно поддержать достаточно большой список функций (весь ANSI-92 SQL), к тому же работу с метаданными. ODBC работает так. Есть так называемый источник данных DataSource (аналог алиасов BDE). Это вообще-то текстовый файл с параметрами соединения (какой драйвер вызвать, гда база лежит и т.п.). Клиент обращается к системе ODBC , сообщив, с каким источником он хочет связаться, и система ODBC вызывает соответствующий драйвер. Далее клиент вызывает функции ODBC (это просто некоторое API), которые та далее вызывает из драйвера и драйвер должен суметь их выполнить. Это может быть, например, функция, делающая SQL-запрос SELECT. Как ты понимаешь, нужно суметь его отработать в твоей СУБД, организовать память под результирующий набор и поддержать вызов функций FETCH, которые этот набор дальше будут извлекать построчно. Чтобы не потерять контекст, в ODBC существует что-то типа сессиий (как в BDE). сейчас я уже не помню, но в книжках по ODBC описана последовательность, в которой нужно вызывать функции, чтобы открыть сессию, сделать какие-то дела и закрыть сессию.
В общем, без книжки никуда не денешься.


← →
kaif ©   (2003-10-25 13:30) [2]

Вот, нашел. У меня тут книжка есть "Использование ODBC для доступа к базам данных" Роберт Сигнор, Михаэль О.Стегман, 1995. Изд-во "Бином".
Да, забыл сказать. ODBC Поддерживает такую вещь, как выяснение возможностей драйвера. Есть функция SQLGetInfo, которая возвращает клиенту (пользователю) информацию о том, какие ты SQL-операторы поддерживаешь и в какой степени. Никто не поддерживает все операторы. Начни с того, чтобы разобраться в этой функции и в том, как драйвер сообщает ей свои возможности.


← →
gag   (2003-10-26 13:46) [3]

Спасибо.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.021 c
14-42127
Nikolay M.
2003-10-22 13:08
2003.11.13
Вот не повезло с отчеством...


14-41969
Думкин
2003-10-20 04:51
2003.11.13
С днем рождения! 18 октября.


7-42170
arous
2003-08-31 00:20
2003.11.13
Дата BIOS


3-41009
Val
2003-10-14 14:17
2003.11.13
DBAware Controls


1-41234
qwerty2
2003-11-03 22:53
2003.11.13
Структура как возвращаемое функцией значение




   Наверх