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

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

interbase [D7, IB6.x]


alex_mas ©   (2003-11-21 21:26:00) 

Здравствуйте!
Как создать базу interbase из программы. Из ibsql получается
след-м образом:
CREATE DATABASE "с:\test.gdb"
USER "sysdba" PASSWORD "masterkey"
PAGE_SIZE = 4096
DEFAULT CHARACTER SET win1251;
а как это же пропустить в программе?
Компонент IBSQL требует подключения к существующей базе данных.
Спасиба.


Zacho   (2003-11-22 21:04:00) [1]


> alex_mas (22.11.03 02:45) [10]

В общем, похоже каша у тебя в голове. Итак, создать БД можно следующими способами:
1. Просто скопировать "эталонный" файл БД
2. Выполнить скрипт с помощью стандартной утилиты isql.exe или IBEScript.exe из IBExpert (надеюсь, про то как пользоваться CreateProcess рассказывать не надо)
3. Компоненты для выполнения скриптов есть в FIBPlus и (вроде бы, сам не смотрел) в последней версии IBX.
4. Создать БД с помощью TIBDatabase.CreateDatabase следующим образом:
a) в IBDatabase.DatabaseName указываешь имя файла БД.
б) в IBDatabase.Params пишешь
USER "SYSDBA"
PASSWORD "masterkey"
и остальные нужные тебе параметры, например
PAGE_SIZE 8192
DEFAULT CHARACTER SET WIN1251
в) устанавливаешь нужный диалект в IBDatavase.SQLDialect
г) Вызываешь IBDatabase.CreateDatabase
е) База создана, можешь создавать метаданные запросами DDL с помощью, например, TIBSQL


alex_mas   (2003-11-22 02:45:00) [2]

Напр. TSQLScript из библиотеки RxLib (через БДЕ работает).
попробую
Вообще говоря, это делается один раз, как и создание БД. С помощью спец.средств и менеджеров для IB.
это я делал не один раз при помощи утилиты ibsql
теперь задача именно в программе создать базу и структуру.
компонент ibsql по частям выполняет скрипт.
т.е. 2 раза create table не проходит.
попробую Tsqlscript


Johnmen   (2003-11-22 02:29:00) [3]

1.Напр. TSQLScript из библиотеки RxLib (через БДЕ работает).
2.Написать программу
3.Вообще говоря, это делается один раз, как и создание БД. С помощью спец.средств и менеджеров для IB.


alex_mas   (2003-11-22 02:19:00) [4]

А каким компонентом это можно сделать?


Johnmen   (2003-11-22 02:03:00) [5]

Ну да. Ты же хочешь пройти курс обучения. А здесь конференция. Но никак не курсы...:)

ibquery для этой цели не годится.


alex_mas   (2003-11-22 01:53:00) [6]

ага было тут уже такое :)
продать книги и нанять негра чтобы на F1 жал
на этой неделе кому-то здесь уже советовали.

А всё таки чем ibquery годится для этой цели или нет?
Или чем нибудь другим проще?


Johnmen   (2003-11-22 01:49:00) [7]

>F1 не всегда помогает

Совершенно верно ! Начинать надо с книг.


alex_mas   (2003-11-22 01:47:00) [8]

Разобрался
LoginPromt:=false
и все юзается

что за роль 3 ?
Диалект 3-й при создании не даёт указать sql-error так же как и default characteur set.

А как можно создать сразу таблицы в базе процедуры триггеры и т.д.? С помощью чего лучше делать?
Т.е. допустим в файле 1.sql находится скрипт. С помощью какого компонента лучше прогнать его?
Заранее спасибо.

F1 не всегда помогает. :(


Johnmen   (2003-11-22 01:13:00) [9]

1. TIBDatabase.Params + F1
2. А что за роль 3 ? Вроде бы после создания ты никаких ролей не определял...:)))


alex_mas   (2003-11-21 23:53:00) [10]

Получилось создать базу но никак не могу подключиться к ней потом Вылетает ошибка
Operation Cancelled at user"s request
Где я ошибаюсь?

Ibdatabase1.Params.Clear;
IBdatabase1.DatabaseName:=basename;
IBdatabase1.Params.Add("user "SYSDBA"");
IBdatabase1.Params.add("password "masterkey"");
IBdatabase1.Params.Add("PAGE_SIZE 4096");
Ibdatabase1.CreateDatabase;
Ibdatabase1.Connected:=false;
Ibdatabase1.Params.Clear;
IBdatabase1.Params.Add("user "SYSDBA"");
IBdatabase1.Params.add("password "masterkey"");
IBdatabase1.Params.Add("lc_ctype=WIN1251");
IBdatabase1.Params.Add("sql_role_name=3");
IBdatabase1.Connected:=true;


Zacho   (2003-11-21 22:08:00) [11]

См. TIBDatabase.CreateDatabase


Наверх

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