Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Редактирование записи


juice ©   (2005-01-21 12:24:00) 

Добрый день. Делаю выборку используя стандартный query. Пробегая и анализируя полученные записи нужно в некоторых из них установить значение некоего поля в 1. Как это сделать не используя SQL ? Сначала надо вызвать Query.Edit,
потом Query.FieldByName('fld01').Value := 1 ? Или в обратном порядке? И нужен ли компонент UpdateSQL ? Извините, просто нет базы и Delphi под рукой и не могу сам попробовать.


Sergey13   (2005-01-21 15:02:00) [1]

А с клиентами у тебя все нормально? Сервер какой и клиент?
EIBClientError - вроде не программа выдает, а клиент. Может тут нестыковка какая идет?


juice   (2005-01-21 14:51:00) [2]

Сори, там idkbo и стоит - это я на форум не то запостил. У меня так:

qClients.Edit;
qClients.FieldByName('idkbo').AsInteger := 0 ;        qClients.Post;


Sergey13   (2005-01-21 14:34:00) [3]

>updClients.ModifySQL = "update t002 set idkbo=:idkbo where id002=:id002"
И где тут поле IDD которое ты меняешь? По твоему запросу можно только idkbo менять.


juice   (2005-01-21 14:23:00) [4]

Да, каша действительно полная. Делаю так:

qClients.Edit;
qClients.FieldByName('idd').AsInteger := 0;
qClients.Post;

Та где пост выдает ошибку - EIBClientError Unsupported feature.

Может причина в :

qClients.UpdateObject = updClients;
updClients.ModifySQL = "update t002 set idkbo=:idkbo where id002=:id002"


Пробовал не устанавливать qClients.UpdateObject - пишет ошибку qClients : cannot modify a read-only dataset


Vlad   (2005-01-21 13:30:00) [5]


> msguns ©   (21.01.05 13:22) [5]

Видимо недопонял :-) Или я тебя недопонимаю...


> не проще ли воспользоваться просто OnGetText датасета с
> нарисовкой соотвюпиктограммы или чего там надо в OnDrawColumnCell
> грида ?

К чему это? :-)
Автору вроде нужно было запись редактировать, и он не знает в каких случаях нужно использовать TUpdateSQL, а в каких можно без него обойтись, да еще про блобы зачем-то вспомнил, короче видать полная каша в голове (если я правильно понял автора).


msguns   (2005-01-21 13:22:00) [6]

>Vlad ©   (21.01.05 12:30) [1]

Если это нужно для визуализации (например, в гриде рисовать картинки в некоторой колонке в зависимости от значения каких-то полей записи), то не проще ли воспользоваться просто OnGetText датасета с нарисовкой соотвюпиктограммы или чего там надо в OnDrawColumnCell грида ?
Если же надо отредактить в самой таблице БД, то почему нельзя использовать SQL ?

Или я что-то недопонял ?


juice   (2005-01-21 13:03:00) [7]

спасибо


Vlad   (2005-01-21 12:45:00) [8]


> juice   (21.01.05 12:38) [2]


> Т.е. я так понял что UpdateSQl нужен только для блоб-полей?

Причем тут блоб-поля? Я о них даже косвенно не упоминал.
TUpdateSQL + F1, там все подробно написано для чего он нужен.


juice   (2005-01-21 12:38:00) [9]

Спасибо. Субд Interbase.  

> что у тебя в Query

обычные поля - integer, varchar. Имелось в виду есть ли блоб-поля? Нет, их нет. Т.е. я так понял что UpdateSQl нужен только для блоб-полей?


Vlad   (2005-01-21 12:30:00) [10]


> juice   (21.01.05 12:24)  

Естественно сначала переводим Query в режим редактирования
Query.Edit
Затем изменяем значение поля
Query.FieldByName('fld01').Value := 1
Затем сохраняем изменения в таблице
Query.Post


> И нужен ли компонент UpdateSQL ?

Зависит от того, какая СУБД и что у тебя в Query


Наверх

Титульная страница Поиск, карта сайта Написать письмо