Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.02.24;
Скачать: [xml.tar.bz2];

Вниз

Как передать имя таблицы при вызове процедуры   Найти похожие ветки 

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.009 c
1-75870
Kair
2003-02-13 20:33
2003.02.24
Расширение файла


1-75929
botton
2003-02-14 17:16
2003.02.24
флэш


1-75905
Юный_программер
2003-02-14 12:22
2003.02.24
Как запускать внешние программы? допустим команда copy и как полу


4-76242
mate
2003-01-10 15:32
2003.02.24
OutLook...


8-76037
Ciber SLasH
2002-11-12 03:40
2003.02.24
Памагите с функцией mciSendString





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский