Builder C++ 6.0 и Interbase разработка клиентского приложени

IBX, FIBPlus, UIB, ADO, .Net и прочее-прочее-прочее, в общем все, что относится к созданию приложений, работающих с InterBase, Firebird и Yaffil - клиент-серверных, трехзвенных, консольных и т.п.

Модератор: kdv

Ответить
Anddros
Сообщения: 10
Зарегистрирован: 14 мар 2011, 10:58

Builder C++ 6.0 и Interbase разработка клиентского приложени

Сообщение Anddros » 14 мар 2011, 13:02

Здравствуйте !!!. Помогите пожалуйста как разработать клиентское приложение на Builder С++ с нуля. Просмотрел кучу информации , включая http://www.ibase.ru/devinfo/ibx.htm, пока безрезультатно . Нужно соединить между собою данные из пяти таблиц (БД создал), чтобы при нажатии на одной из записей главной таблицы, отображались связанные по внешнему ключу данные из остальных таблиц, получается нужно будет разместить на форме одну главную таблицу и еще остальные 4 таблицы, ну и естественно нужно чтобы всё это редактировалось. Это наверное практически нереально :? .
А еще , почему когда я использую OpenDialog для открытия базы данных , она не открывается и пишет ошибку "unavailable database". обработчик событий выглядит так:

Код: Выделить всё

