Помогите исправить "косяк" с SelectedIndex

Из компонента TDBGrid выбираю по очереди поля из одной строки для переноса в ДБ, при прописании либой строчки типа
DBGrid.SelectedIndex:=x
Где x-любая цифра он не только выделяет поле со значением x, но и переносит поле под номером 5 на первое место в строке таблици. Причём перенос происходит во всех строках. Подскажите что я не так пишу.
9 ответов

Выбирать нужно не из грида, а из таблицы БД, данные из которой грид отображает...


У меня в гриде лежит результат запроса, мне нужно из него заносить инфу выбранной строки в таблицу.


Результат запроса лежит не в гриде, а в датасете (полагаю - Query). А грид только отображает то, что есть в Query. А с записями в любом датасете работают одинаково...
Table1.FieldByName('pole1').Value:=MyQuery.FieldByName('qpole1').Value;


Так мне нужно поле в определённой строчке


Когда выбирается строка в гриде, курсор в Query становится именно на эту запись. Может, пора уже книгу умную почитать?


А что вы посоветуете почитать, или приобрести из книг?23:20Если сделать как вы сказали, то одно поле всё равно выезжает на первое место, хотя должно стоять на пятом(У нас принято пользоваться кнопочкой "Правка", дабы не плодить посты подряд, друг за другом. Модератор


А какая именно?


А вот при использовании вашего способа занесения в интересующее меня поле значений стала выдаваться ошибка на следующее:
List.Table2.Post;
Всё что находится в процедуре представлено ниже.
var k:Integer; n:TdateTime; begin n:=now; List.Table2.DatabaseName:='SE'; List.Table2.TableName:='SPVinp'; List.Table2.Active:=true; List.Table2.Append; List.Table2.Edit; List.Table2.FieldByName('Num').Text :=Mpr.Query1.FieldByName('Num').Tex t; List.Table2.FieldByName('Fam').Text :=Mpr.Query1.FieldByName('Fam').Tex t; List.Table2.FieldByName('Name').Tex t:=Mpr.Query1.FieldByName('Name').T ext; List.Table2.FieldByName('Ot').Text: =Mpr.Query1.FieldByName('Ot').Text; List.Table2.FieldByName('Clas').Tex t:=Mpr.Query1.FieldByName('Clas').T ext; List.Table2.FieldByName('Date').AsD ateTime:=n; List.Table2.FieldByName('Time').AsD ateTime:=n; List.Table2.Post; Vbr.Close; List.DataSource3.DataSet:=List.Tabl e2; List.DBGridB.DataSource:=List.DataS ource3;
Подскажите пожалуйста как с чем это связано, а то изменения не сохраняются в таблице. При совершенно чистой таблице всё работает(если в ней нет записей). Если же 1 раз запустить программу, добавить запись и закрыть, то потом уже выдаёт ошибку.