![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Можно ли в ХП в качестве параметра передовать имя таблицы? [IB6.x]
cranium © (2003-01-21 20:32:00)Можно ли в ХП в качестве параметра передовать имя таблицы? То есть в
SELECT *
FROM (входящий параметр или переменная)
Delirium^.Tremens (2003-01-22 18:03:00) [1]Ditrix © (22.01.03 17:55)
И какое отношение ЭТО имеет к ХП(хранимым процедурам)?
Ditrix (2003-01-22 17:55:00) [2]RxQuery позволяет в тексте запроса использовать макросы
например
select * from %TableName
а перед вызовом:
Query.MacroByName("TableName").AsString:= yourTableName
DimanGR (2003-01-22 11:23:00) [3]В RX-овых компонентах есть нечто подобное, только называется не параметр, а макрос.
BlackTiger (2003-01-22 10:40:00) [4]Да, на тип базы-то я и не посмотрел, звиняюсь.
А может тогда просто формировать текст самой процедуры
СОЗДАЛ-ЗАПУСТИЛ-УДАЛИЛ?
Delirium^.Tremens (2003-01-22 10:12:00) [5]simple2003 (22.01.03 09:27)
> А почему бы не формировать запрос "вручную"? Это же просто
> текст.
В IB, хранимые процедуры компилируются в BLR - язык понятный серверу, ему некогда разбирать "на лету" этот Ваш текст.
simple2003 (2003-01-22 09:27:00) [6]А почему бы не формировать запрос "вручную"? Это же просто текст.
Digitman (2003-01-22 09:04:00) [7]>cranium
В IB - нет. В FB - можно.
Синтаксис PSQL FB1.5 позволяет выполнять динамически конструируемые в ходе выполнения SP/триггера select-запросы
Reindeer Moss Eater (2003-01-22 08:58:00) [8]Можно ли в ХП в качестве параметра передовать имя таблицы
Даже имя любимой девушки можно, а не только таблицы
Johnmen (2003-01-22 00:48:00) [9]>BlackTiger (21.01.03 20:52)
Откуда это ? Из MS SQL ? А он то здесь причем ?
>cranium © (21.01.03 20:32)
Нет
skirdov (2003-01-21 21:18:00) [10]2 cranium
однако, как показывает практика, команды выполняемые через Exec () работают несколько медленнее чем без него, имей это в виду. Но другого способа я тоже пока не знаю.
BlackTiger (2003-01-21 20:52:00) [11]
CREATE PROCEDURE sp_procedure(@table_name varchar(100))
AS
BEGIN
DECLARE @sql varchar(2000)
SET @sql = "SELECT * FROM "+@table_name
EXEC(@sql)
END