![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Редактирование записи
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