Форум: "Базы";
Текущий архив: 2003.09.18;
Скачать: [xml.tar.bz2];
ВнизСоздание базы InterBase, проблемы в ADO или не только? Найти похожие ветки
← →
sniknik (2003-08-27 13:55) [0]Волею судеб (и начальства) приходится изучать IB. В общем задача научить готовую уже программу работать IB базой. (пока она "понимает" только Access и MSSQL) ну да неважно, просто нужно весь функционал программы нужно применить и к IB.
А там есть такая возможность создавать базы "на лету" вот именно это и не получается (в отличии от остального). Почему работа с IB через ADO думаю понятно.
Ну так вот, IB server 6.5 (из поставки 7 дельфей), провайдеров для доступа пробовал несколько, остановился на двух Gemini InterBase ODBC Driver(Evaluetion 60дней) и IB OLE DB Driver от ZStyleGroup (Free версия 5.04), и у обоих ошибки при создании базы запросом (это еще ничего многие просто отказывались работать, и дело похоже не в них).
запрос делаю такой
CREATE DATABASE "D:\TEST.GDB" PAGE_SIZE 4096 DEFAULT CHARACTER SET CYRL
в разных вариантах вплоть до самого простого
CREATE DATABASE "D:\TEST.GDB"
ошибки одинаковые
ZStyle
EOleException : Dynamic SQL Error
SQL error code = -530
Cannot prepare a CREATE DATABASE/SCHEMA statement
Gemini
EOleException : [Gemini InterBase ODBC Driver][INTERBASE]Dynamic SQL Error. SQL error code = -530. Cannot prepare a CREATE DATABASE/SCHEMA statement
А в хелпе вобще встретил странное заявление "You cannot create a database directly from the ISQL command line." (к чему относится непонятно, команда же есть, зачем тогда?) в общем ясно что чтото делаю не так. А как надо? Пожелания, поучения, направления на путь истинный.... ??? ;о)) сделать не обязательно через SQL, любой программный вариант подойдет (только не запихивание пустой базы в ресурс :о)).
Прошу учесть с IB "знаком" только второй день, поэтому если "посылать" то конкретно - (так) Хелп(какой)-Название раздела. ;о)) кстати было бы еще неплохо иметь хелп по его ошибкам (как Pervasive - Status codes & messages), номер, описание, возможные причины. Есть гденибудь к IB такой?
← →
Zacho (2003-08-27 13:58) [1]Да нельзя создать БД SQL-запросом. Не знаю, как в ADO, а в других библиотеках для этого есть специальный метод.
А насчет документации по IB и прочего - см. http://www.ibase.ru
Кстати, сильно советую сменить IB 6.5 на FB
← →
sniknik (2003-08-27 14:11) [2]Zacho © (27.08.03 13:58) [1]
> Кстати, сильно советую сменить IB 6.5 на FB
не могу. (если бы от меня зависело, я бы вообще к нему не притронулся бы, все итак прекрасно работает на Access и MSSQL по выбору)
> Да нельзя создать БД SQL-запросом.
т.е. фраза в хелпе "You cannot create a database directly from the ISQL command line." неспроста. зачем же тогда команда и куча ее описаний в том же хелпе? ну да ладно черт с ними, нельзя так нельзя. а какие такие "специальные методы"? поточнее не можеш? в каких библиотеках... ets.?
← →
Alexandr (2003-08-27 14:15) [3]1) посмотри еще www.ibprovider.com
2) должен быть специальный метод у компонент доступа для создания БД
← →
Zacho (2003-08-27 14:22) [4]
> sniknik © (27.08.03 14:11) [2]
> Zacho © (27.08.03 13:58) [1]
> т.е. фраза в хелпе "You cannot create a database directly
> from the ISQL command line." неспроста. зачем же тогда команда
> и куча ее описаний в том же хелпе
Эту команду можно использовать в скрипте. А уж утилита, выполняющая скрипт должна ее понимать, и передавать как параметр в функцию ib api isc_dsql_execute_immediate
> а какие такие "специальные методы"? поточнее не можеш? в
> каких библиотеках... ets.?
Например, в IBX - TIBDatabase.CreateDatabase
← →
Zacho (2003-08-27 14:35) [5]И еще - советую создавать базу именно скриптом с помощью стандартной isql.exe или IBEScript.exe из IBExpert"а. Уверен, что как пользоваться CreateProcess ты знаешь :)
← →
sniknik (2003-08-27 14:51) [6]Zacho © (27.08.03 14:22) [4]
спасибо, компонент, метод CreateDatabase нашол, счаз попробую. (получится вопрос решон)
Zacho © (27.08.03 14:35) [5]
> И еще - советую создавать базу именно скриптом с помощью стандартной isql.exe или IBEScript.exe из IBExpert"а. Уверен, что как пользоваться CreateProcess ты знаешь :)
посмотрю, может именно скриптом и не пойдет (тут не вопрос как лутше, а надо как можно ближе к тому что есть) а запустить внешнюю программу конечно не проблема. другое дело, то что есть такие isql.exe, IBEScript.exe я первый раз слышу, ну не все сразу :о))).
Alexandr © (27.08.03 14:15) [3]
> 1) посмотри еще www.ibprovider.com
смотрел, и их OLE DB клиента скачивал он у меня отказывался работать. "не поддерживаются схемы" а у меня через них имена таблиц в базе поля в таблицах определяются...
← →
Alexandr (2003-08-27 14:56) [7]про ibprovider смело автору по-русски пиши.Коваленко Дмитрий.
да и Gemini без проблем, помоему.
← →
sniknik (2003-08-27 15:38) [8]Alexandr © (27.08.03 14:56) [7]
> про ibprovider смело автору по-русски пиши.Коваленко Дмитрий.
да и Gemini без проблем, помоему.
пока еще исправят, поезд уйдет. тем более Gemini то работает (а создание похоже не от них зависит, ошибка от сервера идет, и как выясняется сервера и не должен(не разрабатывался(?)) подобные команды выполнять)
>> Например, в IBX - TIBDatabase.CreateDatabase
>(получится вопрос решон)
обломс... не получилось, правда ошибка уже другая, хотя он именно SQL запрос формирует
procedure TIBDatabase.CreateDatabase;
var
tr_handle: TISC_TR_HANDLE;
begin
CheckInactive;
tr_handle := nil;
Call(
isc_dsql_execute_immediate(StatusVector, @FHandle, @tr_handle, 0,
PChar( "CREATE DATABASE """ + FDBName + """ " + {do not localize}
Params.Text), SQLDialect, nil),
True);
end;
в таком варианте ошибка "Your user name and password not defined. ..." пароль задаю стандартный
USER_NAME=SYSDBA
PASSWORD=masterkey
как в примере хелпа по CreateDatabase прописано, и прописано правильно, с теми же параметрами подключение к существующей базе проходит (при отключеном LoginPromt оттуда же берет).
может ошибка та же просто по другому интерпретирует?
нда... ладно попробую со скриптами поразбиратся. (вообще времени не много, еще пару раз не срастется и это пойдет как "фича" :о)))
← →
sniknik (2003-08-27 16:16) [9]Corry, все работает! (метод CreateDatabase), сам дурака свалял, надо было юзера/пароль по другому задавать, не так как для коннекта (дошло после того как увидел как запрос формируется) в хелпе так, просто после первой ошибки решил неправильно написал как на подключение а на самом деле там только апострофы не те
вот так работает
USER "SYSDBA"
PASSWORD "masterkey"
спасибо.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2003.09.18;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.054 c