Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2002.10.17;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.009 c
4-56420
BorisMor
2002-09-02 12:58
2002.10.17
Процесс.


14-56349
Valery_N
2002-09-26 09:28
2002.10.17
Где можно скачать Eh-овские компоненты


14-56270
DeMoN-777
2002-09-23 02:43
2002.10.17
Киеьте пожалуйста значок D6 или D7


14-56314
Igorek
2002-09-18 09:36
2002.10.17
Лучшая смотрелка архивов форумов


3-56006
Василич
2002-09-19 19:16
2002.10.17
EOLEException





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский