Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Базы данных и репортинг > БД в FireBird, подключенная к Delphi


Автор: drakon803 21.5.2010, 17:57
Привет всем!
Кто работал с Базой данных в Firebird 1,5 и подключал ее к Делфи?Проконсультируйте.
Есть проект.База создана,заполнена.подключена в Делфи.но никак не могу прописать работу кнопок и редактирование данных в таблицах. 

Автор: Frees 21.5.2010, 18:09
показывай как пробовал сделать, что не получилось?
.... или ты хочешь что бы сделали за тебя? тогда пиши в PM

Автор: Данкинг 21.5.2010, 20:10
Цитата(drakon803 @  21.5.2010,  18:57 Найти цитируемый пост)
Кто работал с Базой данных в Firebird 1,5 и подключал ее к Делфи?

Не, я только с FB 2.0 - 2.1 работал. smile 
Цитата(drakon803 @  21.5.2010,  18:57 Найти цитируемый пост)
но никак не могу прописать работу кнопок 

В чём должна заключаться "работа кнопок" применительно к FB ?
Цитата(drakon803 @  21.5.2010,  18:57 Найти цитируемый пост)
и редактирование данных в таблицах.  

Данные в таблицах FB обычно редактируются запросами.

Автор: drakon803 21.5.2010, 23:03
Тут 2 фишки
Первая-есть главная форма,на ней меню.при выборе пункта меню добавить->модель  открывается вторая форма и подключенная таблица из БД,созданная в FB. На второй форме расположены лэйблы,эдиты и кнопки Добавить и Очистить. Надо. чтобы при открытии второй формы, эдиты были не заполнены.их заполняю вручную и при нажати на кнопку Добавить. инфа из эдитов добавлялась как новая запись в таблицу.Эдитыполностью совпадают с нолями таблицы.Проблема в том, что у меня в эдитах отображается уже заполненная инфа.а при нажатии кнопки Очистить, инфа удаляется, но в эдиты я ничего забить не могу.вот
Вторая фишка-при выборе пункта меню изменить->модель   открывается таблица из БД, созданная в FB.Здень должна быть возможность напрямую редактировать инфу в ячейках таблицы и при нажатии кнопки Принять изменения ,инфа должна добавляться в таблицу.Здесь у меня прблема в том, что я не могу редактировать содержимое ячеек.

вот кодинг по первой проблеме:

procedure TForm2.Button1Click(Sender: TObject);// процедура при нажатии кнопки добавить
begin
DBEdit1.Clear;
Form1.IBDataSet1.FieldByName('ID_modeli').AsString := DBEdit1.Text;
Form1.IBDataSet1.Post;

DBEdit2.Clear;
Form1.IBDataSet1.FieldByName('N_modeli').AsString := DBEdit2.Text;
Form1.IBDataSet1.Post;

DBEdit3.Clear;
Form1.IBDataSet1.FieldByName('Nazvanie_modeli').AsString := DBEdit3.Text;
Form1.IBDataSet1.Post;

DBEdit4.Clear;
Form1.IBDataSet1.FieldByName('ID_konstruktora').AsString := DBEdit4.Text;
Form1.IBDataSet1.Post;

DBEdit5.Clear;
Form1.IBDataSet1.FieldByName('ID_Z').AsString := DBEdit5.Text;
Form1.IBDataSet1.Post;

DBEdit6.Clear;
Form1.IBDataSet1.FieldByName('ID_Z').AsString := DBEdit6.Text;
Form1.IBDataSet1.Post;
 

Незнаю,понадобится ли еще какой кодинг или лучше полностью проект выложить.

Автор: Akella 21.5.2010, 23:05
пользуйся кнопкой КОД

Автор: drakon803 21.5.2010, 23:12
Хорошо.сиба  за поправку!

Автор: Данкинг 21.5.2010, 23:19
Код

[quote=drakon803, 22.5.2010,  00:03, post2157008]Form1.IBDataSet1.FieldByName('ID_modeli').AsString := DBEdit1.Text;[/quote]

Если у тебя DBEdit1, так зачем из него ещё принудительно вносить инфу?
По поводу второй проблемы - ищи на форуме, такая тема обсуждалась, только вот не помню, какое там нашли решение.

Автор: drakon803 23.5.2010, 12:42
Если у тебя DBEdit1, так зачем из него ещё принудительно вносить инфу?

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

Автор: Данкинг 23.5.2010, 13:33
Можно использовать обычный Edit и по нажатию на кнопку обновлять данные в таблице через Update.

Автор: drakon803 24.5.2010, 21:33
Решение проблемы с помощью обычного Edit мне рекомендовали, но  можно ли обойтись  DBEdit?
Нюанс еще в том, что при создании базы данных в FireBird, поле 'ID_modeli' обозначено как первичный ключ и ключ генерируется автоматически.
Это моя первая БД. Пусть все будет криво и не по правилам хорошего тона программирования.пусть кода будет много.Моя цель-рабочая прога.Но как дойти до цели с заданными параметрами -не знаю.(((

Автор: former 25.5.2010, 10:31
Цитата(drakon803 @  24.5.2010,  21:33 Найти цитируемый пост)
Решение проблемы с помощью обычного Edit мне рекомендовали, но  можно ли обойтись  DBEdit?

Слушай, что умные люди говорят. Так проще оперировать информацией, хранящейся в БД .
Цитата(drakon803 @  24.5.2010,  21:33 Найти цитируемый пост)
Нюанс еще в том, что при создании базы данных в FireBird, поле 'ID_modeli' обозначено как первичный ключ и ключ генерируется автоматически.

Первичный ключ должен быть скрыт от пользователя всегда.
Цитата(drakon803 @  24.5.2010,  21:33 Найти цитируемый пост)
Это моя первая БД. Пусть все будет криво и не по правилам хорошего тона программирования.пусть кода будет много.Моя цель-рабочая прога.Но как дойти до цели с заданными параметрами -не знаю.(((

Во-во. С этого все начинается. Нужно привыкать все делать правильно. Лучше один раз помучиться, но зато потом всегда делать как надо. ИМХО: ты просто потратишь время впустую.

Автор: Akella 25.5.2010, 15:24
Цитата(former @  25.5.2010,  10:31 Найти цитируемый пост)
Первичный ключ должен быть скрыт от пользователя всегда.

нет, ну не скрыт, но недоступен для редактирования.

Автор: Antimol 2.6.2010, 11:17
Цитата(Akella @ 25.5.2010,  15:24)
Цитата(former @  25.5.2010,  10:31 Найти цитируемый пост)
Первичный ключ должен быть скрыт от пользователя всегда.

нет, ну не скрыт, но недоступен для редактирования.

Согласен, он автоинкрементится, пускай попробуют отредактировать  smile 

А почему бы не взять DBNavigator и подключить его к соответствующему DataSource.


Цитата

Тут 2 фишки
Первая-есть главная форма,на ней меню.при выборе пункта меню добавить->модель  открывается вторая форма и подключенная таблица из БД,созданная в FB. На второй формерасположены лэйблы,эдиты и кнопки Добавить и Очистить. Надо. чтобы при открытии второй формы, эдиты были не заполнены.их заполняю вручную и при нажати на кнопку Добавить. инфа из эдитов добавлялась как новая запись в таблицу.Эдитыполностью совпадают с нолями таблицы.Проблема в том, что у меня в эдитах отображается уже заполненная инфа.а при нажатии кнопки Очистить, инфа удаляется, но в эдиты я ничего забить не могу.вот


Есть 2 пути:
1. Использовать TEdit - тогда нужно будет писать запросы добавления вручную
2. Использовать TDBEdit - можно при появлении формы выполнить IBDataSet1.Insert и при подтверждении сохранения  IBDataSet1.Post иначе IBDataSet1.Cancel, да и ненадо будет делать присвоение значений =)


Цитата

Вторая фишка-при выборе пункта меню изменить->модель   открывается таблица из БД, созданная в FB.Здень должна быть возможность напрямую редактировать инфу в ячейках таблицы и при нажатии кнопки Принять изменения ,инфа должна добавляться в таблицу.Здесь у меня прблема в том, что я не могу редактировать содержимое ячеек.


Каких ячеек? DBGrid? Может в какомто из компонентов установлено свойство ReadOnly


Автор: Akella 2.6.2010, 11:26
Цитата(Antimol @  2.6.2010,  11:17 Найти цитируемый пост)
А почему бы не взять DBNavigator 

много ты приложений видел с этим навигатором, удобно?

Автор: Antimol 2.6.2010, 11:43
Цитата(Akella @ 2.6.2010,  11:26)
Цитата(Antimol @  2.6.2010,  11:17 Найти цитируемый пост)
А почему бы не взять DBNavigator 

много ты приложений видел с этим навигатором, удобно?

Видел, да вот нужно учитывать тот факт что человек только начинает, а для начала ему сойдет

Автор: Akella 2.6.2010, 12:26
Ему может и сойдёт, но пусть пожалеет пользователей. Программа, как правило пишется для пользователей. Ну, если, конечно, это разовая программа для курсовика, то конечно, как говорится: "И тааааак сойдёт!" smile 

Автор: former 2.6.2010, 12:52
Цитата(Antimol @  2.6.2010,  11:43 Найти цитируемый пост)
для начала ему сойдет

Вспоминается мультфильм "Так сойдёт! " smile Поэтому всегда надо стараться изначально.

Автор: drakon803 2.6.2010, 18:03
Полагаю, надо свернуть тему - видимо рановато мне в эти Бд лезть. надо хорошенько продумать конструкцию самой БД, а уж потом решать  вопросы с подключением.Да и теории надо больше.
СПАСИБО ВСЕМ ЗА ОТВЕТЫ  В ЭТОЙ ТЕМЕ!!! ПРИЯТНО НА ПРАКТИКЕ УБЕЖДАТЬСЯ, ЧТО ЕСТЬ ЛЮДИю, КОТОРЫЕ МОГУТ РЕАЛЬНО ПОМОЧЬ И ПОСОВЕТОВАТЬ!
все, тему сворачиваем.
СПАСИБО ОГРОМНОЕ!
УДАЧИ!
НАДЕЮСЬ, УВИДИМСЯ. БУДУ ЗНАТЬ, КУДА ОБРАТИТЬСЯ ЗА СОВЕТОМ .
БАЙ!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)