Форум: "Базы";
Текущий архив: 2003.11.13;
Скачать: [xml.tar.bz2];
Вниз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 вся ветка
Форум: "Базы";
Текущий архив: 2003.11.13;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.031 c