![]() |
|
|
#1
|
||||
|
||||
|
Здравствуйте! У меня такой вопрос: как организовать поиск по полю id через adotable locate чтобы в другом поле произвести изменение записи?
Вот, что я написала: Код:
begin
ADOTable1.Open;
if ADOTable1.Locate('Id_s',4, [loCaseInsensitive, loPartialKey]) then
begin
Form5.ADOQuery1.Edit;
Form5.ADOQuery1.FieldByName('Doljnost').AsString:='56';
Form5.ADOQuery1.Post;
end; |
|
#2
|
||||
|
||||
|
Когда же уже перестанут этой порнографией пользоваться и начнут работать с наборами данных, а не с их обёртками…
Используйте выборку, а не локейт. |
|
#3
|
||||
|
||||
|
Мне нужно реализовать через Locate.
|
|
#4
|
||||
|
||||
|
Тогда попробуйте сделать так
Код:
ADOTable1.Open;
ADOTable1.Locate('Id_s', 4, [loCaseInsensitive, loPartialKey]);
if ADOTable1.FieldValues['Id_s'] = 4 then with Form5.ADOQuery1 do
begin
Edit;
FieldByName('Doljnost').AsString:='56';
Post;
end; |
| Этот пользователь сказал Спасибо Alegun за это полезное сообщение: | ||
Angel_A (13.12.2014)
| ||
|
#5
|
||||
|
||||
|
Он не проходит по всем id_s, а меняет это в первой строчке.
|
|
#6
|
||||
|
||||
|
Только что проверил на временной таблице - поиск работает, значение в другом поле изменяется - видимо загвоздка в Form5.ADOQuery1 т.к. фокус есть на первой записи и не изменяется
|
|
#7
|
||||
|
||||
|
У меня таблица Сотрудники. И нужно чтобы он прошелся по всем Id_s, и нашел то, которое нужно, в данном случае, это 4. А в столбце Doljnost поменял значение. По этому коду, у меня меняет только в первой записи.
|
|
#8
|
||||
|
||||
|
Нужный столбец в этой же таблице? а вы хотите поменять что-то через запрос, меняйте в ADOTable1
|
|
#9
|
||||
|
||||
|
Цитата:
|