powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / ASE 12.5.4 + FastReport 4.5 вызов хранимой процедуры
17 сообщений из 17, страница 1 из 1
ASE 12.5.4 + FastReport 4.5 вызов хранимой процедуры
    #37719285
lolo-soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Проблема в следующем. Есть ХП, которая возвращает набор данных, которые формируются посредством двух курсоров (declare Cursor). Один курсор "вложен" во второй. Примерно так:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
declare Cursor1
fech Cursor1
while @@SQLStatus = 0 do begin

declare Cursor2
fech Cursor2
while @@SQLStatus = 0 do begin
...
fech Cursor2
end

fech Cursor1
end



При вызове ХП из iSQL возвращаемый набор данных верный.

В отчете FR4 эта хранимая вызывается с теми же параметрами посредством TfrxQuery. И возвращаемый набор данных отличается от iSQL'ного. Танцы с бубном не помогли. Наставил кучу точек логирования выполнения ХП и выяснил, что "внутренний" курсор (Cursor2) никогда не выполняется.

Может кто сталкивался с подобной проблемой и смог ее решить.

З.Ы. приложил полный текст ХП
З.З.Ы. ...заранее благодарен :)
...
Рейтинг: 0 / 0
ASE 12.5.4 + FastReport 4.5 вызов хранимой процедуры
    #37732101
Stalker4
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Hi,

Как именно вы вызываете свою SP из FR ?
Как передаете ей параметры ?

Проверьте, правильно ли в вашу SP приходят параметры DateBegin и DateEnd.
...
Рейтинг: 0 / 0
ASE 12.5.4 + FastReport 4.5 вызов хранимой процедуры
    #37747977
lolo-soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Параметры передаю так:

Код: pascal
1.
2.
3.
4.
5.
  queryList.Active:= false;      
  queryList.ParamByName('NodeCode').Value:=  1;
  queryList.ParamByName('DateBegin').Value:= FormatDateTime('yyyymmdd', DateBegin.Date);
  queryList.ParamByName('DateEnd').Value:=   FormatDateTime('yyyymmdd', DateEnd.Date);           
  queryList.Active:= true;



в SQL компонента queryList так:

Код: pascal
1.
execute spGetComplexInfoReportsWork :DateBegin, :DateEnd, :NodeCode
...
Рейтинг: 0 / 0
ASE 12.5.4 + FastReport 4.5 вызов хранимой процедуры
    #37748132
lolo-soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
... как редактировать свои сообщения не нашел - пишу новое.

Вобщем решил проверить как будет работать вызов этой же хранимой в TQuery компонента Delphi. Накидал простой проект (DB, TQuery, TDataSource, TDBGrid). Настроил вызов хранимой - результат аналогичен, как и в FR. Т.е. получается завтык с курсорами, когда хранимая вызывается через ODBC.

На форуме поискал, но ответа не нашел на вопрос - как правильно оформлять вложенные курсоры в ASA/ASE ? Т.е. можно ли сначала описать эти курсоры в начале хранимой, а "вложенность" курсора оформлять используя Open/Close для него. Или нет разницы никакой - как я реализовал в самой хранимой: второй курсор создается и уничтожается внутри первого курсора.

Вобщем надеюсь на вашу помощь. Заранее спасибо.
...
Рейтинг: 0 / 0
ASE 12.5.4 + FastReport 4.5 вызов хранимой процедуры
    #37748334
Фотография Ggg_old
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если инфа о том,что эта же хП из isql работает верно, а из под не работает как надо, то попробуйте найти и поставить последние одбц драайвера. Я с азе очень данво не сталкивался, но в в ерсии 12.5 у нее были до ужаса отвратительные глючные драйвера. Мне просто кажется,что я про какой-то похожий на ваш баг как-то очень давно вскользь читал, но уже не помню точно. В любом случае ищите самые последние драйвера и попробуйте снова.
...
Рейтинг: 0 / 0
ASE 12.5.4 + FastReport 4.5 вызов хранимой процедуры
    #37748363
Фотография Ggg_old
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если не поможет, то работу с внутренним курсором вынесьте в другую ХП. Хз, может оно как-то @@sqlstatus не может поделить между двумя курсорами в одной хранимке.
...
Рейтинг: 0 / 0
ASE 12.5.4 + FastReport 4.5 вызов хранимой процедуры
    #37748447
