![]() |
|
#1
|
|||
|
|||
![]() Есть таблица Sost, у нее единственное поле Sostoyanie. В Delphi обновляю его так:
Код:
ADOQuery5.Active := false; ADOQuery5.SQL.Clear; ADOQuery5.SQL.Add('Update Sost SET Sostoyanie= "' + Label27.Caption + '";'); ADOQuery5.ExecSQL; ADOQuery5.SQL.Clear; ADOQuery5.SQL.Add('SELECT * FROM Каналы'); ADOQuery5.Active := true; Что не так? |
#2
|
||||
|
||||
![]() Во-первых, если не матерится - значит в таблице нет ключевого поля, настоятельно рекомендую его добавить.
Во-вторых, оно все заменяет, надо только делать рефреш таблицы(но тут никуда без ключевого поля), потому - Код:
ADOTable1.Active:=false; ADOTable1.Active:=true; И, еще, Update без where заменит тебе ВСЕ поля таблицы. Измени запрос: Код:
'Update Таблица1 SET Sost= "' + Label27.Caption + '" where sost="'+Edit1.Text+'"' Код:
ADOQuery5.Active := false; ADOQuery5.SQL.Clear; ADOQuery5.SQL.Add('Update Таблица1 SET Sost= "' + Label27.Caption + '" where sost="'+Edit1.Text+'"'); ADOQuery5.ExecSQL; ADOTable1.Active:=false; ADOTable1.Active:=true; ADOQuery5.SQL.Clear; ADOQuery5.SQL.Add('SELECT * FROM Каналы'); ADOQuery5.Active := true; |
#3
|
||||
|
||||
![]() Цитата:
Код:
with ADOQuery5 do Close; SQL.Clear; SQL.Add('update sost set sostoyanie = ''' + label27.caption + ''''); ExecSQL; SQL.Clear; SQL.Add('select * from Каналы'); Open; end; Google в помощь |
#4
|
|||
|
|||
![]() Спасибо за отклики...Уже и не надеялся на ответы...:-)
Guroncheg прав. Не работало потому что ключевого поля не было. Однако, стоит заметить, что Update может работать и без ключевого поля, но заменяемая ячейка не должна быть пустой (как было у меня). Вобщем, всем спасибо..) |