Приклад створення бази даних

1) Створення бази даних з використання ODBC API функції SQLConfigDataSource. Такий варіант зручний в випадку сервісних робіт з базою даних. Так як ми не отримуємо безпосередньо керування над базою даних.

 SQLConfigDataSource( NULL,
                      ODBC_ADD_DSN,
                      "Firebird/InterBase(r) driver",
                      "ODBC\0"
                      "CREATE_DB = D:\\TestService\\test.fdb\0"
                      "DESCRIPTION = My Firebird database\0"
                      "UID         = SYSDBA\0"
                      "PWD         = masterkey\0"
                      "CHARSET     = NONE\0"
                      "PAGESIZE    = 8192\0"
                      "DIALECT     = 3\0" );

2) Створення бази даних з використання ODBC API функції SQLDriverConnect. Цей випадок зручний при стартових роботах програми користувача. Коли драйвер виконує з'єднання, він обробляє код помилки сервера і якщо статус помилки вказує що файл бази даних відсутній, то драйвер повторно виконує запит, але зпочатку виконує операцію створення бази даних. При успішному виконанні ми отримуємо доступ до цієї бази.

 
    UCHAR buffer[1024];
    SWORD bufferLength;

    SQLDriverConnect( connection, hWnd, 
                      (UCHAR*)"DRIVER=Firebird/InterBase(r) driver;"
                      "UID=SYSDBA;"
                      "PWD=masterkey;"
                      "PAGESIZE=8192;"
                      "DBNAMEALWAYS=C:\\Temp\\NewDB.fdb", SQL_NTS,
                      buffer, sizeof (buffer), &bufferLength,
                      SQL_DRIVER_NOPROMPT );

3) Створення бази даних з використання ODBC API функції SQLExecDirect. Цей випадок цікавий тим, що база створюється на базі вже існуючого з'єднання. Тобто нам не потрібно вказувати "DRIVER=Firebird/InterBase(r) driver;", це і інші необхідні значення будуть взяті з активного з'єднання. І знову ж таки, після виконання команди ми не отримаємо доступу до бази, для цього потрібно використати SQLDriverConnect або SQLConnect.

 
    SQLExecDirect( hStmt, 
                   "CREATE DATABASE \'C:/TEMP/NEWDB00.FDB\'"
                   "   PAGE_SIZE 8192"
                   "   SET NAMES \'NONE\'"
                   "   USER \'SYSDBA\'"
                   "   PASSWORD \'masterkey\';",
                   SQL_NTS );