lolo-soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вынес внутренний курсор во вторую храниму - непомогло. Какой драйвер ODBC посоветуете попробовать ?

Заранее спасибо.
...
Рейтинг: 0 / 0
ASE 12.5.4 + FastReport 4.5 вызов хранимой процедуры
    #37748755
Фотография Ggg_old
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ищите самый последний, я просто с асе уже лет 7 как не работаю.
...
Рейтинг: 0 / 0
ASE 12.5.4 + FastReport 4.5 вызов хранимой процедуры
    #37749633
lolo-soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Для меня стала полная загадка !!! Сваял простой проект на SQLDirect (компоненты для Delphi, использующие нативное подключение к БД): DB+Query+DataSource+DBGrid. И эта хранимая отрабатывает на ура. Так же попробовал ODBC-драйвера от PCClient 15.0 - не помогло.

Делаю вывод - имеющиеся ODBC-драйвера не "умеют" правильно работать с вложенными курсорами.
...
Рейтинг: 0 / 0
ASE 12.5.4 + FastReport 4.5 вызов хранимой процедуры
    #37749795
Фотография Ggg_old
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
знаете, для меня так и загадкой осталось, как криворукие разрабочики азе сумели сделать так, что-бы черный ящик с интерфесом (хранимая процедура) был сделан настолько калично, что-бы клиентская часть вообще как-то реагировала на то, есть там внутри курсоры или нет. Это вообще исходя из технологии должно быть невозможно даже теоретически, но у этих недоиндусов получилось сделать невозможное. А потом они удивляются, почему их всех оракл задвинул на задворки рынка..
...
Рейтинг: 0 / 0
ASE 12.5.4 + FastReport 4.5 вызов хранимой процедуры
    #37749802
Фотография Ggg_old
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lolo, попробуйте написать простейшую ХП с двумя курсорами и проверить, воспроизводится ли ваш баг. Если да, то пишите в сайбейз, пусть думают. Может кто из постояльцев форума вам тоже сможет помочь.
...
Рейтинг: 0 / 0
ASE 12.5.4 + FastReport 4.5 вызов хранимой процедуры
    #37750466
Mikle83
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
попробуйте у хранимой процедуры входные параметры законстантить и посмотреть - одинаково ли она работает.
Если нет - проблема в курсорах, если да - в передаваемых параметрах.
...
Рейтинг: 0 / 0
ASE 12.5.4 + FastReport 4.5 вызов хранимой процедуры
    #37751589
lolo-soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пробовал "законстантить" - не помогло. Все мои потуги и "эксперименты" показывают, что дело в курсоре. Придется "работу" с курсорами перенести в приложение, а точнее на скрипт FR4. Или может кто подскажет как можно обойтись одним курсором (в моем случае) ?

З.Ы. ... код хранимой прикладывал в первом посте.

Заранее спасибо :)
...
Рейтинг: 0 / 0
ASE 12.5.4 + FastReport 4.5 вызов хранимой процедуры
    #37752055
Фотография Ggg_old
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lolo, можете просто для успокоения своей совести сделать простейшую тестовую ХП с двумя курсорами и проверить ее?
...
Рейтинг: 0 / 0
ASE 12.5.4 + FastReport 4.5 вызов хранимой процедуры
    #37756378
Imperous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
смотрите в SETы odbc драйвера, иногда там "скрыты" некоторые на первый взгляд неожиданности
...
Рейтинг: 0 / 0
ASE 12.5.4 + FastReport 4.5 вызов хранимой процедуры
    #37783087
lolo-soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Поясните пжлста - что такое SET'ы ODBC-драйвера и где их смотрят ?
...
Рейтинг: 0 / 0
ASE 12.5.4 + FastReport 4.5 вызов хранимой процедуры
    #37783094
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lolo-softПоясните пжлста - что такое SET'ы ODBC-драйвера и где их смотрят ?in documentation of course.
Look for description of connection string options in BOL
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / ASE 12.5.4 + FastReport 4.5 вызов хранимой процедуры
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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