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

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

FB 1.5 Создания БД программно. [D7]


BanderLog ©   (2004-10-11 12:24:00) 

Привет мастерам. Мне необходимо, что бы моя программа созадвала нужную мне БД и заполняла её данными из исходной БД. Как это реализовать? Либо как бы реализовать процедуру создания БД в хранимой процедуре исходной БД.


BanderLog   (2004-10-12 05:55:00) [1]

2Павел: Огромное пасибы, именно то что надо. И как сам не нашел, ведь искал иммено там :(

2Sergey13: Извини, не дописал " необходимымиданными из исходной БД". На самом деле из исходной БД выбираются необходимые данные и отсылаются в другую контору на жестком носителе, потому что их объем от 100 и более метров. А исходной - гиг.


Sergey13   (2004-10-11 16:26:00) [2]

2[9] Zacho ©   (11.10.04 16:22)
>А, ну это уже на репликацию похоже.
А фиг знает на что это похоже. 8-)


Zacho   (2004-10-11 16:22:00) [3]

Sergey13 ©   (11.10.04 16:18) [8]
А, ну это уже на репликацию похоже.
Может, автору ветки поможет http://www.ibase.ru/develop.htmраздел "Репликация" ?


Sergey13   (2004-10-11 16:18:00) [4]

2[7] Zacho ©   (11.10.04 15:59)
Да меня в вопросе смутила фраза "и заполняла её данными из исходной БД". Т.е., как я понял, еще и данные надо перекачать. Что то смахивает на создание локальной копии  для внутреннего пользования. Я и усомнился в наличии смысла.


Zacho   (2004-10-11 15:59:00) [5]


> Sergey13 ©   (11.10.04 12:51) [2]

Имеет, почему-то :) для меня это было стандартной задачей.
Решение - или копирование "эталонной" БД, или выполнение скрипта посредством isql.exe


Zacho   (2004-10-11 15:50:00) [6]

Павел   (11.10.04 15:33) [5]
Вообще-то, прежде чем постить такой код, следовало бы, как минимум, сказать, что такое Database, trRead и Query. А то с телепатами напряг, как обычно...

=8-()


Павел   (2004-10-11 15:33:00) [7]

Database.Connected := False;
 Database.DBName := path;
 //Database.SQLdialect := 3;
 Database.DBParams.Clear;
 Database.DBParams.Add('USER ''SYSDBA''');
 Database.DBParams.Add('PASSWORD ''masterkey''');

 try
   Database.CreateDatabase;
 except
   //Application.MessageBox('Error during creation database',
   //  'Error', MB_OK + MB_ICONSTOP);
 end;
 Database.Connected := False;

 Database.DBParams.Clear;
 Database.DBParams.Add('user_name=SYSDBA');
 Database.DBParams.Add('password=masterkey');
 Database.Connected := True;

{================ CREATE TABLE ================}
 trRead.StartTransaction;
 Query.SQL.Clear;
 Query.SQL.Add( 'CREATE TABLE TEST (' );
 Query.SQL.Add( 'ID INTEGER NOT NULL PRIMARY KEY,' );
 Query.SQL.Add( 'DESCRIPTION  VARCHAR(15));' );
 try
   Query.ExecQuery;
 except
 end;
 trRead.Commit;

ну и так далее


BanderLog   (2004-10-11 13:58:00) [8]

Спасибо.... Значит все таки скрип isql передавать. Жаль. А смысл плодить базы - есть.


Zacho   (2004-10-11 13:00:00) [9]

В хранимой процедуре - никак. Ну, конечно, можно придумать извращения с UDF, к-рая и будет создавать БД, но это надо ???
А вообще, есть несколько вариантов. Например:
1. С помощью чего-нибудь (isql.exe, IBEScript.exe,  компонетнты из IBX или FIBPlus) выполнить скрипт, к-рый это сделает.
2. Скопировать "эталонную" БД.
3. IB API
4. Может ещё кто-нибудь что-то придумает...


Sergey13   (2004-10-11 12:51:00) [10]

2BanderLog   (11.10.04 12:24)
А имеет вообще смысл плодить БД, уже имея исходную?


Romkin   (2004-10-11 12:49:00) [11]

Самое простое - просто использовать ISQL. Подаешь на вход скрипт - оно все сделает


Наверх

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