![]() |
|
|
|
|
#1
|
|||
|
|||
|
Всем добра! Проблема такая...есть 2 adoquery. в обоих есть столбец с данными "ГН". Нужно сделать так чтобы в адо2 выгрузилось время которое соответсвует "ГН" в адо1. в адо2 "ГН" в 4 столбце, в адо1 "ГН" во 2 столбце, "время" указано в 4 столбце. Нужно данные из столбца 4 адо1 соответствующие "ГН" записать в столбец 5 адо2. С циклами у меня туго, поогите пожалуйста написать код
|
|
#2
|
||||
|
||||
|
Цитата:
Циклами так: Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
ADOQuery1.First;
while not ADOQuery1.Eof do
begin
if ADOQuery2.Locate('ГН', ADOQuery1['ГН'], []) then
begin
ADOQuery2.Edit;
ADOQuery2['Время'] := ADOQuery1['Время'];
ADOQuery2.Post;
end;
ADOQuery1.Next;
end;
end; |
|
#3
|
|||
|
|||
|
сделал как ты посоветовал, но он у меня не находит идентичные гаражные...проверял через точку остановы. у меня запрос из базы организуется с обрезанием имени "ГН"
Код:
ADOQuery1.SQL.Add('select * from (SELECT *, IIF(unit = "Ñ÷èòûâàòåëü 2-2", "çàåçä", "âûåçä") as new_str, mid(name,10) as new_str1 FROM events where events.message = "ïðîõîä ñîâåðøåí")order by new_str1'); |
|
#4
|
||||
|
||||
|
Цитата:
И ещё у метода Locate есть параметр loPartialKey который позволяет искать по частичному совпадению: Код:
ADOQuery2.Locate('ГН', ADOQuery1['ГН'], [loPartialKey]); |
|
#5
|
|||
|
|||
|
для проверки ввел две переменные, в отладчике смотрю, они обе равны "103". Но все равно пробегает мимо бегина с эдитом
Код:
begin
ADOQuery2.First;
while not ADOQuery1.Eof do
begin
d:= ADOQuery1['new_str1'];
f:= ADOQuery2['garn'];
if ADOQuery2.Locate('garn', ADOQuery1['new_str1'], []) then
begin
ADOQuery2.Edit;
k := ADOQuery1['datetime'];
ADOQuery2.Post;
end;
ADOQuery2.Next;
end;
end;вставил поиск по части имени, тоже не помогло |
|
#6
|
||||
|
||||
|
Цитата:
Попробуй так: Код:
if ADOQuery2.Locate('garn', ADOQuery1.FieldByName('new_str1').AsInteger, []) then |