Главная страница
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.031 c
6-1139390426
Lynx_rus
2006-02-08 12:20
2006.06.11
Выбор Dialap- соеденения


15-1148038665
Pazitron_Brain
2006-05-19 15:37
2006.06.11
Что думаете об MMORPG?


2-1148281922
deltav1
2006-05-22 11:12
2006.06.11
Время


3-1145259950
eclipse
2006-04-17 11:45
2006.06.11
Базы данных... формат $ (money)


2-1148390088
rra
2006-05-23 17:14
2006.06.11
Заполнение DBLookupComboBox a из поля таблицы...