![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Цикл по записям. [D6, dBase, FoxPro, Paradox]
DimonS © (2005-09-05 10:24:00)Объясните мне, тупому. Как можно и можно ли вообще выполнить цикл по БД с помощью запросов? Просто есть 2 связанные таблицы, и нужно перебрать записи в первой для сравнения некоторых записанных значений в них. с TTable вопросов нет, а можно ли так сделать в запросах?
DimonS (2005-09-06 07:40:00) [1]Да в общем-то я получил ответ на вопрос свой, дальше сам разберусь уже. Спасибо всем, кто ответил.
Ильш (2005-09-06 07:32:00) [2]интересно как без структуры таблиц можно разобраться?
чужой код потемки
DimonS (2005-09-06 02:03:00) [3]Да, оставил :) Разница по времени с Москвой у меня +6 ч, рабочее время закончилось..
В общем есть такой код:
Form3.Table1.Open;
while not Form3.Table1.Eof do
begin
if Form3.Table3.RecordCount=0 then
begin
ShowMessage('Äëÿ ýòîãî ÏË íåò çàïèñåé ïî çàðïëàòå!'+#10#13+'Åãî íóæíî óäàëèòü è âíåñòè çàíîâî!');
Form3.DBGrid1.Visible:=true;
Form3.DBGrid2.Visible:=true;
Form3.Button1.Enabled:=true;
exit;
end;
if Form3.Table1.FieldByName('Tabel1').AsString='' then Ch:=1 else Ch:=2;
if Form3.Table3.RecordCount
Ильш (2005-09-05 11:17:00) [4]
> ANB © (05.09.05 11:13) [9]
в этом варианте ваша правда
но вопрос был о другом вроде бы :)))
тока автор оставил нас один на один с нашей недоразвитой телепатией :))))
ANB (2005-09-05 11:13:00) [5]
> Ильш © (05.09.05 11:08) [8]
- если они существуют, то да :))) А если одна уже удалена или модиицирована или сравниваем старые и новые данные одной и той же таблицы ?
Ильш (2005-09-05 11:08:00) [6]
> Причем к моменту сравнения одного из них уже нет и существует
> он только в виде массива на клиенте.
м-да... что курили пациент?
сравнить 2 таблицы средствами SQL не проблема... надо тока подумать немного ;)
ANB (2005-09-05 11:06:00) [7]
> Sergey13 © (05.09.05 11:01) [6]
- а, забей. Мы друг друга поняли. Автор только куда то ушел. Наверное, пошел SQL учить.
Sergey13 (2005-09-05 11:01:00) [8]2 [5] ANB © (05.09.05 10:53)
Я и написал, что ИНОГДА. Понятно, что случаи бывают разные.
ANB (2005-09-05 10:53:00) [9]
> Sergey13 © (05.09.05 10:50) [4]
- мне тоже это приходится иногда делать. Когда нужно сравнить 2 набора данных, которые в идеале должны быть одинаковыми. Причем к моменту сравнения одного из них уже нет и существует он только в виде массива на клиенте.
Sergey13 (2005-09-05 10:50:00) [10]2[2] DimonS © (05.09.05 10:43)
>Ну вот иногда приходится.
Иногда это приходится делать из-за незнания SQL.
ANB (2005-09-05 10:49:00) [11]
> DimonS © (05.09.05 10:24)
- нужно уточнить задачу. Если количество строк в двух таблицах или наборах данных, полученных двумя запросами одинаково и есть связь один к одному - то без проблем, как в TTable, First, Next, Eof. Если соответствие неполное, то Locate (при больших НД - некошерно). Еще лучше написать запрос, который вернет совпадающие или несовпадающие по какому нибудь условию записи из нужной таблицы. Смотреть [NOT] EXIST.
DimonS (2005-09-05 10:43:00) [12]Ну вот иногда приходится.
Anatoly Podgoretsky (2005-09-05 10:26:00) [13]Конечно можно, но не нужно