![]() |
|
|
#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 |