ADOQuery не видит временную таблицу
От: tmp_acnt Ад http://vk.com/id10256428
Дата: 01.07.07 13:43
Оценка:
в проекте есть всего пять запросов, первый из них содаёт временную таблицу и вызывает хранимую процедуру, остальные 4 должны выбирать данные из временной таблицы. Привожу в порядке выполнения.

QrySP_open: TADOQuery; //создаёт таблицу, вызывает хранимую процедуру
QrySelectDataUF: TADOQuery; //должен выбирать из временной таблицы,выкидывает исключение
QrySelectDataPhoto: TADOQuery;
QrySelectDataProv: TADOQuery;
QrySelectDataArchiv: TADOQuery;

привожу текст первых двух запросов

QrySP_open.SQL :=
//--------------------------
BEGIN TRANSACTION ZarplataReport;

if exists (select * from tempdb.dbo.sysobjects where id = object_id(N'[tempdb].[dbo].[ #per_tmp_ZarplataUFtable]'))
drop table #per_tmp_ZarplataUFtable

CREATE TABLE #per_tmp_ZarplataUFtable(
[FK_TypeWork] [int] NULL,
[nameTypeWork] [varchar](50) COLLATE Cyrillic_General_CI_AS NULL,
[FK_TypeDelo] [int] NULL,
[nameTypeDelo] [varchar](60) COLLATE Cyrillic_General_CI_AS NULL,
[FK_User] [int] NULL,
[UserFIO] [varchar](65) COLLATE Cyrillic_General_CI_AS NULL,
[CountForUser] [int] NULL, --сумма в рублях
[CountForUserYear] [int] NULL, --сумма в рублях
[WorkPrice] [money] NULL,
[SummForUser] [money] NULL, --сумма в рублях
[SummForUserYear] [money] NULL --сумма в рублях
) ;

exec dbo.per_ZarplataReportUF :BeginDate, :EndDate, :BeginYearDate, :EndYearDate

Второй запрос:
QrySelectDataUF.SQL :=
---Упрощённая форма (Операторы ПВМ)
select *
from #per_tmp_ZarplataUFtable
where FK_TypeWork = 1
order by FK_TypeWork, FK_TypeDelo, UserFIO;

Второй запрос не видит временную таблицу #per_tmp_ZarplataUFtable (выкидывает исключение), созданную в первом запросе.
Можно ли его заставить его её видеть, и если можно то как?


код вызова:
QrySP_open.Parameters.ParamByName('BeginDate').Value := DTPckrBeginDate.DateTime;
QrySP_open.Parameters.ParamByName('EndDate').Value := DTPckrEndDate.DateTime;
QrySP_open.Parameters.ParamByName('BeginYearDate').Value := DTPckrBeginDate.DateTime;
QrySP_open.Parameters.ParamByName('EndYearDate').Value := DTPckrEndDate.DateTime;

QrySP_open.Open(); //return all
QrySelectDataUF.Open(); //Exception
Всё сказанное выше — личное мнение, если не указано обратное.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.