Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.05.05;
Скачать: CL | DM;

Вниз

Как создать новую БД в InterBase из Delphi?   Найти похожие ветки 

 
-=Oscar=-   (2003-04-15 13:06) [0]

Ситуация: надо создать новую БД под InterBase из тела программы. Потом в ней создать ряд таблиц. Как это сделать?


 
kravchuk ©   (2003-04-15 13:21) [1]

если юзать IBX
TIBDatabase.CreateDatabase


 
Zacho ©   (2003-04-15 16:16) [2]

Другой способ: создать скриптом с помошью isql.exe или аналогичных утилит.


 
dtm   (2003-04-15 17:45) [3]

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


 
kravchuk ©   (2003-04-15 18:27) [4]

если влом использовать IBX можно содрать реализацию из файла IBDatabase - TIBDatabase.CreateDatabase, там на уровне АПИ сервера :0)


 
Sergey13 ©   (2003-04-16 08:53) [5]

2-=Oscar=- (15.04.03 13:06)
>Ситуация: надо создать новую БД под InterBase из тела программы. Потом в ней создать ряд таблиц. Как это сделать?
А зачем, если не секрет, это делать из программы? Создание базы - это разовая работа. Ты же не каждый день ее создаешь. Или ты пишешь нечто вроде IB Manager и создание баз - часть функционала проги? Если нет, то для распространения программы самое лучшее, ИМХО, создать копию базы без данных и просто переписывать ее клиенту - меньше всего мороки. Или см. Zacho © (15.04.03 16:16) - тоже хорошо.


 
Sheriff   (2003-04-16 09:21) [6]

что-то в этом роде подойдет?

IBDataBase1.SQLDialect:=1;
IBDataBase1.DatabaseName:=ExtractFilePath(ParamStr(0))+"test.gdb";
IBDataBase1.Params.Append("user "+#39+"sysdba"+#39);
IBDataBase1.Params.Append("password "+#39+"masterkey"+#39);
IBDataBase1.Params.Append("page_size 4096");
IBDataBase1.Params.Append("default character set win1251");
IBDataBase1.CreateDatabase;
IBTransaction1.Active:=true;
IBDataBase1.Open;

IBSQL1.SQL.Append("CREATE TABLE TBL_DATA ("+
"ID INTEGER NOT NULL,"+
"FIELD1 VARCHAR(15) CHARACTER SET WIN1251 COLLATE PXW_CYRL,"+
"FIELD2 VARCHAR(300) CHARACTER SET WIN1251 COLLATE PXW_CYRL,"+
"FIELD3 VARCHAR(115) CHARACTER SET WIN1251 COLLATE PXW_CYRL,"+
"FIELD4 INTEGER DEFAULT 0,"+
"FIELD5 NUMERIC DEFAULT 0,"+
"FIELD6 DATE,"+
"FIELD7 INTEGER,"+
"PRIMARY KEY (ID));");
IBSQL1.ExecQuery;

IBSQL1.SQL.Clear;
IBSQL1.SQL.Append("CREATE GENERATOR NUM_ID_GEN;");
IBSQL1.ExecQuery;

IBSQL1.SQL.Clear;
IBSQL1.SQL.Append("CREATE PROCEDURE AUTO_NUM_TBL_DATA RETURNS (NR INTEGER)");
IBSQL1.SQL.Append("AS BEGIN NR = GEN_ID(NUM_ID_GEN,1); END;");
IBSQL1.ExecQuery;

IBTransaction1.Commit;
IBTable1.TableName:="TBL_DATA";
IBTable1.Active:=true;

IBStoredProc1.StoredProcName:="AUTO_NUM_TBL_DATA";
StatusBar1.SimpleText:="База данных TEST.GDB создана";



Страницы: 1 вся ветка

Текущий архив: 2003.05.05;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.013 c
1-12717
Rradion
2003-04-23 15:59
2003.05.05
Как управлять кнопками?


9-12592
JOG2
2002-07-25 13:10
2003.05.05
Проблема! (помогите начинающему!)


1-12716
Zheka
2003-04-23 16:55
2003.05.05
Hint above Label


9-12596
greenrul
2002-09-18 15:22
2003.05.05
Delphi+DirectX и DelphiX


8-12835
Сергей
2003-01-24 21:23
2003.05.05
Отображение картинки с возможностью скролла