Форум: "Базы";
Текущий архив: 2002.08.26;
Скачать: [xml.tar.bz2];
Вниз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 вся ветка
Форум: "Базы";
Текущий архив: 2002.08.26;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.006 c