Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Курсор

51K
23 декабря 2009 года
ShooterGod
8 / / 10.12.2009
Здраствуйте всем!
Задача стоит так, нужно чтобы курсор "как бы" выводил табицу.
Я все написал, до поры до времени все рабит на ура, но вот только когда наступает момент вставки данных в эту "как бы" таблицу - все пусто. Подскажите что не так???
Вот код:
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 |
_____________________________________________________________________________________________________________________________
8.2K
23 декабря 2009 года
Ora-cool
211 / / 20.09.2007
Честно говоря, мало что понял, а точнее вообще ничего не понял.
Что именно не выходит, какая ошибка? Что значит "момент вставки данных в эту "как бы" таблицу"? Как можно вставить данные в курсор?
Оформление нечитабельное - пользуйтесь тегами форматирования.
И СУБД какая, наконец?
6
23 декабря 2009 года
George
4.1K / / 05.01.2007
СУБД пудово - MS SQL.
а оформление да, криворукое. ничего не понятно. но однозначно вставлять в то, что выводит курсор, нельзя. либо же результат работы курсора "пихать" во временную таблицу, а потом вставлять туда чего нужно.

и еще, имхо, формировать такие формы на SQL сервере - зло. вселенское причем.
18K
05 января 2010 года
Chort@ka
22 / / 08.04.2007
всеравно них не понял....что надо сделать????? какой курсор?:confused:
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог