Форум: "Базы";
Текущий архив: 2003.05.05;
Скачать: [xml.tar.bz2];
ВнизКак создать новую БД в 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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.005 c