|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
DbGrid - выделеная строка и передача данных в форму для редактирования
Привет всем. Смысл простой - истина в статусе =).
Есть Dbgrid, есть выделенная строка, есть форма, которая запускается при нажатии на кнопку редактировать в модальном режиме, на форме пока пусто Есть функия: Код:
function dbstring:string; var i:integer; begin result:=''; for i:=0 to DBGrid1.DataSource.DataSet.FieldCount-1 do result:=result+DBGrid.DataSource.DataSet.Fields[i].AsString+';'; end; Как мне полученные значение занести в форму редактирования? Спасибо Последний раз редактировалось gebs, 03.08.2010 в 22:17. |
#2
|
||||
|
||||
Ну скорее всего на форме редактирования нужен компонент TMemo и тогда присвоение будет выглядеть примерно так:
Код:
Form2.Memo1.Text := dbstring; Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#3
|
|||
|
|||
Цитата:
Спасибо, но видимо уже разабрадся сам: Код:
procedure TForm1.N7Click(Sender: TObject); begin Form_redznn.Edit1.Text := DBGridEh_znn.DataSource.DataSet.FieldByName('name').AsString; Form_redznn.DBLookupComboboxEh1.Text := DBGridEh_znn.DataSource.DataSet.FieldByName('addr').AsString; Form_redznn.Edit2.Text := DBGridEh_znn.DataSource.DataSet.FieldByName('dom').AsString; Form_redznn.Edit3.Text := DBGridEh_znn.DataSource.DataSet.FieldByName('kv').AsString; Form_redznn.Edit4.Text := DBGridEh_znn.DataSource.DataSet.FieldByName('tel1').AsString; Form_redznn.Edit5.Text := DBGridEh_znn.DataSource.DataSet.FieldByName('tel2').AsString; Form_redznn.DBLookupComboboxEh2.Text := DBGridEh_znn.DataSource.DataSet.FieldByName('harneispr').AsString; Form_redznn.Edit6.Text := DBGridEh_znn.DataSource.DataSet.FieldByName('ktoprinyal').AsString; Form_redznn.DateTimePicker1.DateTime := DBGridEh_znn.DataSource.DataSet.FieldByName('datapr').AsDatetime; Form_redznn.AdvDBDateTimePicker2.DateTime := DBGridEh_znn.DataSource.DataSet.FieldByName('datapl').AsDatetime; Form_redznn.Showmodal; end; Пока тестирую. |
#4
|
|||
|
|||
Ять!!! А зачем придуманы DB Aware компоненты???
Тебе надо использовать соотв. TDBEdit, которым просто установить нужный DataSource... выделенная строка в гриде - это текущая строка в источнике данных. Дальше Дельфи все за тебя сделает сама... |
#5
|
|||
|
|||
Цитата:
Примерно понял. Спасибо. |
#6
|
||||
|
||||
А на кой вы тогда функцию показали, если вам просто редактировать текущую запись надо? Себя и меня запутали.
Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#7
|
|||
|
|||
Цитата:
Но в этом случае после sql update они возвращают нулевые значения: Код:
Form1.myquery_znp.SQL.ADD('UPDATE znp SET id = :id, iddog = :iddog, lastname = :lastname, name = :name, surname = :surname, addrstreet = :addrstreet, addrdom = :addrdom, addrkv = :addrkv, addretazh = :addretazh, mobtel = :mobtel, '); Form1.myquery_znp.SQL.ADD('domtel = :domtel, tarif = :tarif, datapodkl = :datapodkl, ktoprinyal = :ktoprinyal, ktoispolnil1 = :ktoispolnil1, ktoispolnil2 = :ktoispolnil2, login = :login, pass = :pass, ipaddr = :ipaddr, ls = :ls, status = :status'); Form1.myquery_znp.SQL.Add('WHERE `id`= :id'); Form1.myquery_znp.ParambyName('id').AsInteger :=cxDBSpinEdit1.Value; Form1.myquery_znp.ParambyName('iddog').AsInteger :=cxDBSpinEdit2.Value; Form1.myquery_znp.ParambyName('lastname').asstring:=DBEditEh1.Text; Form1.myquery_znp.ParambyName('name').asstring:=DBEditEh2.Text; Form1.myquery_znp.ParambyName('surname').asstring:=DBEditEh3.Text; Form1.myquery_znp.ParambyName('addrstreet').asstring:=DBComboBox6.Text; Form1.myquery_znp.ParambyName('addrdom').asstring:=DBEdit1.Text; Form1.myquery_znp.ParambyName('addrkv').asstring:=DBEdit2.Text; Form1.myquery_znp.ParambyName('addretazh').asstring:=DBEdit3.Text; Form1.myquery_znp.ParambyName('mobtel').asstring:=DBEdit4.Text; Form1.myquery_znp.ParambyName('domtel').asstring:=DBEdit5.Text; Form1.myquery_znp.ParambyName('tarif').asstring:=DBComboBox2.Text; Form1.myquery_znp.ParambyName('datapodkl').AsDateTime:=AdvDBDateTimePicker2.DateTime; Form1.myquery_znp.ParambyName('ktoprinyal').asstring:=DBComboBox1.Text; Form1.myquery_znp.ParambyName('ktoispolnil1').asstring:=DBComboBox3.Text; Form1.myquery_znp.ParambyName('ktoispolnil2').asstring:=DBComboBox4.Text; Form1.myquery_znp.ParambyName('login').asstring:=DBEdit7.Text; Form1.myquery_znp.ParambyName('pass').asstring:=DBEdit8.Text; Form1.myquery_znp.ParambyName('ipaddr').asstring:=DBEdit6.Text; Form1.myquery_znp.ParambyName('ls').asstring:=DBEdit7.Text; Form1.myquery_znp.ParambyName('status').asstring:=DBComboBox5.Text; Form1.myquery_znp.Execute; Close; Последний раз редактировалось gebs, 08.08.2010 в 15:45. |
#8
|
|||
|
|||
Цитата:
угу, потому что работа делается подругому. Нужно к dataSet-компоненту добавить соответсвующий компонент, в котором прописываются шаблоный запросов на Update, Insert и Delete. Потом просто ставим DB-Aware компоненты и стандартными методами DataSet'а (TQuery и т.п.) Appent, Insert, Edit, Delete, Post (или через DBNavigator) работаем с данными. Всю остальную работу за тебя сделает Delphi - возьмет соотв. данные, засунет их в соотв. запрос и выполнит последний. |
#9
|
|||
|
|||
Цитата:
У меня в Uses формы на редактирование установлено Unit1; поэтому на форме нет компонентов для работы с SQL... там одни эдиты. Схема такая: На Form1 - MyConnection1 -> MyDataSource1 -> MyQuery1 А Form2 (форма редактирования) просто обращается к этим компонентам посредством прописанного Unit1 в Uses. Последний раз редактировалось gebs, 13.08.2010 в 01:40. |