Текущий архив: 2003.02.24;
Скачать: CL | DM;
Вниз
Как передать имя таблицы при вызове процедуры Найти похожие ветки
← →
Kalinka (2003-02-06 10:38) [0]Доброе утро всем!
У меня MS SQL Server 7
Проблема: из Delphi я выполняю некую удаленную процедуру (передаю ей всяческие там параметры и т.д.). В процедуре создается таблица.
Вопрос: Можно ли как-нибудь из Delphi задать имя таблицы, которую я создаю в процедуре. (Может что-то вроде параметра)
Например:
-Пользователь Сидоров запустил программу, выполнил действие, после которого на сервере сздается таблица с именем: Z_Sidorov
-Пользователь Петров запустил программу, выполнил действие, после которого на сервере сздается таблица с именем: Z_Petrov
и т.д.
При этом создание таблицы происходит только в теле удаленной процедуры.
← →
stone © (2003-02-06 10:42) [1]Можно
← →
RedKat © (2003-02-06 10:43) [2]Чей-то это в теорию БД не вписывается ?
Как потом с этими таблицами работать из клиента ?
Это-ж таблиц можно насоздавать XXXXXX штук ?
Может как-то по другому делать ? А
← →
stone © (2003-02-06 10:43) [3]...но для этого надо переписать процедуру, по крайней мере ту часть, в которой создается таблица
← →
Kalinka (2003-02-06 10:58) [4]To RedKat: а как по другому делать? и XXXXXX штук таблиц я не насоздаю: я их при выходе из программы удаляю. Эти таблицы не постоянные, а глобальные временные
To stone: и как переписать эту часть процедуры?
например:
create table ##tmp_invent_new(Otdel char(1), Brand varchar(150), Cod_Artic varchar(30), Qty_Buch int, SaveDateTime datetime, InventDate datetime)
insert into ##tmp_invent_new
select a.Otdel, a.Brand, a.Cod_Artic,
(isNull(a.kon_kolch, 0) - isNull(b.count_in_docs, 0)) as qty_buch,
(case isNull(b.SaveDateTime, "01/01/00") when "01/01/00" then a.SaveDateTime else b.SaveDateTime end) as SaveDateTime,
a.InventDate
from #kon_kolch a full join #count_in_docs b on b.cod_artic = a.cod_artic
order by a.otdel, a.brand, a.InventDate, SaveDateTime
мне нужно, чтобы имя таблице (здесь ##tmp_invent_new) задавалось из программы и было что-то вроде ##tmp_invent_petrov, ##tmp_invent_sidorov
← →
stone © (2003-02-06 11:11) [5]create procedure ....(@TableName varchar(50).....)
as
exec("create table " + @TableName + "(Otdel char(1), Brand varchar(150), Cod_Artic varchar(30), Qty_Buch int, SaveDateTime datetime, InventDate datetime)")
далее по аналогии
← →
Kalinka (2003-02-06 11:39) [6]to stone: спасибо, попробую сделать так. Ура!
← →
Kalinka (2003-02-06 12:19) [7]Спасибо всем,
Работает!
Страницы: 1 вся ветка
Текущий архив: 2003.02.24;
Скачать: CL | DM;
Память: 0.48 MB
Время: 0.013 c