Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 15.09.2010, 18:34   #1
TaYgA
Форумчанин
 
Аватар для TaYgA
 
Регистрация: 24.09.2009
Сообщений: 264
По умолчанию Edit и DBGrid

Всем доброго времени суток... Получил задание сделать в Delphi базу данных, возникла проблема в том, что с БД компанентами Delphi я никогда не работал и не имею представление как это делается... Подскажите пожалуйсто как связать Edit и DBGrid т.е при введении текста в Edit1 он передавался в определённую ячейку DBGrid и наоборот при выборе ячейки DBGrid она передавалась в Edit2 (в DBGrid таблице выбирается полностью строка)... Заранее спасибо!!!

Последний раз редактировалось artemavd; 15.09.2010 в 18:45.
TaYgA вне форума
Старый 15.09.2010, 18:41   #2
_Engine_
Форумчанин
 
Регистрация: 29.06.2008
Сообщений: 603
По умолчанию

Почитай хоть немного теории и поймешь, что DBGrid тут совсем не причем, все данные, которые он отображает хранятся в DataSet'е. С ним и работай
_Engine_ вне форума
Старый 15.09.2010, 18:45   #3
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,210
По умолчанию

Цитата:
при введении текста в Edit1 он передавался в определённую ячейку DBGrid
Нужно отслеживать координаты мыши по таблицы и заносить данные уже потом.
----
Дополнение к вышесказанному. Хотя нет, все оказалось гораздо проще сделать, чем я думал. Напиши вот такой код:
Код:
procedure TForm1.DBGridEh2CellMouseClick(Grid: TCustomGridEh; Cell: TGridCoord; Button: TMouseButton; Shift: TShiftState; X,Y: Integer);
begin
 Form1.Edit8.Text:=Form1.DBGridEh2.SelectedField.AsString;
end;
и тогда у тебя в Edit8 будет заноситься текст из выделенной ячейке в любом месте в DBGrid.

Цитата:
при выборе ячейки DBGrid она передавалась в Edit2
Тут тебе поможет DBEdit. Настрой его свойство DataSource на тот же DataSet, на который настроен DBGrid и укажи нужное поле.
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.

Последний раз редактировалось artemavd; 15.09.2010 в 18:56.
artemavd вне форума
Старый 15.09.2010, 18:57   #4
postaveche
Пользователь
 
Регистрация: 30.08.2010
Сообщений: 77
По умолчанию

или зделай так

Код:
DataModule2.IBQuery1.SQL.Clear;
DataModule2.IBQuery1.SQL.Add('insert into таблица (столб1,столб2) values (:вал1,:вал2)');
DataModule2.IBQuery1.Params.ParseSQL(DataModule2.IBQuery1.sql.Text,true);
DataModule2.IBQuery1.ParamByName('вал1').Value := TEdit1.Text;
DataModule2.IBQuery1.ParamByName('вал2').Value := Memo1.Text;
DataModule2.IBQuery1.ExecSQL;
DataModule2.IBTransaction1.Commit;
DataModule2.IBQuery1.Close;
DataModule2.IBQuery1.SQL.Clear;
DataModule2.IBQuery1.SQL.Add('select * таблица');
DataModule2.IBTable1.open;
ну это если ты вводеш всё в форму то при нажатие на бутом он автоматом обновляет таблиу

Последний раз редактировалось postaveche; 15.09.2010 в 18:59.
postaveche вне форума
Старый 16.09.2010, 17:22   #5
TaYgA
Форумчанин
 
Аватар для TaYgA
 
Регистрация: 24.09.2009
Сообщений: 264
По умолчанию

_Engine_, спасибо за совет! В данный момент именно этим и занимаюсь!
artemavd, спасибо, но не совсем то, что надо... Дело в том, что у меня в BDGrid выделяется не определённая ячейка, а вся строка, т.е получается что в поле Edit он передаёт значения только первой ячейки выбранной строки. Мне нужно передать значения 3 ячейки выбранной строки...
postaveche, а что такое IBQuery1?

Я чуть перефразирую заданную мне задачу. Как передать ячейку в поле edit более менее понятно, в ходе чтения книги думаю разбирусь.... На отдельной от таблице форме находятся Edit поля, при нажатии на кнопку данные записанные в edit добавляются в таблицу. Чтобы добавить новую строчку в таблицу пишу так:

Код:
  ADOTable.Insert;
А вот как заполнить эту строчку?!
TaYgA вне форума
Старый 16.09.2010, 18:34   #6
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,210
По умолчанию

Цитата:
Мне нужно передать значения 3 ячейки выбранной строки...
Ну так а сразу-то не судьба чтоли была сказать полностью задачу? Тогда кидайте на форму три DBEdit-a, настраивайте их на 3 нужные поля и потом при выборе всей строки, в этих эдитах у вас будут отображаться только три значения из этой строки.

Цитата:
А вот как заполнить эту строчку?!
В смысле? Не понял. Как вставить запись не знаете? Ну так например:
Код:
 ADOTable1.Insert;
 ADOTable1.FieldByName('pole').AsString;
 ADOTable1.Post;
 ADOTable1.Refresh;
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума
Старый 17.09.2010, 15:03   #7
XeruH
Форумчанин
 
Регистрация: 17.09.2010
Сообщений: 229
По умолчанию

ADOTable1.Insert;
ADOTAble1.FieldByName('имя первого поля').AsString := Edit1.Text;
ADOTAble1.FieldByName('имя второго поля').AsInteger := StrToInt(Edit2.Text);
ADOTAble1.FieldByName('имя третьего поля').AsDateTime := StrToDateTime(Edit3.Text);
ADOTable1.Post;
ADOTable1.Refresh;

Соответственно:
Edit1.Text := ADOTAble1.FieldByName('имя первого поля').AsString;
Edit2.Text := ADOTAble1.FieldByName('имя второго поля').AsString;
Edit3.Text := ADOTAble1.FieldByName('имя третьего поля').AsString;
Правильно заданный вопрос - половина ответа!

Последний раз редактировалось artemavd; 17.09.2010 в 15:11.
XeruH вне форума
Старый 17.09.2010, 16:39   #8
TaYgA
Форумчанин
 
Аватар для TaYgA
 
Регистрация: 24.09.2009
Сообщений: 264
По умолчанию

Спасибо всем за помощь!!!!! Всё работает отлично))
TaYgA вне форума
Старый 17.09.2010, 16:42   #9
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,210
По умолчанию

Отлично. Тогда закрываю.
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
DBGrid и Edit Irina_87 БД в Delphi 2 26.03.2010 23:27
DBGrid и Edit-ы (*_*) Общие вопросы C/C++ 0 05.07.2009 17:25
поиск DBGrid+ComboBox+Edit dalien Общие вопросы Delphi 2 25.06.2009 22:56
Edit и DBGRID LIEN Общие вопросы Delphi 11 27.05.2009 10:45
из DBGrid в Edit nevo БД в Delphi 4 24.04.2008 16:03