Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Цикл по записям. [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]

Конечно можно, но не нужно


Наверх

Титульная страница Поиск, карта сайта Написать письмо