![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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. Подаешь на вход скрипт - оно все сделает