Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.06.11;
Скачать: CL | DM;

Вниз

Цикл в хранимой процедуре   Найти похожие ветки 

 
RomanH ©   (2006-04-17 14:17) [0]

Мастера подскажите каким образом можно сделать такую конструкцию
While not DataSet1.EOF do
begin
      if DataSet1.FieldValue[N1]=DataSet2.FieldValue[N1] then
                             Действие1
     else
                             Действие2    
end;

 в хранимой процедуре.


 
RomanH ©   (2006-04-17 14:19) [1]

Извините Next забыл набисать
While not DataSet1.EOF do
begin
     if DataSet1.FieldValue[N1]=DataSet2.FieldValue[N1] then
                            Действие1
    else
                            Действие2    
     DataSet1.Next;
end;


 
Johnmen ©   (2006-04-17 14:24) [2]

FOR SELECT ...

А почему ты не читаешь документацию?


 
RomanH ©   (2006-04-17 14:46) [3]

Я читаю документацию (LangRef.pdf) .Не могу понять как это работает

select count(*) from Table1 into Rec_Count;
if (i<=Rec_Count) do
begin
for select N1 from Table1 into :NN1 do
  begin
        select N1 from Table 2 into :NN2
        if NN1=NN2 then Действие
  end
i=i+1;
end;

Подскажите в таком случае будут ли все значения N1 из Table1 сравниваться со всеми значениями Table2.


 
Johnmen ©   (2006-04-17 14:54) [4]


> Подскажите в таком случае будут ли все значения N1 из Table1
> сравниваться со всеми значениями Table2.


Не понял... Каждое с каждым что ли??? Зачем???
Что вообще надо?


 
RomanH ©   (2006-04-17 15:01) [5]

Имеются таблицы Table1 и Table2.
В хранимой процедуре необходимо сравнить значения из Table1 со значениями Table2. Если такие записи существуют то их надо удалить из Table1. Оставшиеся записи таблицы Table1 добавить  в Table2.


 
Desdechado ©   (2006-04-17 15:07) [6]

если сравнение по одному полю, то все проще
delete from T1 where N1 IN( select N2 from T2 );
insert into t2 select * from t1


 
Johnmen ©   (2006-04-17 15:09) [7]

1. DELETE FROM Table1 T1 WHERE EXISTS (SELECT 1 FROM Table2 T2 WHERE T1.Field=T2.Field)
2. INSERT INTO Table2 SELECT * FROM Table1


 
RomanH ©   (2006-04-17 15:18) [8]


> Johnmen ©

Подскажите где можно почитать про понимание языка SQL.
Мне бы тоже хотелось бы как вы, все это реализовать двумя строчками.
Да вторую строку я понимаю полностью а вот с первой ни как не соображу.
DELETE FROM Table1 T1 WHERE EXISTS (SELECT 1 FROM Table2 T2 T1.Field=T2.Field)


 
Sergey13 ©   (2006-04-17 15:25) [9]

2 [8] RomanH ©   (17.04.06 15:18)
DELETE FROM Table1 T1 WHERE EXISTS (SELECT 1 FROM Table2 T2 T1.Field=T2.Field)
Подстрочник.
Удалить из таблицы1 записи, для которых существует хотя бы одна запись в таблице2 с кодом, таким же как и в таблице1.
8-)
ЗЫ: Поиши в сети по "ГРУБЕР + SQL" для понимания.


 
Johnmen ©   (2006-04-17 15:27) [10]

Да в том же самом LangRef.pdf про всё это написано. В спецификации команд SELECT и DELETE.
Ещё полезно просто спецификацию SQL92 почитать. Где искать не скажу, не помню...



Страницы: 1 вся ветка

Текущий архив: 2006.06.11;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.029 c
2-1148808107
antonn
2006-05-28 13:21
2006.06.11
Курсор и Хинт формы


9-1131295547
Friendship
2005-11-06 19:45
2006.06.11
Помогите пожалуйста разрешить одну проблему


1-1146830214
Ярослав
2006-05-05 15:56
2006.06.11
Обращение к компонентам размещенным на MDI


1-1146951293
Германн
2006-05-07 01:34
2006.06.11
String, PChar и {$H+}/{$H-}


15-1147698344
matt
2006-05-15 17:05
2006.06.11
Модули Perl