Дата публикации: 25.08.2010

Как программно создать базу данных Firebird или InterBase используя ADOX и Visual C# .NET (или VBScript)

Для работы примеров из данной статьи вам понадобится IBProvider. Если он у вас не установлен, скачайте его прямо сейчас!

Для задания параметров новой базы данных в IBProvider появилось несколько новых свойств инициализации:

Создаем базу данных Firebird/InterBase c использованием VBScript:

dim catalog

set catalog=createobject("ADOX.Catalog")

wscript.echo "Database creation"

call catalog.create("Provider=LCPI.IBProvider.3;" & _
                    "location=localhost:d:\database\test_ibp.fdb;" & _
                    "user id=SYSDBA;" & _
                    "password=masterkey;" & _
                    "ctype=win1251;" & _
                    "IBP_NEWDB: Database Page Size=8192;" & _
                    "IBP_NEWDB: Database Dialect=3;" & _
                    "IBP_NEWDB: Default Charset=UNICODE_FSS")

wscript.echo ""
wscript.echo "Server Type     :"&catalog.ActiveConnection.Properties.Item("DBMS Name").Value
wscript.echo "Server Version  :"&catalog.ActiveConnection.Properties.Item("DBMS Version").Value
wscript.echo "DB Page Size    :"&catalog.ActiveConnection.Properties.Item("IB Database Page Size").Value
wscript.echo "Database Dialect:"&catalog.ActiveConnection.Properties.Item("IB Database Dialect").Value

call catalog.ActiveConnection.BeginTrans()

dim rs
set rs=catalog.ActiveConnection.Execute("select RDB$CHARACTER_SET_NAME from RDB$DATABASE")

wscript.echo "Database Charset:"&cstr(rs(0).value)

call catalog.ActiveConnection.CommitTrans()

Создаем базу данных Firebird/InterBase c использованием Visual C#:

Далее пример кода на Visual C#, демонстрирующего создание базы данных:

  1. Добавьте ссылку на COM-библиотеку «Microsoft ADO Ext 2.X for DLL and Security»
  2. Запустите пример на выполнение:
[TestFixture]
public class SamplesCreateDatabaseViaADOX
{
    string str_path_db = "d:\\test_ibp.fdb";

    [Test(Description = "Create Database Via ADOX library sample")]
    public void CreateDatabaseViaADOXTest()
    {
        string str_provider = "LCPI.IBProvider.3";
        string str_userid = "SYSDBA";
        string str_password = "masterkey";
        string str_ctype = "win1251";

        string str_new_db_default_charset = "UNICODE_FSS";
        string str_new_db_dialect = "3";
        string str_new_db_page_size = "8192";

        // create database
        ADOX.Catalog cat = new ADOX.Catalog();
        cat.Create(string.Format(
                    "Provider={0};" +
                     "Location=locahost:{1};" +
                     "User id={2};" +
                     "password={3};" +
                     "ctype={4};" +
                     "IBP_NEWDB: Database Page Size={5};" +
                     "IBP_NEWDB: Database Dialect={6};" +
                     "IBP_NEWDB: Default Charset={7}",
                     str_provider, str_path_db, str_userid,str_password, str_ctype,
                     str_new_db_default_charset,str_new_db_dialect, str_new_db_page_size));

         OleDbConnection cn = new OleDbConnection(string.Format(
                     "Provider={0};" +
                     "Location=localhost:{1};" +
                     "User id={2};" +
                     "password={3};" +
                     "ctype={4};",
                     str_provider, str_path_db, str_userid, str_password, str_ctype));

         // test connection
         cn.Open();
         cn.Close();
    }

    [TearDown]
    void CleanUp()
    {
        // cleanup - delete database if exists
        if (System.IO.File.Exists(str_path_db))
            System.IO.File.Delete(str_path_db);
    }

Еще один пример создания БД, с использованием DDL команды CREATE DATABASE

В завершении вы можете посмотреть еще один пример создания БД Firebird/InterBase через IBProvider через команды DDL. Смотрите пример: создание базы данных через DDL.


Теги: ADOX, Visual C#, Create Database, Firebird, InterBase, VBScript.
Автор: Andrew A. Merkulov  

Дата публикации: 25.08.2010. Права на материал принадлежат: IBProvider. При перепечатке ссылка на сайт https://www.ibprovider.com/rus обязательна.