Книга: S. D. F.

Первая задача: создать новую базу данных.

Первая задача: создать новую базу данных.


Рис 2.

010 procedure TFMain.NewDB1Click(Sender: TObject);

020 var

030 fn : string;

040 begin

050 fn := InputBox('File Name',' Введите имя файла новой базы данных','');

060    if fn = '' then exit;

070    if UpperCase(ExtractFileExt(fn)) <> '.FDB'

080       then fn := fn + '.FDB';

090      with DataM do

100      begin

110       IBDatabase1.Params.Clear;

120       IBDatabase1.Params.Add('USER SYSDBA');

130       IBDatabase1.Params.Add('PASSWORD masterkey');

140       IBDatabase1.Params.Add('PAGE_SIZE 4096');

150       IBDatabase1.DatabaseName:= fn;

160       IBDatabase1.SQLDialect := 3;

170       IBDatabase1.CreateDatabase;

180       IBDatabase1.Connected:=True;

190       IBTransaction1.Active:=True;      

200     end;

210 end;

- В 50 строке запрашивается имя для файла новой базы данных, если мы не ответим, то в 60 строке выход из процедуры.

- В 70 строке проверяется, ввели ли мы расширение в имени файла, и если мы ленивы, то 80 строка таковое расширение добавляет.

- А вот это, важно! В строках 120 и 130 вводится имя пользователя и пароль. Во всех руководствах по Firebird говорится, что приведенные пароль и пользователь, указанны для образца, а использовать надлежит свои.

- Посему, меняем строки на:

120       IBDatabase1.Params.Add('USER Cats');

130       IBDatabase1.Params.Add('PASSWORD forever');

* А причем здесь коты?

- Ну, у себя ты введешь свои пароли.

* О, у себя, я как всегда напишу…

- Стоп, стоп, стоп! И ни другу, не врагу, никогда не …

* Ладно, я понял.

- * -

* Шеф, усе пропало!!! т.е. не получилось. Появилось угрожающее окно Debugger Exception Notification, со страшной надписью Project Project1.exe raised exception class EIBInterBaseError with message 'unavailable database'. Process stopped. Use Step or Run to continue..

- Спокойствие, только спокойствие... бывало и у меня такое.

- Для комфортной работы Firebird хочет иметь доступ к своим dll а именно:

gds32.dll

icudt30.dll

icuuc30.dll

и желательно:

firebird.msg

Конечно, лучше всего поместить эту компанию, в папочку WINDOWSsystem или WINDOWSsystem32, в этом случае, в дальнейшем ни о чем не надо беспокоится, НО если тебе надо показать твою гениальную программу заказчику, (а на его месте я бы не разрешил лазить тебе в системные папки) лучше держать эту свору в демонстрационной папке.

- * -

* У меня проблемы стал копировать dll, а система и говорит файл gds32.dll мол у меня есть только постарее да поменьше, можно ли заменить, ну я слов то не померил, и системе той поверил. А эта Редиска и говорит что она занята, т.е. файл занят.

- Ну, занят файл, значит, занят, мы то ящик покупаем не для собственного удовольствия, а для удовлетворения запросов системы, ну и ладно…

- Ибо сказано: Если у тебя есть фонтан – заткни его, и компьютеру надо отдохнуть…

- Все выключай, и иди погуляй.

«Продолжение следует»

Оглавление книги


Генерация: 1.883. Запросов К БД/Cache: 3 / 0
поделиться
Вверх Вниз