Вниз
Скачать: 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.46 MB
Время: 0.021 c
1-41378
_Agent_
2003-10-30 13:32
2003.11.13
Вопрос по Thread, мож кто прояснит в чём дело...


1-41699
Deathmaster
2003-11-03 23:12
2003.11.13
Превратить в десятичный вид вещественное число, записанное в 16-р


11-41124
Maxim Pushkar
2003-02-13 01:00
2003.11.13
Проблемы с конвертацией дат и NewFileStream


1-41675
Dima_dvp
2003-10-25 00:53
2003.11.13
Как создать ф-ию на ASM, чтобы параметры через регистры?


4-42276
Ilg
2003-09-11 19:11
2003.11.13
Текст из Edit




   Наверх