__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::BtOpenClick(TObject *Sender)
{
if (OpenDialog->Execute())
{
EdDataBaseName->Text=OpenDialog->FileName;
DataModule2->IBDatabase1->DatabaseName=OpenDialog->FileName;
}
DataModule2->IBDatabase1->Connected=true;
DataModule2->IBQuery1->Active=true;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::BtRefreshClick(TObject *Sender)
{
 DataModule2->IBQuery1->Transaction->Commit();
  DataModule2->IBQuery1->Active=true;
}
//---------------------------------------------------------------------------
EdDataBaseName - назвал поле Edit.
BtRefreshClick - это обновить данные из БД.
Хотя в IBDatabase тоже прописан путь к БД и при нажатии кнопки Test появляется окно о положительном результате.

Dimitry Sibiryakov
Заслуженный разработчик
Сообщения: 1436
Зарегистрирован: 15 сен 2005, 09:05

Re: Builder C++ 6.0 и Interbase разработка клиентского прило

Сообщение Dimitry Sibiryakov » 14 мар 2011, 14:28

Эта "куча информации", очевидно не включала в себя ни FAQ, ни статью про JOIN.

Anddros
Сообщения: 10
Зарегистрирован: 14 мар 2011, 10:58

Re: Builder C++ 6.0 и Interbase разработка клиентского прило

Сообщение Anddros » 14 мар 2011, 16:26

Не встречал более менее доходчивой информации. :( . Вот досада.

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Re: Builder C++ 6.0 и Interbase разработка клиентского прило

Сообщение kdv » 15 мар 2011, 23:31

хреново читал статью. Кроме того, unavailable database есть в FAQ:
http://www.ibase.ru/ibfaq.htm#unavail
Не встречал более менее доходчивой информации.
просто поиском пользоваться не умеешь.
До кучи. Код
DataModule2->IBQuery1->Transaction->Commit();
DataModule2->IBQuery1->Active=true;
полная чешуя. про это в ibx.htm написано. читай еще раз.

Anddros
Сообщения: 10
Зарегистрирован: 14 мар 2011, 10:58

Re: Builder C++ 6.0 и Interbase разработка клиентского прило

Сообщение Anddros » 16 мар 2011, 08:48

Я нашёл это в Delfi, подумал что между им и Builder C++ много общего. В статьях , что я находил всегда указано Delfi/Builder C++.
Всё равно интересует вопрос , мне что нужно использовать 5 DBGrid и 5 IBDataSet? хотя очевидно что 5 DBGrid уж точно, раз у меня 5 таблиц в БД. и где получается писать запросы для синхронного отображения данных в 5 DBGrid , хотя для отображения данных из некоторых таблиц, думаю целесообразней будет использовать в TEdit Информации в этих таблицах БД много.
P.S. Прошу прощения за глупые вопросы.

Anddros
Сообщения: 10
Зарегистрирован: 14 мар 2011, 10:58

Re: Builder C++ 6.0 и Interbase разработка клиентского прило

Сообщение Anddros » 16 мар 2011, 09:29

А правда ли что делать изменения прямо в DBGrid ооочень плохая идея, а для внесения изменений лучше всего использовать специальную дополнительную форму?

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Re: Builder C++ 6.0 и Interbase разработка клиентского прило

Сообщение kdv » 16 мар 2011, 13:39

мне что нужно использовать 5 DBGrid и 5 IBDataSet?
понятия не имею. если 5 разных таблиц надо редактировать, то да, 5 дбгридов. Если не одновременно, можно учудить один датасет и один дбгрид, и "переключать" в датасете запросы для редактирования конкретной таблицы.
А правда ли что делать изменения прямо в DBGrid ооочень плохая идея, а для внесения изменений лучше всего использовать специальную дополнительную форму?
только если много полей, они не вмещаются в грид на экране, есть специфика заполнения полей которую неудобно навешивать на грид, и т.д.

p.s. InterBase какой?

Anddros
Сообщения: 10
Зарегистрирован: 14 мар 2011, 10:58

Re: Builder C++ 6.0 и Interbase разработка клиентского прило

Сообщение Anddros » 16 мар 2011, 15:56

Interbase 6.5. Вроде всё должно поместиться на одной экранной форме. Я рассчитал. есть одна главная таблица и у нее одна дочерняя, а эта дочерняя в свою очередь является родительской для остальных три. Вот так в общем.

Anddros
Сообщения: 10
Зарегистрирован: 14 мар 2011, 10:58

Re: Builder C++ 6.0 и Interbase разработка клиентского прило

Сообщение Anddros » 16 мар 2011, 16:02

"учудить один датасет и один дбгрид, и "переключать" в датасете запросы для редактирования конкретной таблицы" - думаю это лучше отставить.
А тогда где запросы вводить для синхронного обображения? Нужно чтоли Ibquery размещать? А редактирование данных как и где лучше осуществлять?

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Re: Builder C++ 6.0 и Interbase разработка клиентского прило

Сообщение kdv » 17 мар 2011, 10:26

Interbase 6.5.
куплен? зачем используется, если ему уже 9 лет?
А тогда где запросы вводить для синхронного обображения? Нужно чтоли Ibquery размещать? А редактирование данных как и где лучше осуществлять?
вы примеры хоть какие-нибудь смотрели? Сами что-то пробовали? Есть подозрение, что нет, только теоретизируете.
Что значит "синхронное отображение" - мастер-деталь?
www.ibase.ru/devinfo/ibx.htm читали?

Anddros
Сообщения: 10
Зарегистрирован: 14 мар 2011, 10:58

Re: Builder C++ 6.0 и Interbase разработка клиентского прило

Сообщение Anddros » 17 мар 2011, 10:52

Да . мастер-деталь. Верно. Начало в общем получаться. Только намучился не пойму с чем: выставляю все свойства в инспекторе объекта , а нифига не отображаются данные в DBgrid. Тестирование соединение происходит корректно (при нажатии кнопки Test в Database), но потом в этом же окне нажимаю ОК тут же пишет какую то ошибку "......... Disconnect and continue?", первые слова не помню к сожалению. Пока эта ошибка не исчезла при нажатии кнопки ОК после тестирования (кнопка Test) данные не выводились, а потом вдруг всё стало отображаться. В общем думаю связано или с IBDataset либо с IBTransaction . На ноутбуке установлена Windows 7, может стоит всё таки на Windows XP перейти при работе с Interbase? это нужно устанавливать тогда вторую операционку, дело не сложное , но нехотелось бы. Проще конечно Windows XP установить на виртуальную машину (VirtualBox), а интересно будет ли тогда Interbase работать с виртуальной машиной?
Этот Interbase 6.5 дал преподаватель. и Firebird использую версии 1.5. я учусь заочно-дистанционно. приходится самому постигать всё самостоятельно. Спросить по всяким мелочам не у кого просто.

Anddros
Сообщения: 10
Зарегистрирован: 14 мар 2011, 10:58

Re: Builder C++ 6.0 и Interbase разработка клиентского прило

Сообщение Anddros » 17 мар 2011, 10:58

Тьфу . что то напутал немного. Гуи использую IBExpert 6.5, а СУБД Firebird 1.5.

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Re: Builder C++ 6.0 и Interbase разработка клиентского прило

Сообщение kdv » 17 мар 2011, 20:14

В общем думаю связано или с IBDataset либо с IBTransaction .
это связано с кривым программированием.
Этот Interbase 6.5 дал преподаватель. и Firebird использую версии 1.5. я учусь заочно-дистанционно. приходится самому постигать всё самостоятельно. Спросить по всяким мелочам не у кого просто.
1. IB 6.5 не сертифицирован под Windows 7. В те времена Windows 7 явно даже в планах не было.
2. по мелочам спрашивать действительно не у кого. нужно ЧИТАТЬ форумы, книжки, сайты, смотреть примеры. И спрашивать только ПОТОМ.
первые слова не помню к сожалению.
детский лепет. когда вы что-то такое спрашиваете на форумах, редко что удается опознать телепатически. Поэтому тексты ошибок нужно приводить ВСЕГДА. Перед тем как спросить об ошибке, нужно текст ошибки вбить в яндекс или в гугл, и поискать самостоятельно. Вы отнюдь не первый, не сотый и даже не стотысячный, у кого частая ошибка появляется впервые.
Гуи использую IBExpert 6.5
нет такого IBExpert. У него уже много лет версии прописываются как год.месяц.день.

Anddros
Сообщения: 10
Зарегистрирован: 14 мар 2011, 10:58

Re: Builder C++ 6.0 и Interbase разработка клиентского прило

Сообщение Anddros » 18 мар 2011, 08:47

Да действительно. Version 2008.02.18. Как всегда из за собственной невнимательности.

Anddros
Сообщения: 10
Зарегистрирован: 14 мар 2011, 10:58

Re: Builder C++ 6.0 и Interbase разработка клиентского прило

Сообщение Anddros » 18 мар 2011, 08:49

В общем у меня всё работает и на Windows 7 (пока работает)

Ответить