8.х Как создать базу Firebird из 1С?

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем sagitt, 5 апр 2012.

  1. TopicStarter Overlay
    sagitt
    Offline

    sagitt Опытный в 1С

    Регистрация:
    13 сен 2008
    Сообщения:
    115
    Симпатии:
    0
    Баллы:
    26
    Вот нашел пример решения для Delphi
    http://www.sql.ru/forum/actualthread.aspx?tid=45655&pg=1&mid=313161#313161
    Но там используется функция
    isc_dsql_execute_immediate(@status, db, tran, 0,PChar(BaseSQL), 3, nil);

    Насколько я смог понять, эта функция определена в gds32.dll.
    Может кто-нибудь подскажет, как ее можно вызвать из 1с8?
  2. Tiger86
    Offline

    Tiger86 Модераторы Команда форума Модератор

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    чисто теоретически, надо подключить dll скорее как внешнюю компоненту и потом обратиться к ее функции, пройдитесь поиском по форуму. про подключение внешних компонент есть ветки, по памяти боюсь напутать в названии функции
  3. TopicStarter Overlay
    sagitt
    Offline

    sagitt Опытный в 1С

    Регистрация:
    13 сен 2008
    Сообщения:
    115
    Симпатии:
    0
    Баллы:
    26
    На првктике теперь надо узнать имя экспортируемого COM-обЪекта.
  4. TopicStarter Overlay
    sagitt
    Offline

    sagitt Опытный в 1С

    Регистрация:
    13 сен 2008
    Сообщения:
    115
    Симпатии:
    0
    Баллы:
    26
    Как выяснилось, gds32 COM не регистрирует.

    попытался использовать функцию через dynwrap.dll,пишу


    Код:
    рв=новый   COMОбъект("DynamicWrapper");
    рв.Register ("c:\windows\system32\gds32.DLL", "isc_dsql_execute_immediate", "i=pppcscu", "f=s", "r=l" );
    фдб=СокрЛП("localhost") + ":"+"D:\BASE1.FDB";
    фдб="D:BASE1.FDB";
    польз="SYSDBA";
    пароль="masterkey";
    дб=null;
    тран=null;
    стат=null;
    ОчиститьСообщения();
    скл="CREATE DATABASE """+фдб+""" PAGE_SIZE 4096 USER """+польз+""" PASSWORD """+пароль+"""";
    попытка
    рез=рв.isc_dsql_execute_immediate(стат,дб,тран,0,скл,1,null);
    исключение
    Сообщить(ОписаниеОшибки());
    конецпопытки;
    
    Получаю ошибку
    Ошибка при вызове метода контекста (isc_dsql_execute_immediate): Неизвестная ошибка

    Пытался менять путь к создаваемой базе(2 примера в тексте)- не помогает.

    Если у кого есть опыт борьбы с dynwrap, подскажите, что я не так делаю.

    На всякий случай, описание вызываемой функции:

    ISC_STATUS isc_dsql_execute_immediate(
    ISC_STATUS *status_vector,
    isc_db_handle *db_handle,
    isc_tr_handle *trans_handle,
    unsigned short length,
    char *statement,
    unsigned short dialect,
    XSQLDA *xsqlda);
  5. uza
    Offline

    uza 1С, VBA (EXCEL), VB (.NET + WEB)

    Регистрация:
    10 июл 2007
    Сообщения:
    1.845
    Симпатии:
    1
    Баллы:
    29
    А чем вас неустраивает попытка выполнения команды через isql ?
    Какие-то объективные причины, или исключительно религиозные возрения?

    Что мешает цепануться к серверу, к какой-нить системной БД (или у файрбирда нет такого, типа MASTER?), или любой другой БД, и уж под этим соединением шарахнуть CREATE DATABASE ?

Поделиться этой страницей