| « Поставить закладку » « Сделать стартовой » | |||
|
|||
|
Программное управление источниками данных ODBC
ВведениеТема нашего сегодняшнего разговора - ODBC. Если вы хоть раз писали СУБД (системы управления базами данных), то вам, наверное, знакома эта аббревиатура. Расшифровывается ODBC как Open DataBase Connectivity (вольный перевод - открытая система связи с базами данных). Open (открытая) в данном случае означает "расширяемая", "легко наращиваемая", "открытая для модификаций". Как легко заметить, она действительно легко наращиваемая. Для добавления нового типа БД нужно лишь написать драйвер и зарегистрировать его. Еще одно преимущество, вытекающее из такого построения ODBC - пользовательское приложение общается с физической БД через менеджер драйверов, фактически ничего не зная о типе используемой БД (общение менеджера драйверов и самих драйверов более менее стандартно, так что с точки зрения пользователя все источники данных обладают практически одинаковыми свойствами). Таким образом, вы легко можете поменять физический тип базы данных, а приложение даже не узнает об этом (конечно, существуют исключения из-за особенностей поддержки языка SQL различными типами БД, но они несущественны). Физически ODBC представляет собой набор динамических библиотек DLL, которые обслуживают подключение и работу с конкретным типом базы данных.При запросе на подключение к определенной, заранее описанной базе "активизируется" определенная DLL - драйвер этого типа БД. Обращение к определенной базе данных происходит по имени так называемого источника данных ODBC (или DSN - data source name). Можно представить DSN как своего рода объявление БД на данном компьютере, причем DSN может быть пользовательским, т.е. находится в области видимости только одного польователя, в сеансе которого был создан этот DSN, и системным, т.е. видимым всеми пользователями данного компьютера. Управление источниками данных ODBC (да и вообще настройкой всей системы ODBC) осуществляется с помощью специальной программы - ODBC-администратора. Давайте разберем, где его можно найти в различных версиях Windows: - Windows 9х - сам исполняемый файл odbcad32.exe лежит в каталоге WindowsSystem. Запускать его можно напрямую либо через Панель управления (значок "Источники данных ODBC (32-бит)"). Если на компьютере установлен BDE, запустите администратор BDE и из меню Object выберите пункт ODBC Administrator. - Windows 2000 - исполняемый файл odbcad32.exe лежит в каталоге WinNTSystem32, а запускать его можно через Панель управления -> Администрирование -> Источники данных ODBC. К сожалению, у меня нет возможности проверить, как с ODBC в NT3.51 / 4 - не думаю, что там ребята из Microsoft сильно его спрятали. Почему ODBC?Ведь есть же BDE, скажете вы. Да, возможно вы правы. Однако здесь есть "но". У обоих движков есть свои преимущества и недостатки. ODBC намного лучше работает с "родными, от Microsoft" источниками данных продуктов Microsoft Office - типа Access, Excel, MS SQL Server (вообще-то из-за Access я и затеял всю эту писанину). Кроме того, в стандартный дистрибутив BDE, который можно на каждом шагу найти в Интернете, я что-то ни разу не встречал SQL Links, впрочем, как я ни разу не встречал и отдельного дистрибутива SQL Links. А именно после установки SQL Links в BDE появлется возможность создавать алиасы к Access, MS SQL Server, Oracle и др. типам баз данных. Устанавливать же полную версию C++Builder или Delphi на компьютер пользователя может не каждый. А ODBC на "голой" машине уже содержит драйверы Access, Excel, FoxPro и SQL Server. В общем, для общего развития не помешает освоить и ODBC, тем более что access'овские базы, с которыми мы будем работать через ODBC, очень надежны (не в пример стандартным BDE'шным paradox'овым, у которых то и дело сыпятся индексы, а про такое поле как счетчик я вообще молчу), практически на любом компьютере пользователя установлен Office, что позволяет вносить коррективы "на месте", да и удобство всей базы в одном файле тоже иногда сказывается. Фнукции, с которыми нам придется работатьЕстественно, я не буду рассказывать обо всех функциях, с помощью которых можно сделать с ODBC все, что угодно. Поверьте, их очень много. Нам же для нашей практической задачи достаточно будет всего четырех: 1. Функция SQLDataSources возвращает список всех источников данных ODBC. RETCODE SQLDataSources(HENV hEnv, UWORD fDirection, UCHAR * szDSN,
SWORD cbDSNMax, SWORD *pcbDSN, UCHAR * szDescription,
SWORD cbDescriptionMax, SWORD * pcbDescription );
hEnv - хэндл, возвращаемый функцией SQLAllocEnv(); fDirection - задает режим работы. Может принимать значения SQL_FETCH_FIRST - вернуть первую запись и SQL_FETCH_NEXT - вернуть следующую запись. Логика работы аналогична функциям FindFirst и FindNext (помните DOS?); szDSN - указатель на буфер длиной не менее cbDSNMax, куда будет записано имя источника данных; cbDSNMax - длина буфера szDSN; pcbDSN - указатель на целое, куда записывается реальная длина (не включая завершающий ) принятого имени источника данных; szDescription - указатель на буфер длиной как минимум 255 символов, куда запистывается описание принятого источника данных; cbDescriptionMax - длина буфера szDescription; pcbDescripton - указатель на целое, куда записывается реальная длина описания источника данных. 2. Функция SQLConfigDataSources добавляет, изменяет или удаляет указанный источник данных. BOOL SQLConfigDataSources(HWND hwndParent, WORD fRequest,
LPCSTR lpszDriver, LPCSTR lpszAttributes)
hwndParent - хэндл родительского окна. Если не равен NULL, отображается стандартный для данного типа источника данных диалог настройки. fRequest - тип запрашиваемой операции. Может принимать следующие
значения: lpszDriver - указатель на строку, содержащую имя драйвера, ассоциированного с конкретным типом БД; lpszAttributes - указатель на строку атрибутов в форме ключевое слово - значение. Каждая такая пара должна заканчиваться символом , в конце строки атрибутов должен стоять двойной символ . Приведем несколько примеров строки атрибутов, чтобы вам было понятно, что это такое: "DSN=MySource UID=MyLogin PWD=MyPass" - источник данных с именем MySource, логин - MyLogin, пароль - MyPass Каждый драйвер "понимает" свои ключевые слова, чаще всего применяются: PWD - пароль Для баз данных Microsoft Access для указания имени БД вместо DATABASE используется ключевое слово DBQ. 3. Функция SQLAllocEnv создает новый хэндл для использования в других функциях и инициализирует интерфейс для работы с ODBC RETCODE SQLAlocEnv(HENV * hEnv) hEnv - указатель на переменную, которая будет хранить созданный хэндл в случае удачного выполнения функции 4. Функция SQLFreeEnv удаляет заданный хэндл и освобождает всю память, ассоциированную с ним. RETCODE SQLFreeEnv(HENV hEnv) hEnv - хэндл, который нужно удалить Рубрика: Базы данных
Подгрузка через AJAX HTML-кода, содержащег....
При разработке CMS S.Builder наша команда активно использовала AJAX. Теперь вот решили поделиться накопленным опытом. Начнем с этого хабратопика. Не буду здесь затрагивать различные фреймворки и библиотеки. Свой код всегда роднее. Для работы с AJAX-ом в S.Builder написана библиотека sbAJAX. Можете качать и пользоваться :). В этом файле есть функция sbEvalJS. Для тех, кто не знает, объясню. При подгрузке через AJAX и вставке на страницу HTML-кода, содержащего JavaScript, JavaScript выполняться не будет или полезут баги. Эта функция как раз решает поставленную задачу.
Подробнее... |
Рубрика: AJAX
| Добавлено: 19.11.2008
Обзор нового релиза самой мощной Ajax библ....
Хотя наш обзор немного запоздал, оригинальный Dojo 1.2 вышел в релизной версии ещё 6-го октября, но сейчас мы наверстаем упущенное. И так, Dojo Toolkit — это самая мощная и гибкая ajax-библиотека из всех, что есть на рынке, она активно развивается и имеет большое комьюнити. Кстати, это самое комьюнити, совместно с компанией Sitepen, имеет ещё несколько проектов, среди которых и Cometd и некоторые другие, не менее интересные, о которых мы скоро вам расскажем. Сегодня же все внимание на флагманский продукт — Dojo 1.2.
Подробнее... |
Рубрика: AJAX
| Добавлено: 19.11.2008
Firebug 1.3 и 1.4 alpha — что нового и инт....
Если вы профессиональный веб-разработчик и постоянно имеете дело с разработкой и отладкой сложных AJAX приложений, то наверняка знаете и используете Firebug — плагин для браузера Firefox, предназначенный для отладки и исследования веб-приложений. Текущая его версия, 1.2х достаточно стабильная и функциональна, чтобы помочь в 99% проблем, которые могут возникнуть при разработке. Но и этот инструмент не лишён если не недостатков, то некоторых фич, которые могли бы облегчить работу. И даже идеальный инструмент можно сделать ещё более идеальным, как бы это не звучало.
Подробнее... |
Рубрика: Вебмастеру
| Добавлено: 19.11.2008
Остальные статьи: |
Цитата дня (все,добавить):
|
Realcoding.NET
© 2003-2008 |
Контакты |
Реклама на сайте
|