Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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
3-12669
Владимир Ткачук
2003-04-16 16:21
2003.05.05
проблема с добавлением поля в таблицу


3-12624
paulsin
2003-04-15 15:29
2003.05.05
SQL


1-12725
AlexeyVt
2003-04-23 13:14
2003.05.05
MDI окна показываются при Create а не при Show. Как исправить?


1-12744
_PG_gaws
2003-04-21 15:58
2003.05.05
перетаскивание формы???


9-12599
NetBreaker666
2002-08-13 21:40
2003.05.05
Алгоритм рисования огня.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский