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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.12.2009, 19:41   #1
Herly
Форумчанин
 
Регистрация: 07.11.2009
Сообщений: 118
По умолчанию Помогите исправить "косяк" с SelectedIndex

Из компонента TDBGrid выбираю по очереди поля из одной строки для переноса в ДБ, при прописании либой строчки типа
Код:
DBGrid.SelectedIndex:=x
Где x-любая цифра он не только выделяет поле со значением x, но и переносит поле под номером 5 на первое место в строке таблици. Причём перенос происходит во всех строках. Подскажите что я не так пишу.
Если всё откладывать на потом, то потом будет всё.
Herly вне форума Ответить с цитированием
Старый 19.12.2009, 20:59   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Выбирать нужно не из грида, а из таблицы БД, данные из которой грид отображает...
mihali4 вне форума Ответить с цитированием
Старый 19.12.2009, 22:01   #3
Herly
Форумчанин
 
Регистрация: 07.11.2009
Сообщений: 118
По умолчанию

У меня в гриде лежит результат запроса, мне нужно из него заносить инфу выбранной строки в таблицу.
Если всё откладывать на потом, то потом будет всё.
Herly вне форума Ответить с цитированием
Старый 19.12.2009, 22:12   #4
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

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

Последний раз редактировалось mihali4; 19.12.2009 в 22:14.
mihali4 вне форума Ответить с цитированием
Старый 19.12.2009, 22:50   #5
Herly
Форумчанин
 
Регистрация: 07.11.2009
Сообщений: 118
По умолчанию

Так мне нужно поле в определённой строчке
Если всё откладывать на потом, то потом будет всё.
Herly вне форума Ответить с цитированием
Старый 19.12.2009, 22:53   #6
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

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

Может, пора уже книгу умную почитать?
mihali4 вне форума Ответить с цитированием
Старый 19.12.2009, 22:55   #7
Herly
Форумчанин
 
Регистрация: 07.11.2009
Сообщений: 118
По умолчанию

А что вы посоветуете почитать, или приобрести из книг?

23:20

Если сделать как вы сказали, то одно поле всё равно выезжает на первое место, хотя должно стоять на пятом(

У нас принято пользоваться кнопочкой "Правка", дабы не плодить посты подряд, друг за другом.
Модератор
Если всё откладывать на потом, то потом будет всё.

Последний раз редактировалось mihali4; 19.12.2009 в 23:41.
Herly вне форума Ответить с цитированием
Старый 19.12.2009, 23:42   #8
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Книги лежат тут:
http://www.programmersforum.ru/showthread.php?t=1589
mihali4 вне форума Ответить с цитированием
Старый 19.12.2009, 23:46   #9
Herly
Форумчанин
 
Регистрация: 07.11.2009
Сообщений: 118
По умолчанию

А какая именно?
Если всё откладывать на потом, то потом будет всё.
Herly вне форума Ответить с цитированием
Старый 20.12.2009, 17:57   #10
Herly
Форумчанин
 
Регистрация: 07.11.2009
Сообщений: 118
По умолчанию

А вот при использовании вашего способа занесения в интересующее меня поле значений стала выдаваться ошибка на следующее:
Цитата:
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 раз запустить программу, добавить запись и закрыть, то потом уже выдаёт ошибку.
Если всё откладывать на потом, то потом будет всё.

Последний раз редактировалось Herly; 20.12.2009 в 19:43.
Herly вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Граббер, в чем косяк? Arsmuzhik PHP 1 09.07.2009 00:10
Косяк в коде Dimon88 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 6 18.09.2008 18:09
косяк с DVD-ROMом( marshall Компьютерное железо 17 29.08.2008 20:45
Помогите исправить косяк в задаче на динамические переменные списки Taisja Помощь студентам 2 31.05.2008 21:49
Косяк Sanctuar Помощь студентам 1 18.06.2007 07:36