powered by simpleCommunicator - 2.0.38     © 2025 Programmizd 02
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Message sequencing error при чтении из Cache через ODBC
5 сообщений из 5, страница 1 из 1
Message sequencing error при чтении из Cache через ODBC
    #38672799
TEHbI4
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день, столкнулся со следующей проблемой:

Реализовал хранимую процедуруClass tehbi4.OperationsReport Extends %RegisteredObject [ ClassType = "", ProcedureBlock ]
{

Query OperationsReport(BegDate As %String, EndDate As %String) As %Query(ROWSPEC = "Key:%String:Ключ,OperationDate:%String:Дата операции,DocType:%String:Вид документа,DocNum:%String:Номер документа,DocDate:%String:Дата документа,ClientName:%String(MAXLEN=512):Наименование/Ф.И.О. клиента,ClientNum:%String:Номер клиента,ClientINNorKIO:%String:ИНН/КИО клиента,ClientKPP:%String:КПП клиента,ClientNS:%String:Номер счета клиента,ClientBIC:%String:БИК банка клиента,ContractorBankNS:%String:Номер корреспондентского счета банка плательщика/получателя,ContractorNSName:%String(MAXLEN=512):Наименование счета банка плательщика/получателя,ContractorBIC:%String:БИК банка плательщика/получателя,ContractorName:%String(MAXLEN=512):Наименование/Ф.И.О. плательщика/получателя,ContractorNum:%String:Номер клиента плательщика/получателя,ContractorINNorKIO:%String:ИНН/КИО плательщика/получателя,ContractorKPP:%String:КПП плательщика/получателя,ContractorNSNum:%String:Номер счета плательщика/получателя,ValD:%String:Валюта суммы по дебету,SumD:%String:Сумма по дебету,SumDNE:%String:Сумма по дебету в НЭ,ValK:%String:Валюта суммы по кредиту,SumK:%String:Сумма по кредиту,SumKNE:%String:Сумма по кредиту в НЭ,OperationName:%String(MAXLEN=512):Назначение платежа,IncomeOperType:%String:Тип доходной операции,KomisType:%String:Начисление/Погашение,OperTypeCode:%String:Код типа операции,OperType:%String:Тип операции,Groups:%String:Группы") [ SqlName = OperationsReport, SqlProc ]
{
}

ClassMethod OperationsReportExecute(ByRef qHandle As %Binary, BegDate As %String, EndDate As %String) As %Status
{
  ...
}

ClassMethod OperationsReportClose(ByRef qHandle As %Binary) As %Status [ PlaceAfter = OperationsReportExecute ]
{
  ...
}

ClassMethod OperationsReportFetch(ByRef qHandle As %Binary, ByRef Row As %List, ByRef AtEnd As %Integer = 0) As %Status [ PlaceAfter = OperationsReportExecute ]
{
  ...
}

}
На машине с ms sql создал ODBC драйвер. В ms sql создал связанный сервер.
Вызываю процедуру так:
Код: plsql
1.
SELECT * FROM OPENQUERY([CACHE-TEST],'call tehbi4.OperationsReport("2014-01-30","2014-02-28")')


При формировании отчета за небольшой период 1-10 дней все работает. В случае получения отчета за месяц sql возвращает такую ошибку:
Код: xml
1.
2.
3.
4.
5.
OLE DB provider "MSDASQL" for linked server "CACHE-TEST" returned message "[Cache ODBC][State : 08S01][Native Code 452]
[C:\Program Files\Microsoft SQL Server\MSSQL10_50.STORAGESQLSERVER\MSSQL\Binn\sq]
Message sequencing error".
Msg 7320, Level 16, State 2, Line 1
Cannot execute the query "call tehbi4.OperationsReport("2014-01-30","2014-02-28")" against OLE DB provider "MSDASQL" for linked server "CACHE-TEST". 


Уже второй день ковыряю, перерыл инет, не могу понять в чем проблема и как поправить.
Может знает кто?
...
Рейтинг: 0 / 0
Message sequencing error при чтении из Cache через ODBC
    #38672886
Petr0vi4444
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
TEHbI4,

Сейчас попробовал, 140 тысяч строк нормально выбрались. Может ошибка в данных? Попробуйте оставить один столбец, например, самый первый, и сформировать отчет.
...
Рейтинг: 0 / 0
Message sequencing error при чтении из Cache через ODBC
    #38673314
TEHbI4
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Действительно, с одной колонкой вывелось корректно, буду поочередно добавлять, чтобы выявить проблемную.
...
Рейтинг: 0 / 0
Message sequencing error при чтении из Cache через ODBC
    #38676222
TEHbI4
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проблема была в следующем: я формировал конечную выборку в qHandle, как оказалось не хватало места в qHandle.
Решение:
Создал временную глобаль, а в qHandle записал ссылку на эту глобаль, с ней и работал:ClassMethod OperationsReportFetch(ByRef qHandle As %Binary, ByRef Row As %List, ByRef AtEnd As %Integer = 0) As %Status [ PlaceAfter = OperationsReportExecute ]
{
  s @qHandle=$o(@qHandle@(@qHandle),1,Row)
  s AtEnd=(@qHandle="") s:AtEnd Row=""
  i Row'="" {f i=1:1:$ll(Row) s $li(Row,i)=$zcvt($li(Row,i),"I","CP866")}
  Quit $$$OK
}
P.S. Как сделать подсветку кашового синтаксиса в сообщениях на форуме, в списке [src] нет.
...
Рейтинг: 0 / 0
Message sequencing error при чтении из Cache через ODBC
    #38676853
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TEHbI4P.S. Как сделать подсветку кашового синтаксиса в сообщениях на форуме, в списке [src] нет.Не было, нет и не будет.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Message sequencing error при чтении из Cache через ODBC
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]