Форум: "Базы";
Текущий архив: 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.008 c