Курсор
Задача стоит так, нужно чтобы курсор "как бы" выводил табицу.
Я все написал, до поры до времени все рабит на ура, но вот только когда наступает момент вставки данных в эту "как бы" таблицу - все пусто. Подскажите что не так???
Вот код:
use Shoot
go
declare
@Num_doc varchar(100),
@Data varchar(100),
@Year varchar(10),
@Struct varchar (10),
@Post varchar (100),
@Fio varchar (100),
@Tab varchar (40),
@QD varchar (40),
@AD varchar (40),
@PD varchar (40),
@Desc varchar (1000),
@DPH varchar (40),
@Basis varchar (100),
@Message varchar(max),
@Mes varchar (8000),
@ORG varchar (100)
select @ORG='ООО «Газпром добыча Надым»'
select @Num_doc='23'
select @Data='15.12.08г.'
select @Year='2009'
declare Cursor_Table cursor local for
select dbo.Doc_Schedule_of_Holidays.Number_Doc,dbo.Doc_Schedule_of_Holidays.Data,dbo.Doc_Schedule_of_Holidays.[Year]
FROM dbo.Doc_Schedule_of_Holidays
OPEN Cursor_Table
FETCH NEXT FROM Cursor_Table INTO @Num_doc,@Data,@Year
SELECT @Message='
Унифицированная форма № Т-7
Утверждена постановлением Госкомстата РФ
от 5 января 2004 г. № 1
| Код |
Форма по ОКУД |0301020|'
select @Message=@Message+'
'+@ORG+' '+'
по ОКПО | |'
CLOSE Cursor_Table
DEALLOCATE Cursor_Table
select @Message=@Message+'
Мнение выборного профсоюзного органа УТВЕРЖДАЮ
от “ "________20 г. №______учтено Руководитель______________
| Номер | Дата |На год |
|документа |составления| |_______________
ГРАФИК ОТПУСКОВ |'+@Num_doc+'|'+@Data+'|'+@Year+'|
“ ”________20 г.'
print @Message
declare Cursor_Employee CURSOR LOCAL FOR
select Name_Struct,Name_Post,FIO,dbo.Employee.Tab_Number,Quantity_Day,Plan_Date,Actual_Date,Basis,Date_Of_ProspectiveHoliday,Description
from dbo.Employee
inner join dbo.Structural_Division on dbo.Structural_Division.ID_Struct=dbo.Employee.ID_Struct
inner join dbo.Post on dbo.Post.ID_Post=dbo.Employee.ID_Post
inner join dbo.Doc_Schedule_of_Holidays on dbo.Doc_Schedule_of_Holidays.Tab_Number=dbo.Employee.Tab_Number
inner join dbo.Holiday on dbo.Holiday.ID_Holi=dbo.Doc_Schedule_of_Holidays.ID_Holi
inner join dbo.Date on dbo.Date.ID_Date=dbo.Holiday.ID_Date
left join dbo.Holiday_Transferring on dbo.Holiday_Transferring.ID_HT=dbo.Holiday.ID_HT
where dbo.Employee.Tab_Number<1120
open Cursor_Employee
FETCH NEXT FROM Cursor_Employee into @Struct,@Post,@Fio,@Tab,@QD,@PD,@AD,@Basis,@DPH,@Desc
select @Message=@Message+'
_____________________________________________________________________________________________________________________________
|Структурное | Должность | Фамилия, | |____________________ОТПУСК____________________________________________|
|подразделение |(специальность,| имя, |Табельный |количество |______дата________|___перенесение отпуска___| |
| | профессия) | отчество | номер |календарных|заплани-|фактичес-| основание | дата пред- | Примечание |
| | по штатному | | | дней |рованная| кая | (документ) | полагаемо- | |
| | расписанию | | | | | | | го отпуска| |
_____________________________________________________________________________________________________________________________
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
_____________________________________________________________________________________________________________________________'
print @Message
WHILE @@FETCH_STATUS=0
begin
select @Message=@Message+'
|'+@Struct+' |'+@Post+' |'+@Fio+' |'+@Tab+' |'+@QD+' |'+@PD+' |'+@AD+' |'+@Basis+' |'+@DPH+' |'+@Desc+' |'
FETCH NEXT FROM Cursor_Employee into @Struct,@Post,@Fio,@Tab,@QD,@PD,@AD,@Basis,@DPH,@Desc
print @Message
end
select @Mes='123'
print @Mes
--Все работает до вот этого момента:
Унифицированная форма № Т-7
Утверждена постановлением Госкомстата РФ
от 5 января 2004 г. № 1
| Код |
Форма по ОКУД |0301020|
ООО «Газпром добыча Надым»
по ОКПО | |
Мнение выборного профсоюзного органа УТВЕРЖДАЮ
от “ "________20 г. №______учтено Руководитель______________
| Номер | Дата |На год |
|документа |составления| |_______________
ГРАФИК ОТПУСКОВ |23|Dec 15 2008 12:00AM|2009|
“ ”________20 г.
Унифицированная форма № Т-7
Утверждена постановлением Госкомстата РФ
от 5 января 2004 г. № 1
| Код |
Форма по ОКУД |0301020|
ООО «Газпром добыча Надым»
по ОКПО | |
Мнение выборного профсоюзного органа УТВЕРЖДАЮ
от “ "________20 г. №______учтено Руководитель______________
| Номер | Дата |На год |
|документа |составления| |_______________
ГРАФИК ОТПУСКОВ |23|Dec 15 2008 12:00AM|2009|
“ ”________20 г.
_____________________________________________________________________________________________________________________________
|Структурное | Должность | Фамилия, | |____________________ОТПУСК____________________________________________|
|подразделение |(специальность,| имя, |Табельный |количество |______дата________|___перенесение отпуска___| |
| | профессия) | отчество | номер |календарных|заплани-|фактичес-| основание | дата пред- | Примечание |
| | по штатному | | | дней |рованная| кая | (документ) | полагаемо- | |
| | расписанию | | | | | | | го отпуска| |
_____________________________________________________________________________________________________________________________
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
_____________________________________________________________________________________________________________________________
Что именно не выходит, какая ошибка? Что значит "момент вставки данных в эту "как бы" таблицу"? Как можно вставить данные в курсор?
Оформление нечитабельное - пользуйтесь тегами форматирования.
И СУБД какая, наконец?
а оформление да, криворукое. ничего не понятно. но однозначно вставлять в то, что выводит курсор, нельзя. либо же результат работы курсора "пихать" во временную таблицу, а потом вставлять туда чего нужно.
и еще, имхо, формировать такие формы на SQL сервере - зло. вселенское причем.
всеравно них не понял....что надо сделать????? какой курсор?:confused: