| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Базы данных и репортинг > БД в FireBird, подключенная к Delphi |
| Автор: drakon803 21.5.2010, 17:57 |
| Привет всем! Кто работал с Базой данных в Firebird 1,5 и подключал ее к Делфи?Проконсультируйте. Есть проект.База создана,заполнена.подключена в Делфи.но никак не могу прописать работу кнопок и редактирование данных в таблицах. |
| Автор: Frees 21.5.2010, 18:09 |
| показывай как пробовал сделать, что не получилось? .... или ты хочешь что бы сделали за тебя? тогда пиши в PM |
| Автор: 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 | ||
Если у тебя 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 | ||||||
Слушай, что умные люди говорят. Так проще оперировать информацией, хранящейся в БД .
Первичный ключ должен быть скрыт от пользователя всегда.
Во-во. С этого все начинается. Нужно привыкать все делать правильно. Лучше один раз помучиться, но зато потом всегда делать как надо. ИМХО: ты просто потратишь время впустую. |
| Автор: Akella 25.5.2010, 15:24 |
нет, ну не скрыт, но недоступен для редактирования. |
| Автор: Antimol 2.6.2010, 11:17 | ||||||
Согласен, он автоинкрементится, пускай попробуют отредактировать А почему бы не взять DBNavigator и подключить его к соответствующему DataSource.
Есть 2 пути: 1. Использовать TEdit - тогда нужно будет писать запросы добавления вручную 2. Использовать TDBEdit - можно при появлении формы выполнить IBDataSet1.Insert и при подтверждении сохранения IBDataSet1.Post иначе IBDataSet1.Cancel, да и ненадо будет делать присвоение значений =)
Каких ячеек? DBGrid? Может в какомто из компонентов установлено свойство ReadOnly |
| Автор: Akella 2.6.2010, 11:26 |
много ты приложений видел с этим навигатором, удобно? |
| Автор: Antimol 2.6.2010, 11:43 | ||
Видел, да вот нужно учитывать тот факт что человек только начинает, а для начала ему сойдет |
| Автор: Akella 2.6.2010, 12:26 |
| Ему может и сойдёт, но пусть пожалеет пользователей. Программа, как правило пишется для пользователей. Ну, если, конечно, это разовая программа для курсовика, то конечно, как говорится: "И тааааак сойдёт!" |
| Автор: former 2.6.2010, 12:52 |
Вспоминается мультфильм "Так сойдёт! " |
| Автор: drakon803 2.6.2010, 18:03 |
| Полагаю, надо свернуть тему - видимо рановато мне в эти Бд лезть. надо хорошенько продумать конструкцию самой БД, а уж потом решать вопросы с подключением.Да и теории надо больше. СПАСИБО ВСЕМ ЗА ОТВЕТЫ В ЭТОЙ ТЕМЕ!!! ПРИЯТНО НА ПРАКТИКЕ УБЕЖДАТЬСЯ, ЧТО ЕСТЬ ЛЮДИю, КОТОРЫЕ МОГУТ РЕАЛЬНО ПОМОЧЬ И ПОСОВЕТОВАТЬ! все, тему сворачиваем. СПАСИБО ОГРОМНОЕ! УДАЧИ! НАДЕЮСЬ, УВИДИМСЯ. БУДУ ЗНАТЬ, КУДА ОБРАТИТЬСЯ ЗА СОВЕТОМ . БАЙ! |