Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

FireBird & CreateDatabase [D7, XP]


Fl@sh ©   (2006-03-03 13:23:00) 

Пытаюсь создать базу програмно.
FireBird 1.0.3

edUser.Text=SYSDBA
edPassword.Text=masterkey

Вот код:

const
 Directory: string = 'C:\Program files\System Klient-Bank';
 FileName: string = 'Base.fdb';

...
 begin
   with DataModul.IBDatabase do
   begin
     Connected := False;
     Params.Clear;
     DatabaseName := Directory + '\' + FileName;
     Params.Add('USER "' + edUser.Text + '"');
     Params.Add('PASSWORD "' + edPassword.Text + '"');
     //Params.Add('DEFAULT CHARACTER SET WIN1251');
     SQLDialect := 3;
   end;

 
   if not DirectoryExists(Directory) then
     CreateDir(Directory);
   if not FileExists(Directory + '\' + FileName) then
   begin
     DataModul.IBDatabase.Params.Add('PAGE_SIZE=4096');
     DataModul.IBDatabase.CreateDatabase;

   end;

   DataModul.IBDatabase.Connected := True;

 end; {if check passw..}


Этот код работает, создает базу, казалось бы все отлично, но
как только додаю
Params.Add('DEFAULT CHARACTER SET WIN1251');
Все!! Появляется такая ошибка:
Project SystemKlientBank.exe raised exception EIBInterBaseError with message
"Dinamic SQL Error, SQL Error kode -104
Token Unknown line 1, char 68,
"SYSDBA"" process stop..

Непонимаю как непонятен, это ж логин пользователя, к тому же если не задавать CHARACTER, то создает
Да, при следуючим создании база удаляется и создается новая.

В книжках пишут, что надо задавать user_name=SYSDBA(а не USER, как у меня, и без кавычек) и password=masterkey(тоже без кавычек и с знаком "=").

Ставлю такие параметры:
Params.Add('USER_NAME="' + edUser.Text + '"');
Params.Add('PASSWORD="' + edPassword.Text + '"');
без DEFAULT CHARACTER SET
Появляется ошибка:
Project SystemKlientBank.exe raised exception EIBInterBaseError with message
"Your user name and password are not defined. Ask your database administrator to set up an InterBaselogin" process st..

Если без кавычек:
Params.Add('USER_NAME=' + edUser.Text);
       Params.Add('PASSWORD=' + edPassword.Text);

без DEFAULT CHARACTER SET

Появляется предыдущая ошибка.

Что я не так делаю. Как надо правильно.


Amoeba   (2006-03-03 17:47:00) [1]

И обнови Fibird до 1.53


Amoeba   (2006-03-03 17:46:00) [2]


> Незнал про IBConsolе

Выкинь нафиг это старье! Есть ведь IBExpert.


Fl@sh   (2006-03-03 15:04:00) [3]


> Sergey13 ©   (03.03.06 14:41) [4]

Вы правы! :), я так и буду делать, просто хотелось узнать, почему не работает CreateDatabase, т.е. оно работает, но я что-то не так задаю params. Дома попробую еще по совету Desdechado.
Спасибо.


Sergey13   (2006-03-03 14:41:00) [4]

2[3] Fl@sh ©   (03.03.06 14:24)
> Незнал про IBConsolе
Есть еще IBExpert - зе бест оф зе бест для ИБ-клонов.

Но я про другое. 8-)
Я понимаю еще DBF-ки создавать в рантайме - файл он и есть файл. Но тут то БД это не только таблицы, но и хранимки всякие, тригеры и т.п. лабуда. Все в рантайме делать? Не проще ли файл с готовой пустой БД скопировать?


Fl@sh   (2006-03-03 14:24:00) [5]


> Desdechado ©   (03.03.06 13:46) [1]
> неужели тяжело дважды кликнуть на IBDatabase, заполнить
> параметры, нажать ок, потом в инспекторе ткнуть на params
> и посмотреть, в каком формате задается это все?

Ок, обязательно посмотрю


> Sergey13 ©   (03.03.06 13:48) [2]

Незнал про IBConsolе, теперь знаю, но почему не работает єтот вариант, интерестно.


Sergey13   (2006-03-03 13:48:00) [6]

>Пытаюсь создать базу програмно.
А смысл?


Desdechado   (2006-03-03 13:46:00) [7]

неужели тяжело дважды кликнуть на IBDatabase, заполнить параметры, нажать ок, потом в инспекторе ткнуть на params и посмотреть, в каком формате задается это все?


Наверх

Титульная страница Поиск, карта сайта Написать письмо