Форум: "Базы";
Текущий архив: 2002.05.09;
Скачать: [xml.tar.bz2];
ВнизКак подставить значение поля в sql-запрос Найти похожие ветки
← →
bos (2002-04-11 17:23) [0]Есть таблица, в которой одно из полей (TABLENAME) тип varchar содежит названия других таблиц;
как в запросе получив значение TABLENAME, пусть это будет "table1", получить данные из таблицы table1?
все крутится на Interbase 6
← →
Johnmen (2002-04-11 17:29) [1]Только несколькими запросами.
Первый вытаскивает названия таблиц, остальные формируются динамически, и только так !
← →
bos (2002-04-11 18:01) [2]:(
А в хранимой процедуре?
← →
Леха_ (2002-04-11 18:08) [3]В хранимой процедуре без проблем
← →
kaif (2002-04-11 21:25) [4]>Леха_ (11.04.02 18:08)
>В хранимой процедуре без проблем
Да?????????
А как конкретно?
← →
Deniz (2002-04-12 06:10) [5]На клиенте без проблем
Query1.SQL.Clear;
Query1.SQL.Add("select * from "+TableName);
Query1.Open;
В хранимой процедуре такое не пойдет. Если заранее известен список таблиц, то путем перебора:
Create procedure ProcName(TableName varchar(25))
returns (...)
as begin
if (:TableName = "Table1") then
select * from Table1 into ...;
if (:TableName = "Table2") then
select * from Table2 into ...;
if (:TableName = "Table3") then
select * from Table3 into ...;
...
suspend;
end;
А если список таблиц не известен, то увы...
← →
roottim (2002-04-12 08:35) [6]хоть ХП, хоть на клиенте.. всеравно запрос будет составлен динамически на основе другого!
лучший вариант конечно Johnmen © (11.04.02 17:29)
← →
kaif (2002-04-16 13:23) [7]Правильный ответ только у Deniz © (12.04.02 06:10).
В IB макроподстановка имени таблицы в запрос в хранимой процедуре не допускается. На клиенте - без проблем.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2002.05.09;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.005 c