maikl |
Отправлено: 19.12.2003, 08:32 |
|
Станционный диспетчер
Группа: Участник
Сообщений: 135
|
Подскажите мне как можно создать с помощью компонента Query БД, я в свойстве SQL пишу :
CREATE TABLE Cool {
Fam char(10) NOT NULL PRIMARY KEY
}
но у меня выдаетсся ошибка, скажите может так нельзя делать, и как можно это сделать. Я хочу в начале создать БД с помощью такого запроса. У меня есть кнопка на при нажатии на которую я хочу ее потом удалить, и снова создать.
Только не спрашивайте зачем мне ее заново создавать, я просто учусь. |
|
pasha |
Отправлено: 19.12.2003, 12:37 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 62
|
QUOTE | Я хочу в начале создать БД |
А какую базу данных ?
Если InterBase, то
SQL | CREATE DATABASE 'c:\GOODS.GDB'
USER 'SYSDBA' PASSWORD 'masterkey'
PAGE_SIZE 4096
DEFAULT CHARACTER SET WIN1251;
|
Создать таблицу в базе данных
SQL | CREATE TABLE Cool (
Family char(10)
)
|
(круглые скобки а не фигурные)
|
|
Fred |
Отправлено: 19.12.2003, 13:16 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 19
|
Передо мной стоит аналогичная проблема. Но то что при помощи компонента TQuery создать БД невозможно, я уже понял :) |
|
maikl |
Отправлено: 19.12.2003, 13:24 |
|
Станционный диспетчер
Группа: Участник
Сообщений: 135
|
Нет это не InterBase, я работаю с СУБД Paradox, на форме у меня есть компонент SQL, в свойстве SQL этого компонента я хочу записать запрос который бы создавал мне базу данных, затем мне необходимо описать поля в ней, задать тип и т.д, хотелось бы узнать как можно это сделать, в справке я так ничего и неразобрал . |
|
maikl |
Отправлено: 19.12.2003, 13:32 |
|
Станционный диспетчер
Группа: Участник
Сообщений: 135
|
QUOTE (Fred @ 19/12/2003, 22:18) | Передо мной стоит аналогичная проблема. Но то что при помощи компонента TQuery создать БД невозможно, я уже понял |
Как это невозможно ??? Должно быть , ну все же если разберусь скажу тебе, зачем создавать БД в InterBase или в любой другой СУБД, если я дальше в своей программе использовать ее не буду. Ну если все же не узнаю, тогда в InterBase буду делать. |
|
butch |
Отправлено: 20.12.2003, 03:42 |
|
Не зарегистрирован
|
Извените Майкл, я не понял, вы хотите создать базу или таблицу в уже существующей? |
|
maikl |
Отправлено: 20.12.2003, 05:44 |
|
Станционный диспетчер
Группа: Участник
Сообщений: 135
|
Я хочу создать базу, а затем в нее уже таблицу. |
|
Fred |
Отправлено: 20.12.2003, 06:32 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 19
|
Не ходи по тем граблям на которые другие уже наступали
При помощи TQuery ты не сможешь программно создать базу!
Я кажется нашел такую возможность:
CODE |
#include <gds.h>
#pragma link "gds32.lib"
int __fastcall CreateDatabase(void)
{
ISC_STATUS status_vector[20];
isc_db_handle db_handle = 0;
isc_tr_handle dm_handle = 0;
char * statement = "CREATE DATABASE 'C:\\Test.gdb' USER 'SYSDBA' PASSWORD 'masterkey';";
isc_dsql_execute_immediate(status_vector,&db_handle,&dm_handle,0,statement,1,0);
return status_vector[1];
}
|
У меня отлично отрабатывает. Удачи |
|
maikl |
Отправлено: 20.12.2003, 07:52 |
|
Станционный диспетчер
Группа: Участник
Сообщений: 135
|
Спасибо, за совет, но ты не мог бы пояснить что то в своем коде, я так понял ты тут используешь FireBrid, с помощью него и создаешь БД, проблема в том что я не совсем научился использовать его, мог бы ты пояснить что нужно кидать на форму для того что бы использовать его, потом что нужно для того что бы в DBGrid отобразить результаты, после того как я создам таблицу для этой базы. Не совсем я понимаю как это все использовать потом в своем приложении. |
|
Fred |
Отправлено: 20.12.2003, 08:48 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 19
|
Я действительно, использую FireBird. Но этот пример должен работать и с Interbase. Функция только создает новую БД. Ничего для этого на форму кидать не нужно. Процедура isc_dsql_execute_immediate(...) находится в библиотеке gds32.lib, в каталоге где установлен Interbase/Firebird. Путь к этому каталогу нужно прописать в опциях проекта. Где-то там же находится и файл gds.h.
#pragma link "gds32.lib" добавляет библиотеку к проекту.
У меня были какие-то мелкие проблемы при компиляции, но они довольно быстро решаются.
|
|
maikl |
Отправлено: 20.12.2003, 08:57 |
|
Станционный диспетчер
Группа: Участник
Сообщений: 135
|
Ладно спасибо, буду с InterBase работать, там както более понятнее мне, а то что ты FireBird использовал я по этим библиотекам и понял, потому что они только там и используются . |
|
Fred |
Отправлено: 20.12.2003, 08:59 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 19
|
В Interbase эта библиотека тоже есть |
|
pasha |
Отправлено: 20.12.2003, 15:49 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 62
|
А я не понимаю, какие вообще проблемы могут быть с Paradox ???
База данных Paradox — это папка, в которой лежат
файлы таблиц (*.db), индексы и т.д.
Создаете папку (напмример с помощью ForceDirectories() ),
указываете ее Database1->DatabaseName = ...
потом создаете в этой папке нужные Вам таблицы,
вот и все !!!
База Paradox с таблицами готова — в чем сложность ???
|
|
butch |
Отправлено: 20.12.2003, 20:32 |
|
Не зарегистрирован
|
http://borland.xportal.ru/forum/viewtopic.php?t=8306 |
|
Fred |
Отправлено: 21.12.2003, 02:03 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 19
|
Butch, А чего ты только одну ссылку указал ? Я на нескольких конференциях этот вопрос обсуждал чуть раньше Maikla. И на этой тоже. Здесь
Отредактировано Fred — 21/12/2003, 03:10 |
|
butch |
Отправлено: 21.12.2003, 14:11 |
|
Не зарегистрирован
|
уговорил |
|