Как создать БД в C++ Builder?
Мне же надо, чтобы программа в процессе работы создавала и подключала новые БД. Подскажите, плиз, как это сделать или, хотя бы, где начинать копать
Table1->Active=false;
Table1->DatabaseName="C:\\name\\data";
Table1->TableName="Base.dbf";
Table1->Active=true;
:)
Надо написать на С++ Builder програму, работающую с большим количеством БД, желательно через ADO. Все примеры, на которые я натыкался, работали с БД, подключаемыми на стадии создания проекта. Мне же надо, чтобы программа в процессе работы создавала и подключала новые БД. Подскажите, плиз, как это сделать или, хотя бы, где начинать копать. Буду безмерно рад примерам исходников. Заранее спасибо.
Если базы типа oracle, sql server, informix ...
То учи SQL и особенности подключения к СУБД.
Сначала create datebase ну и дальше по тексту.
Правда придётся учитывать особенности местного диалекта SQL.
Table1->Active=false;
Table1->DatabaseName="C:\\name\\data";
Table1->TableName="Base.dbf";
Table1->Active=true;
:)
Все это замечательно, но это подключение готовой таблицы, а я спрашивал, как програмно создать БД средствами Билдера...
Все это замечательно, но это подключение готовой таблицы, а я спрашивал, как програмно создать БД средствами Билдера...
Смотри справку по Table1->CreateTable();
в help-e есть готовый пример.
:)
Все это замечательно, но это подключение готовой таблицы, а я спрашивал, как програмно создать БД средствами Билдера...[/QUOTE]
Ты сначала скажи под какой СУБД тебе надо создать БД? Что ты имеешь в виду под фразой:"средствами Билдера..."? Если ты имеешь в виду вызвать какой либо метод и всё создать, то врядли такое получится, поскольку процесс создания БД у разных СУБД разный.
Смотри справку по Table1->CreateTable();
в help-e есть готовый пример.
:)
А Table1->CreateTable(); это разве ни создание таблицы???
Да и Table это далеко не ADO.
Смотри справку по Table1->CreateTable();
в help-e есть готовый пример.
:)
Это я понимаю, но мне надо создать не таблицу, а базу данных - это вроде несколько разные вещи...
Пример - BCDEMOS прилагающаяся кпримерам в Билдере.
Ты сначала скажи под какой СУБД тебе надо создать БД? Что ты имеешь в виду под фразой:"средствами Билдера..."? Если ты имеешь в виду вызвать какой либо метод и всё создать, то врядли такое получится, поскольку процесс создания БД у разных СУБД разный.
А Table1->CreateTable(); это разве ни создание таблицы???
Да и Table это далеко не ADO.
Может я не совсем точно выражаюсь, но не судите строго - я новичок в этом деле. У меня есть C++ Builder 5.0 и я хочу написать прогу работающую с БД, вот и спрашиваю, как это сделать...
Это я понимаю, но мне надо создать не таблицу, а базу данных - это вроде несколько разные вещи...
Пример - BCDEMOS прилагающаяся кпримерам в Билдере.
Может я не совсем точно выражаюсь, но не судите строго - я новичок в этом деле. У меня есть C++ Builder 5.0 и я хочу написать прогу работающую с БД, вот и спрашиваю, как это сделать...
Ну так бы и сказал.:D
Тогда так. Применительно к серьёзным СУБД типа Oracle и т.д. БД создаётся администратором на сервере при помощи каких-нибудь визуальных средств или текстового редактора и языка SQL.
(Хотя визуальные среды тоже в итоге создают код на языке SQL). Отсюда следует, что надо учить SQL. А для всякой мелочи типа Paradox и Dbase в билдере есть програмка DatabaseDesktop при помощи которой можно создать БД особо не напрягаясь. Через ADO можно работать практически с любыми СУБД. Но удобней всего на нём писать под SQL Server.
Ну так бы и сказал.:D
Тогда так. Применительно к серьёзным СУБД типа Oracle и т.д. БД создаётся администратором на сервере при помощи каких-нибудь визуальных средств или текстового редактора и языка SQL.
(Хотя визуальные среды тоже в итоге создают код на языке SQL). Отсюда следует, что надо учить SQL. А для всякой мелочи типа Paradox и Dbase в билдере есть програмка DatabaseDesktop при помощи которой можно создать БД особо не напрягаясь. Через ADO можно работать практически с любыми СУБД. Но удобней всего на нём писать под SQL Server.
Ну вот мы и пришли почти к тому, с чего начали :)
DatabaseDesktop конечно замечательная вещь, но предположим я напишу программу и понесу ее на другой компьютер. Тогда мне придется тащить и заранее созданные базы данных. А если у программы будет N пользователей и каждому нужна будет своя база данных по указанному пути? Что тогда???
Поэтому я и спрашиваю, как создать базу данных силами самой программы, не используя дополнительных приложений.
Поэтому я и спрашиваю, как создать базу данных силами самой программы, не используя дополнительных приложений.
Походи по нету почитай статьи Елмановой, работу с Table, Query и т.д..
:)
Походи по нету почитай статьи Елмановой, работу с Table, Query и т.д..
:)
Уже многократно хожено и читано. Как я и говорил, рассматривается работа с готовыми базами данных...
Не знаю может я не совсем в тему ответил, если что простите меня :)
Спасибо)))
Эт-точно.
Кидаешь на формочку или в DataModule объект TDatabase, обзываешь его, скажем, DB...
DB->DatabaseName="MyDB";
DB->Params->Values["PATH"]="D:\\DATA\\"; // путь можно хранить в INI-файле
DB->Connected=true;
Query1->DatabaseName="MyDB";
И дальше нормально работаешь с Query1
Мне надо чтоб программа сама создавала бд
можете подсказать как это осуществить
Элементарно.
В файле 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. А у тебя какая СУБД?