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

Вниз

Синтаксис Query   Найти похожие ветки 

 
Skulll ©   (2004-05-07 17:01) [0]


 SELECT n.id_price, n.id_sklad
   FROM nakl_in n
   WHERE n.id_nakl_in=:id_nakl_in
   INTO :ID_PRICE1, :ID_SKLAD
;
 SELECT s.id_price
   FROM sklad s
   WHERE s.id_sklad=:ID_SKLAD
   INTO :ID_PRICE2
 ;
 EXECUTE PROCEDURE price_copy (:ID_PRICE1, :ID_PRICE2);

Делфа не понимает INTO в Select в Query.
Модно ли в Query использовать локальные переменные?
Хранимую процедуру сделять не представляется возможным.


 
Мунька ©   (2004-05-07 17:06) [1]

Чего то я не понимаю, а причем здесь INTO к SELECT? Вы хотите как-то по-особому назвать извлеченные данные? Или что?
Или INTO - особенность Интербэйса?


 
HSolo ©   (2004-05-07 17:16) [2]

>Хранимую процедуру сделять не представляется возможным
Так - да :) А зачем ее с клиента создавать?

На сервере:
create procedure New_Procedure (входные_параметры)
returns (выходные_параметры)
as
begin
 /* Procedure Text */
 suspend;
end

На клиенте:
select ... from New_Procedure (входные_параметры)


 
Skulll ©   (2004-05-07 17:24) [3]

>Мунька
>INTO - особенность Интербэйса?
Это я догодывался, я так для примера привел

>HSolo
У меня сервер Cache. Он тоже INTO в SELECT не понимает.

Вот можно ли какнибудь в стандартном SQL(QUERY) не зависящем от Interbase"а использовать локальные переменные, т.е обьявить та их можно но как в них из select"а передать значения


 
Nikolay M. ©   (2004-05-07 17:41) [4]

Какие-то почесывание левой ногой, имхо.
Почему пример из сабжа просто не сделать одним запросом? Не нужны будут никакие переменные.


 
Мунька ©   (2004-05-07 17:44) [5]

Параметризованный запрос
sqltxt = "DELETE FROM TableHistory " + AnsiString("\n");
sqltxt =  sqltxt  + "WHERE UserId =" + IntToStr(UserId);
sqltxt += " AND (DateTimeEvent BETWEEN :DTEB AND :DTEE) ";
//:DTEB, :DTEE - параметры, их отличительная особенность :

ADODelHist->SQL->Clear();
  ADODelHist->SQL->Add(sqltxt);
  try
  {

    //Здесь в параметры передаются значения
      ADODelHist->Parameters->ParamByName(WideString("DTEB"))->Value = BDT;
      ADODelHist->Parameters->ParamByName(WideString("DTEE"))->Value = EDT;
   
   if (!ADODelHist->Prepared)
       ADODelHist->Prepared = true;
  ADODelHist->ExecSQL() ;
  }
  catch(...)
  {
   ModalResult = mrCancel;
   return;
  }


 
HSolo ©   (2004-05-07 17:51) [6]

Про Cache я не знаю ничего, кроме факта его существования :( Но, может, Вам достаточно выполнить с клиента примерно такой запрос:

SELECT n.id_price id_price1, n.id_sklad, s.id_price id_price2
  FROM nakl_in n
  JOIN sklad s on s.id_sklad = n.id_sklad
  WHERE n.id_nakl_in = :id_nakl_in

(с точностью до синтаксиса - не знаю, как выглядит join в cache)


 
Skulll ©   (2004-05-08 10:32) [7]

>Nikolay M.
>Почему пример из сабжа просто не сделать одним запросом? Не >нужны будут никакие переменные.
Это и есть один запрос. Правдо я про ";" забыл, надо наверное SET TERM.

>Мунька ©
у меня задача немного другая.
:id_nakl_in - входной параметр
ID_PRICE1, :ID_PRICE2, :ID_SKLAD - локальные переменные определяемые через :id_nakl_in
Выходных параметров нет.

Вообще я нашен немного геморойный, но выход. Надо на каждый блок создовани свой запрос.
Блок 1

SELECT n.id_price, n.id_sklad
  FROM nakl_in n
  WHERE n.id_nakl_in=:id_nakl_in
  INTO :ID_PRICE1, :ID_SKLAD

Блок 2

SELECT s.id_price
  FROM sklad s
  WHERE s.id_sklad=:ID_SKLAD
  INTO :ID_PRICE2

Блок 3

EXECUTE PROCEDURE price_copy (:ID_PRICE1, :ID_PRICE2)

Но у меня price_copy состоит из четырех блоков с циклом.
Как я понял SQL Query нельзя такое проделять


 
Desdechado ©   (2004-05-08 15:09) [8]

а что, вызвать квери 3 раза с разным текстом запроса нельзя?
имхе, самый простой выход



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

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

Наверх




Память: 0.49 MB
Время: 0.055 c
14-1084354990
xman
2004-05-12 13:43
2004.05.30
Ассемблер


14-1084425781
Мазут Береговой
2004-05-13 09:23
2004.05.30
Ужасные новости для тех, кто собирается долго жить!


6-1081443598
Coder
2004-04-08 20:59
2004.05.30
Indy


1-1084800303
Developerr
2004-05-17 17:25
2004.05.30
ShowModal и Show


14-1084302337
Drakon
2004-05-11 23:05
2004.05.30
Математические алгоритмы вычисления Sin, Cos, Tan