Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Как создать БД в C++ Builder?

3.0K
04 ноября 2003 года
DarkMax
9 / / 19.05.2003
Надо написать на С++ Builder програму, работающую с большим количеством БД, желательно через ADO. Все примеры, на которые я натыкался, работали с БД, подключаемыми на стадии создания проекта. Мне же надо, чтобы программа в процессе работы создавала и подключала новые БД. Подскажите, плиз, как это сделать или, хотя бы, где начинать копать. Буду безмерно рад примерам исходников. Заранее спасибо.
371
04 ноября 2003 года
Non_prog
193 / / 20.03.2000
Цитата:
Originally posted by DarkMax
Мне же надо, чтобы программа в процессе работы создавала и подключала новые БД. Подскажите, плиз, как это сделать или, хотя бы, где начинать копать


Table1->Active=false;
Table1->DatabaseName="C:\\name\\data";
Table1->TableName="Base.dbf";
Table1->Active=true;
:)

460
04 ноября 2003 года
Berg
261 / / 27.03.2003
Если у тебя, например, MS SQL Server, то есть SQL-DMO...
348
04 ноября 2003 года
Saris
389 / / 14.03.2003
Цитата:
Originally posted by DarkMax
Надо написать на С++ Builder програму, работающую с большим количеством БД, желательно через ADO. Все примеры, на которые я натыкался, работали с БД, подключаемыми на стадии создания проекта. Мне же надо, чтобы программа в процессе работы создавала и подключала новые БД. Подскажите, плиз, как это сделать или, хотя бы, где начинать копать. Буду безмерно рад примерам исходников. Заранее спасибо.


Если базы типа oracle, sql server, informix ...
То учи SQL и особенности подключения к СУБД.
Сначала create datebase ну и дальше по тексту.
Правда придётся учитывать особенности местного диалекта SQL.

3.0K
05 ноября 2003 года
DarkMax
9 / / 19.05.2003
Цитата:
Originally posted by Non_prog

Table1->Active=false;
Table1->DatabaseName="C:\\name\\data";
Table1->TableName="Base.dbf";
Table1->Active=true;
:)



Все это замечательно, но это подключение готовой таблицы, а я спрашивал, как програмно создать БД средствами Билдера...

371
05 ноября 2003 года
Non_prog
193 / / 20.03.2000
Цитата:
Originally posted by DarkMax

Все это замечательно, но это подключение готовой таблицы, а я спрашивал, как програмно создать БД средствами Билдера...


Смотри справку по Table1->CreateTable();
в help-e есть готовый пример.
:)

348
05 ноября 2003 года
Saris
389 / / 14.03.2003
QUOTE]Originally posted by DarkMax

Все это замечательно, но это подключение готовой таблицы, а я спрашивал, как програмно создать БД средствами Билдера...
[/QUOTE]
Ты сначала скажи под какой СУБД тебе надо создать БД? Что ты имеешь в виду под фразой:"средствами Билдера..."? Если ты имеешь в виду вызвать какой либо метод и всё создать, то врядли такое получится, поскольку процесс создания БД у разных СУБД разный.

Цитата:
Originally posted by Non_prog

Смотри справку по Table1->CreateTable();
в help-e есть готовый пример.
:)


А Table1->CreateTable(); это разве ни создание таблицы???
Да и Table это далеко не ADO.

3.0K
05 ноября 2003 года
DarkMax
9 / / 19.05.2003
Цитата:
Originally posted by Non_prog

Смотри справку по Table1->CreateTable();
в help-e есть готовый пример.
:)


Это я понимаю, но мне надо создать не таблицу, а базу данных - это вроде несколько разные вещи...
Пример - BCDEMOS прилагающаяся кпримерам в Билдере.

Цитата:
Originally posted by Saris
Ты сначала скажи под какой СУБД тебе надо создать БД? Что ты имеешь в виду под фразой:"средствами Билдера..."? Если ты имеешь в виду вызвать какой либо метод и всё создать, то врядли такое получится, поскольку процесс создания БД у разных СУБД разный.

А Table1->CreateTable(); это разве ни создание таблицы???
Да и Table это далеко не ADO.



Может я не совсем точно выражаюсь, но не судите строго - я новичок в этом деле. У меня есть C++ Builder 5.0 и я хочу написать прогу работающую с БД, вот и спрашиваю, как это сделать...

348
05 ноября 2003 года
Saris
389 / / 14.03.2003
Цитата:
Originally posted by DarkMax

Это я понимаю, но мне надо создать не таблицу, а базу данных - это вроде несколько разные вещи...
Пример - BCDEMOS прилагающаяся кпримерам в Билдере.

Может я не совсем точно выражаюсь, но не судите строго - я новичок в этом деле. У меня есть C++ Builder 5.0 и я хочу написать прогу работающую с БД, вот и спрашиваю, как это сделать...


Ну так бы и сказал.:D
Тогда так. Применительно к серьёзным СУБД типа Oracle и т.д. БД создаётся администратором на сервере при помощи каких-нибудь визуальных средств или текстового редактора и языка SQL.
(Хотя визуальные среды тоже в итоге создают код на языке SQL). Отсюда следует, что надо учить SQL. А для всякой мелочи типа Paradox и Dbase в билдере есть програмка DatabaseDesktop при помощи которой можно создать БД особо не напрягаясь. Через ADO можно работать практически с любыми СУБД. Но удобней всего на нём писать под SQL Server.

3.0K
05 ноября 2003 года
DarkMax
9 / / 19.05.2003
Цитата:
Originally posted by Saris

Ну так бы и сказал.:D
Тогда так. Применительно к серьёзным СУБД типа Oracle и т.д. БД создаётся администратором на сервере при помощи каких-нибудь визуальных средств или текстового редактора и языка SQL.
(Хотя визуальные среды тоже в итоге создают код на языке SQL). Отсюда следует, что надо учить SQL. А для всякой мелочи типа Paradox и Dbase в билдере есть програмка DatabaseDesktop при помощи которой можно создать БД особо не напрягаясь. Через ADO можно работать практически с любыми СУБД. Но удобней всего на нём писать под SQL Server.



Ну вот мы и пришли почти к тому, с чего начали :)
DatabaseDesktop конечно замечательная вещь, но предположим я напишу программу и понесу ее на другой компьютер. Тогда мне придется тащить и заранее созданные базы данных. А если у программы будет N пользователей и каждому нужна будет своя база данных по указанному пути? Что тогда???
Поэтому я и спрашиваю, как создать базу данных силами самой программы, не используя дополнительных приложений.

371
05 ноября 2003 года
Non_prog
193 / / 20.03.2000
Цитата:
Originally posted by DarkMax

Поэтому я и спрашиваю, как создать базу данных силами самой программы, не используя дополнительных приложений.


Походи по нету почитай статьи Елмановой, работу с Table, Query и т.д..
:)

3.0K
06 ноября 2003 года
DarkMax
9 / / 19.05.2003
Цитата:
Originally posted by Non_prog

Походи по нету почитай статьи Елмановой, работу с Table, Query и т.д..
:)


Уже многократно хожено и читано. Как я и говорил, рассматривается работа с готовыми базами данных...

22K
03 января 2007 года
ZAZA
6 / / 03.01.2007
у меня возникла точно такая же проблема как и у тебя..переходя на другой компьютер, мне нужно избавиться от необходимости прописывать алиас повторно через DataBase Desktop. Если ты разобрался, подскажи пожалуйста как это сделать. Буду очень благодарна!
9.5K
03 января 2007 года
Borgir
97 / / 20.12.2006
Я конечно тоже не профи в этом деле, но для себя я давно усвоил один урок. Работать с БД через алиасы неудобно именно как раз с точки зрения установки программы на другой комп. Поэтому я всегда работал с DBF-файлами напрямую. Для этого просто в качестве "TableName" всегда прописывал имя файла (с полным путем). При этом для переноса проги на другой комп достаточно вместе с ней положить в каталог несколько файлов самого BDE.
Не знаю может я не совсем в тему ответил, если что простите меня :)
22K
04 января 2007 года
ZAZA
6 / / 03.01.2007
[QUOTE=Borgir;164350]Я конечно тоже не профи в этом деле, но для себя я давно усвоил один урок. Работать с БД через алиасы неудобно именно как раз с точки зрения установки программы на другой комп. Поэтому я всегда работал с DBF-файлами напрямую. Для этого просто в качестве "TableName" всегда прописывал имя файла (с полным путем). При этом для переноса проги на другой комп достаточно вместе с ней положить в каталог несколько файлов самого BDE...



Спасибо)))
9.5K
04 января 2007 года
Borgir
97 / / 20.12.2006
Если надо, могу привести список файлов BDE, которые надо ложить вместе с программой. Иначе, когда ты перенесешь программу на другой комп, она у тебя будет ругаться (если там предварительно не был установлен BDE)
294
09 января 2007 года
Plisteron
982 / / 29.08.2003
Цитата: Borgir
Работать с БД через алиасы неудобно именно как раз с точки зрения установки программы на другой комп.


Эт-точно.
Кидаешь на формочку или в DataModule объект TDatabase, обзываешь его, скажем, DB...

 
Код:
DB->DriverName="STANDARD";
  DB->DatabaseName="MyDB";
  DB->Params->Values["PATH"]="D:\\DATA\\"; // путь можно хранить в INI-файле
  DB->Connected=true;
  Query1->DatabaseName="MyDB";

И дальше нормально работаешь с Query1
9
11 января 2007 года
Lerkin
3.0K / / 25.03.2003
Ребятки, а что бы вам не почитать про ODBC, например? Элементарный API, заодно получите навыки работы с SQL (кто не знает). Имхо, один из правильных путей.
294
11 января 2007 года
Plisteron
982 / / 29.08.2003
Цитата: L3P
Помогите в написание программы, заранее спасибо
Мне надо чтоб программа сама создавала бд
можете подсказать как это осуществить



Элементарно.

 
Код:
ShellExecute(this->Handle, "Open", "sqlplus", "/NOLOG @create.sql", NULL, SW_HIDE);

В файле create.sql пишешь
 
Код:
-- процесс создания табличного пространства и владельца схемы опускаем...
connect dbowner/password@my_oracle;
create table x (id integer, field_x varchar2(100), constraint x_pk primary key(id)) organization index;
create table y (id integer, ref_x_id integer field_y varchar2(200), constraint y_pk primary key(id) using index);
create index y_ref_x_id on y (ref_x_id);
alter table y add (constraint y_fk_x foreign key (ref_x_id) references x(id));
exit;

Ну и вообще в скрипте можно все объекты вот так посоздавать.

Да, чуть не забыл. У меня Oracle 9i. А у тебя какая СУБД?
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог