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

Вниз

работа с временной таблицей   Найти похожие ветки 

 
Tananda   (2003-04-23 13:04) [0]

Люди,помогите!
Вначале работы создаю временную таблицу в ADOQuery, в ней же ее и заполняю. Всё нормально. Другой Query хочу выбрать полученные данные из этой таблицы, а она говорит, что нет такой таблицы!
Временная локальная таблица должна быть видна в пределах данной сессии. Неужели каждая Кверя запускает свою сессию? И как это обойти?


 
NAlexey   (2003-04-23 13:14) [1]

Смотря какую таблицу создаешь, существует временная локальная и временная глобальная соответственно префиксы разные для локальноой - # для глобальной - ##.
Ну собственно вот:

Temporary Tables
You can create local and global temporary tables. Local temporary tables are visible only in the current session; global temporary tables are visible to all sessions.

Prefix local temporary table names with single number sign (#table_name), and prefix global temporary table names with a double number sign (##table_name).


 
Tananda   (2003-04-23 13:18) [2]

Ну да, эт я знаю. Локальная она у меня. и обе Квери к одному Коннекшену. В принципе, они ж должны в обной сессии быть? или я что-то не понимаю про сессии? А получается, что в разных :(
Глобальную временную заводить не могу - программа работает на нескольких рабочих местах.


 
stone   (2003-04-23 13:28) [3]

K #table_name ты можешь обратиться только из той процедуры (запроса), в которой она была создана, т.к. после окончания работы данной процедуры, #table_name автоматически уничтожается


 
NAlexey   (2003-04-23 13:38) [4]

>Глобальную временную заводить не могу - программа работает на нескольких рабочих местах.
А причем здесь рабочие места? Глобальная временная таблица заводится на сервере, и уничтожается когда создавший её запрос уходит и все ссылки на нее тоже.


 
Tananda   (2003-04-23 13:55) [5]

Табличка то у меня с определенным именем. Если на 3-х местах запустят эту прогу, одна создаст, другая очистит, третья уничтожит, а первая будет в недоумении куда всё делось :(
Как же ш мне быть?


 
NAlexey   (2003-04-23 14:22) [6]

>Если на 3-х местах запустят эту прогу, одна создаст, другая очистит, третья уничтожит, а первая будет в недоумении куда всё делось
При таком подходе не должна мне кажется использоваться временная таблица, она служит другим целям.


 
Tananda   (2003-04-23 16:04) [7]

Дарогой NAlexey! (Ну и все кто может)
Что же тогда предусмотрено для таких целей??? У меня сложный запрос, который бегает по куче табличек и возвращает результирующий набор данных. С этим набором данных мне надо еще работать - сортировать, выбирать и т.п. Причем желательно быстро. Люди, посоветуйте что-нить! ICQ 112384899


 
MOA   (2003-04-23 16:29) [8]

А как Вы в одном запросе и создаёте и вставляете? Не используете ли GO? Или процедуры?
Удачи!


 
NAlexey   (2003-04-23 16:42) [9]

>Не используете ли GO?
Правильная мысль.


 
AM   (2003-04-23 16:46) [10]

>>Tananda (23.04.03 13:55)
>>Табличка то у меня с определенным именем. Если на 3-х местах
>>запустят эту прогу, одна создаст, другая очистит, третья
>>уничтожит, а первая будет в недоумении куда всё делось :(
>>Как же ш мне быть?

Если я правильно понял, тебе нужна временная таблица, к которой имел доступ только тот человек, который его создает.

Вот один из вариантов:
Создается глобальная временная таблица ##table_name, где в место table_name генерируешь уникальное имя именно для данного клиента БД.
Как это сделать? Например в названии создаваемой таблицы использовать имя компьютера на котором она (программа) запускается, ведь в локальной сети могут быть только уникальные имена компьютеров. Например имя компьютера Nikolay, то название таблицы можно сделать ##TabTmpNikolay. Но тут конечно надо поставить (внутри программы) ограничение, что на одной машине может запускаться только одна копия программы.

Примечание: В названии таблиц символ "-"нельзя использовать (по крайней мере в MSSQL7.0), а компьютерам давать можно, так что тебе надо следить за этим и заменять его на другой символ.

А на самом деле вариантов много...



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2003.05.15;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.011 c
3-46648
Doomalka
2003-04-24 15:14
2003.05.15
Blob


3-46637
ki11er
2003-04-23 18:32
2003.05.15
Почему может расти PDOXUSRS.LCK?


3-46640
softmaster
2003-04-15 23:03
2003.05.15
логический тип


4-47040
bug008
2003-03-12 20:36
2003.05.15
Как отловить нажатие Enter на EDIT


3-46651
galexis
2003-04-24 16:29
2003.05.15
Помогите составить правильный SQL запрос.





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский