КулЛиб - Классная библиотека! Скачать книги бесплатно
Всего книг - 715467 томов
Объем библиотеки - 1419 Гб.
Всего авторов - 275276
Пользователей - 125240

Новое на форуме

Новое в блогах

Впечатления

iv4f3dorov про Максимов: Император Владимир (СИ) (Современная проза)

Афтырь мудак, креатив говно.

Рейтинг: 0 ( 0 за, 0 против).
Каркун про Салтыков-Щедрин: Господа Головлевы (Классическая проза)

Прекраснейший текст! Не текст, а горький мёд. Лучшее, из того, что написал Михаил Евграфович. Литературный язык - чистое наслаждение. Жемчужина отечественной словесности. А прочесть эту книгу, нужно уже поживши. Будучи никак не моложе тридцати.
Школьникам эту книгу не "прожить". Не прочувствовать, как красива родная речь в этом романе.

Рейтинг: +4 ( 4 за, 0 против).
Каркун про Кук: Огненная тень (Фэнтези: прочее)

Интереснейшая история в замечательном переводе. Можжевельник. Мрачный северный город, где всегда зябко и сыро. Маррон Шед, жалкий никудышный человек. Тварь дрожащая, что право имеет. Но... ему сочувствуешь и сопереживаешь его рефлексиям. Замечательный текст!

Рейтинг: 0 ( 0 за, 0 против).
Каркун про Кук: Десять поверженных. Первая Летопись Черной Гвардии: Пенталогия (Фэнтези: прочее)

Первые два романа "Чёрной гвардии" - это жемчужины тёмной фэнтези. И лучше Шведова никто историю Каркуна не перевёл. А последующий "Чёрный отряд" - третья книга и т. д., в других переводах - просто ремесловщина без грана таланта. Оригинальный текст автора реально изуродовали поденщики. Сюжет тащит, но читать не очень. Лишь первые две читаются замечательно.

Рейтинг: 0 ( 0 за, 0 против).

S. D. F. [W Cat] (fb2) читать постранично, страница - 2

- S. D. F. 139 Кб, 23с. скачать: (fb2) - (исправленную)  читать: (полностью) - (постранично) - W. Cat

 [Настройки текста]  [Cбросить фильтры]

свои.

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

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

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

- * -

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

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

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

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

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

ББД продолжение


- Извини, выключать комп было совершенно не нужно. Достаточно было закрыть Delphi, именно он занимал файл.

* Ладно, проехали. У меня тут как раз возник вопрос. Все сработало, файл базы создался, но на фейсе программы ничего не изменилось.

- Да, вот тут, ты прав. Недоработка. Но, я тоже обдумал… надо ввести изменения.

165 try

170    IBDatabase1.CreateDatabase;

180    IBDatabase1.Connected:=True;

190    IBTransaction1.Active:=True;

192 except

194   ShowMessage('Не нахожу dll');

195   exit;

196  end;   // try 

187  FMain.Caption := fn;

198       ShowTables;

200 end;

- Во-первых давай позаботимся о том, чтобы исключительное положение, которое у нас возникло, было бы хоть как ни будь обработано ( строки 165, 192-196).

- Строка 198 выдаст название новой базы в заголовке программы и сообщит что таблиц, в этой базе пока нет.

procedure ShowTables;

begin

 with FMain.ListBox1 do

  begin

   Clear;

   Items.Add('Empty');]

  end;

end;

- Сразу скажу, что процедуру ShowTables мы очень скоро будем существенно менять, посему не буду нумеровать строки…

- * -

* Все сработало, но…

- Да, хвалится пока еще нечем. Надо делать следующий шаг.

Задача: открыть существующую базу данных.


010 procedure TFMain.OpenDB1Click(Sender: TObject);

020 begin

030    with OpenDialog1 do

040    begin

050     Filter  :=  'DB|*.fdb';

060     DefaultExt := 'fdb';

070     if Execute then

080      with DataModule2 do

090       begin

100       IBDatabase1.DatabaseName:= FileName;

110       IBDatabase1.Params.Clear;

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

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

140           try

150           IBDatabase1.Connected:=True;

160           except

170            ShowMessage('Не могу работать!');

180            exit;

190           end; // try

200       IBTransaction1.Active:=True;

210      FMain.Caption := FileName;

220       ShowTables;

230      end; // DataModule2

240    end; // OpenDialog1

250 end;

- Открываем диалог загрузки файла – стр. 30

- Т.к. этот диалог будет использоваться и в других целях в строках 50, 60 уточняем, что сейчас будет речь идти о базе данных.

- Если в стр. 70 файл базы найден, вводим параметры базы строки 100-130 (обрати внимание пароль и пользователь должен быть тот же, что и при создании базы).

- Наученные опытом в строках 140-190 пытаемся соединится с базой. (обрати внимание на стр. 190 – желательно кончики программных блоков помечать – легче будет разбираться).

* А почему ты изменил 170 строку.

- Искл. состояние может возникнуть не только из-за dll, но и в случае если база будет не родная (не совпадает пароль и др.) т.е. это место надо переписать более тщательно, сделаем это позже.

* Нет ничего более постоянного …

- Согласен, давай изменим строку 160

160           except // в дальнейшем обработать 1. отсутствие dll. 2. несовпадение пароля 3. другие случаи

- Теперь пришла пора для вкусненького.

* Погоди, сбегаю за кетчупом.

- Боюсь, ни клаве ни монитору кетчуп не понравится.

- Открою тебе великую тайну:

- Когда мы создали пустую базу. База там уже есть.

* Я что-то подобное подозревал, файл то не очень маленький.

- Да, в этом файле есть служебная база в которой будут хранится сведения о нашей базе.

* База о базе. Логично. Ведь логичное же, что директор завода Жигулей ездит на Мерседесе.

- Переписываем ShowTables:

-

procedure ShowTables(fn:string);

begin

 FMain.Caption := fn;

 with FMain.ListBox1 do

  begin

   Clear;

    PrintList('select DISTINCT R.RDB$RELATION_NAME '+

              'from RDB$RELATION_FIELDS R '+

    'where R.RDB$SYSTEM_FLAG = 0 order by R.RDB$RELATION_NAME');

  end;

end;

* Опять нет нумерации, значит это тоже временно.

- Совершенно точно. А теперь функция PrintList:

010 function PrintList( iSQL:string):boolean;

020 begin

030 with DataModule2.IBSQL1 do

040  begin

050     result := false;

060     Close;

070