Вниз
Скачать: CL | DM;

local SQL   Найти похожие ветки 

← →
777 ©   (2002-08-05 15:50) [0]

почему такой запрос (local SQL)
select
id,
name,
(select name from sp_nasp where cod=sql_.gor)
from sql_

возвращает 2 заполненных поля, а третье остается
пустым?
И если значение во вложенном запросе указать явно
(например cod=5), то всё работает как надо.

Сл-но возникает вопрос: а как тогда в таком
запросе объявить переменную, присваивать ей
динамически значение поля sql_.gor и затем
подставлять во вложенную процедуру?
Или есть иной выход?


← →
sniknik ©   (2002-08-05 16:15) [1]

обьявить переменную в local SQL или процедуру невозможно.
можно иметь переменную для передачи значения в запрос.
а значит парой запросов все решается, первый получает значение и передает во второй.
пример параметра
Query2.SQL.Clear;

Query2.SQL.Add("INSERT INTO COUNTRY (NAME, CAPITAL, POPULATION)");
Query2.SQL.Add("VALUES (:Name, :Capital, :Population)");

Query2.Params[0].AsString := "Liechtenstein";
Query2.Params[1].AsString := "Vaduz";
Query2.Params[2].AsInteger := 420000;
Query2.ExecSQL;



← →
Дмитрий Калугин   (2002-08-05 18:16) [2]

К параметрам удобнее обращаться по имени,
чтобы не было путаницы при изменении порядка выборки полей:

Query2.ParamByName("Name").AsString:= "Liechtenstein";



← →
Juve ©   (2002-08-05 23:59) [3]

А может просто в базе есть пустое значение "cod" и "sql_.gor"???


← →
ЮЮ ©   (2002-08-06 02:45) [4]

А ещё предлагаю "объединять" таблицы так, как это положено,
без вызовов подзапросов в строке запроса:

select sql_.id,sql_.name,sp_nasp.name as gorName
flom sql_
left join sp_nasp on sql_.gor=sp_nasp.cod


← →
Emfi   (2002-08-06 09:45) [5]

Согласен с ЮЮ
Тут напрашивается join.



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

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.011 c
1-84992
Nazareth
2002-08-15 15:06
2002.08.26
Проблема с TTimeStamp под Delphi 6


1-85120
Sergey V. Shadrin
2002-08-15 08:58
2002.08.26
запустить программу


1-85080
kerkonst
2002-08-14 11:16
2002.08.26
Подсветка синтаксиса С++


3-84892
Alibaba
2002-08-06 10:46
2002.08.26
ExecSQL


14-85215
XXL
2002-07-31 00:50
2002.08.26
BomberMan!!!!!!




   Наверх