В этом примере вы узнаете, как создать системный DSN для базы данных Access. Предположим, файл с БД лежит в том же каталоге, что и программа, а его имя - db1.mdb.
#include <sysutils.hpp>
WORD fRequest = ODBC_ADD_SYS_DSN;
UCHAR lpszDriver[] = "Microsoft Access Driver (*.mdb)";
UCHAR lpszAttributes[255] = "DSN=c2a;DBQ=";
bool retCode;
AnsiString CurDir;
CurDir = GetCurrentDir();
StrCat(lpszAttributes, CurDir.c_str());
StrCat(lpszAttributes, "\\db1.mdb");
retCode = SQLConfigDataSource(NULL, fRequest, lpszDriver, lpszAttributes);
if (retCode == true)
Application -> MessageBox("DSN успешно создан", "Сообщение", MB_OK);
else
{
Application -> MessageBox("Произошла ошибка во время создания DSN",
"Ошибка", MB_OK);
}
Как видите, здесь уже не нужны хэндлы и код достаточно ясный. В первых трех строках - дописываем в строку атрибутов путь к файлу БД. Затем собственно создаем источник. Обработка ошибок тривиальна.
Важное замечание: При создании DSN если такое имя уже есть, то не возвращается ошибка, а создается DSN с текущими параметрами.
Знаете ли Вы, что инкапсуляция, Encapsulation - От лат.In - в + Capsula - это ящичек, в объектно-ориентированном программировании - сокрытие внутренней структуры данных и реализации методов объекта от остальной программы. Другим объектам доступен только интерфейс объекта, через который осуществляется все взаимодействие с ним.