Форум: "Базы";
Текущий архив: 2005.10.16;
Скачать: [xml.tar.bz2];
ВнизЦикл по записям. Найти похожие ветки
← →
DimonS © (2005-09-05 10:24) [0]Объясните мне, тупому. Как можно и можно ли вообще выполнить цикл по БД с помощью запросов? Просто есть 2 связанные таблицы, и нужно перебрать записи в первой для сравнения некоторых записанных значений в них. с TTable вопросов нет, а можно ли так сделать в запросах?
← →
Anatoly Podgoretsky © (2005-09-05 10:26) [1]Конечно можно, но не нужно
← →
DimonS © (2005-09-05 10:43) [2]Ну вот иногда приходится.
← →
ANB © (2005-09-05 10:49) [3]
> DimonS © (05.09.05 10:24)
- нужно уточнить задачу. Если количество строк в двух таблицах или наборах данных, полученных двумя запросами одинаково и есть связь один к одному - то без проблем, как в TTable, First, Next, Eof. Если соответствие неполное, то Locate (при больших НД - некошерно). Еще лучше написать запрос, который вернет совпадающие или несовпадающие по какому нибудь условию записи из нужной таблицы. Смотреть [NOT] EXIST.
← →
Sergey13 © (2005-09-05 10:50) [4]2[2] DimonS © (05.09.05 10:43)
>Ну вот иногда приходится.
Иногда это приходится делать из-за незнания SQL.
← →
ANB © (2005-09-05 10:53) [5]
> Sergey13 © (05.09.05 10:50) [4]
- мне тоже это приходится иногда делать. Когда нужно сравнить 2 набора данных, которые в идеале должны быть одинаковыми. Причем к моменту сравнения одного из них уже нет и существует он только в виде массива на клиенте.
← →
Sergey13 © (2005-09-05 11:01) [6]2 [5] ANB © (05.09.05 10:53)
Я и написал, что ИНОГДА. Понятно, что случаи бывают разные.
← →
ANB © (2005-09-05 11:06) [7]
> Sergey13 © (05.09.05 11:01) [6]
- а, забей. Мы друг друга поняли. Автор только куда то ушел. Наверное, пошел SQL учить.
← →
Ильш © (2005-09-05 11:08) [8]
> Причем к моменту сравнения одного из них уже нет и существует
> он только в виде массива на клиенте.
м-да... что курили пациент?
сравнить 2 таблицы средствами SQL не проблема... надо тока подумать немного ;)
← →
ANB © (2005-09-05 11:13) [9]
> Ильш © (05.09.05 11:08) [8]
- если они существуют, то да :))) А если одна уже удалена или модиицирована или сравниваем старые и новые данные одной и той же таблицы ?
← →
Ильш © (2005-09-05 11:17) [10]
> ANB © (05.09.05 11:13) [9]
в этом варианте ваша правда
но вопрос был о другом вроде бы :)))
тока автор оставил нас один на один с нашей недоразвитой телепатией :))))
← →
DimonS © (2005-09-06 02:03) [11]Да, оставил :) Разница по времени с Москвой у меня +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<Ch then
begin
ShowMessage("Â ÁÄ ïî çàðïëàòå çàíåñåí òîëüêî ìàøèíèñò!"+#10#13+"À â ÏË âíåñåí åùå è ïîìîøíèê!");
Form3.DBGrid1.Visible:=true;
Form3.DBGrid2.Visible:=true;
Form3.Button1.Enabled:=true;
exit;
end;
SP:=0;
SP:=Form3.Table1.fieldByName("CHas").AsCurrency;
Form3.Table2.First;
SN:=0;
while not Form3.Table2.Eof do
begin
Form3.Table2.Edit;
Form3.Table2.FieldByName("Prov").AsBoolean:=true;
Form3.Table2.Post;
SN:=SN+Form3.Table2.fieldByName("Chas").AsCurrency+Form3.Table2.fieldByName("Chas_per").AsCurrency+Form3.Table2.fieldByN ame("Chas_Prost").AsCurrency;
//Ïðîâåðêà íà ñîâïàäåíèå òåõíèêè â ÏË è ÒÒÍ
if Form3.Table2.fieldByName("Park").AsInteger<>Form3.Table1.fieldByName("Park").AsInteger then
begin
Form3.Label6.Caption:="Íå ñîâïàäàåò íîìåð ïàðêà!";
Vihod;
exit;
end;
if Form3.Table2.fieldByName("Nomer").AsString<>Form3.Table1.fieldByName("Nomer").AsString then
begin
Form3.Label6.Caption:="Íå ñîâïàäàåò íîìåð òåõíèêè â ÏË è ÒÒÍ! Îäèí ÷åëîâåê íå ìîæåò ðàáîòàòü ïî îäíîìó ÏË íà ðàçíîé òåõíèêå!";
Vihod;
exit;
end;
Мда, кодировка нета... Но в общем вроде понятно, хотя это только небольшой кусок кода. И вот как его можно реализовать через SQL?
← →
Ильш © (2005-09-06 07:32) [12]интересно как без структуры таблиц можно разобраться?
чужой код потемки
← →
DimonS © (2005-09-06 07:40) [13]Да в общем-то я получил ответ на вопрос свой, дальше сам разберусь уже. Спасибо всем, кто ответил.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2005.10.16;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.043 c