Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.10.17;
Скачать: CL | DM;

Вниз

Уважаемые мастера!   Найти похожие ветки 

 
Tornado ©   (2002-09-25 14:23) [0]

Есть запрос из большой таблицы (более 300 000 записей, БД Access). Запрос выполняется с помощью ADOQuery. Все отображается в гриде. Как мне добавлять/удалять/редактировать какую либо запись из этого запроса чтобы пользователь сразу мог увидеть эти изменения в гриде? Нужно использовать еще один ADOQuery? И как поставить условие в запросе редактирования/удаления/добаления чтоб модифицировалась именно та запись, на которой стоит курсор? Если можно - кусочек кода. Спасибо огромное.


 
sniknik ©   (2002-09-25 14:43) [1]

модифицировать по ключевому полю, возмеш ключь из текущей измениш ее.
лутше не еще один ADOQuery а еще ADOCommand (для UPDATE сомое то) и после изменений рефреш основному ADOQuery.


 
Tornado ©   (2002-09-25 15:26) [2]

Уважаемый sniknik © (25.09.02 14:43) !

Можно поподробней насчет ключевого поля? Как получить ключ? Если не сложно, никогда не работал с ADO. Спасибо


 
sniknik ©   (2002-09-25 16:03) [3]

зачем персонализировать вопрос? тут тебе многие могут ответить, а будеш ждать меня а я вообще домой может ушел.

ключевое поле это в принципе любое поле по которому можно 100% индентефицировать запись (уникальное). можно по разному добиватся уникальности проще по моему Автоинкрементное поле, для гарантии еще индекс на него не позволяюций дубляжей (в MSSQL кластерный индекс, чтобы в этом порядке поля держал) и т.д.
но в общем Автоинкремента вполне хватит.

ну вот когда имеется такое поле то можно делать
ADOCommand.CommandText:= "UPDATE BAR SET BARCODE= ""5449000000286"" WHERE INCREM = 13";
ADOCommand.Execute;

обновится запись где INCREM равно 13
INCREM здесь именно оно ключевое поле.


 
Tornado ©   (2002-09-25 16:36) [4]

ОК, спасибо, но я ведь не знаю заранее какой номер у ключевого поля в запросе (т.е. на какой записи запроса стоит сейчас курсор)


 
sniknik ©   (2002-09-25 16:56) [5]

читай.
VarINCREM:= ADOQuery.FieldByName("INCREM").Value;

и передавай
ADOCommand.CommandText:= "UPDATE BAR SET BARCODE= ""5449000000286"" WHERE INCREM = "+IntToStr(VarINCREM);

можно и параметром
ADOCommand.CommandText:= "UPDATE BAR SET BARCODE= ""5449000000286"" WHERE INCREM = :Inc";
ADOCommand.Params.ParamByName("Inc").Value:= VarINCREM;



Страницы: 1 вся ветка

Текущий архив: 2002.10.17;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.017 c
1-56161
Шурик Ш
2002-10-07 12:18
2002.10.17
Вызов MDIChild формы


3-55967
Oxy2
2002-09-25 12:00
2002.10.17
Убрать дубли


14-56325
lak_b
2002-09-25 11:15
2002.10.17
Помогите найти хорошую программку по администрированию IB


14-56319
Esu
2002-09-24 21:37
2002.10.17
Хиппи ты или нет ?


7-56388
2UT
2002-08-07 12:45
2002.10.17
И снова о СОМ - портах (скорость выше 115200 ???)