Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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
14-76177
Alexei113
2003-02-08 11:56
2003.02.24
RasApi


7-76213
Infinity
2002-12-24 11:36
2003.02.24
Несколько вопросов о COM


1-75963
Qual
2003-02-11 14:44
2003.02.24
Клавиатура


1-76013
bsa
2003-02-13 09:25
2003.02.24
Delphi7 - компонент TPopupActionBar


14-76190
Антон
2003-02-08 12:48
2003.02.24
Помогите написать одну функцию...