powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Почему-то не хочет работать Recordset
7 сообщений из 7, страница 1 из 1
Почему-то не хочет работать Recordset
    #33693958
Run-time error
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Люди помогите,может кто знает.
Запрос выполняю в Оракле. Открываю Рекордсет для него, всё нормально, но при попытке сделать rs.MoveNext , где rs-объект Рекордсет, получаю ошибку:

"Поставщик данных или другая служба вернули состояние E_FAIL".

Может дело в NULL значениях которые мне наделал Оракл при группировке с ROLLUP.
...
Рейтинг: 0 / 0
Почему-то не хочет работать Recordset
    #33694022
Melkiades
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Выложите тестовый оракловый скрипт и код на VB, который коннектится к базе и открывает рекордсет.
...
Рейтинг: 0 / 0
Почему-то не хочет работать Recordset
    #33694051
Run-time error
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторselect matsdv.code || ', ' || matsdv.name subdiv, os40.DOC_NUMBER,os40.DOC_DATE ,os01.card_num,os01.FULL_NAME,invstor.NAME,cnt01.NAME1 mol_name,
os65.DOC_CODE, os65.DOC_NUMBER pso_doc, os65.DOC_DATE pso_date,
mtm.NAME nomen_name, mtm_m.NAME unit_name, os66.QUANTITY, os66.COST, sum(os66.QUANTITY*os66.COST) sum,
case when matsdv.code || ', ' || matsdv.name is null
then 4
when os40.DOC_NUMBER is null
then 3
when os65.doc_code is null
then 2
when os65.DOC_NUMBER is null
then 1
else 0
end sign
from os_40_doc os40,OS50_OS70 os5070,os_01_invcard os01,OS_02_HISTORY os02, OS_65_RET_H os65,INV_STORES invstor,
INV_STOREMOL invmol,CNT_01_HOZ_SUBJECTS cnt01,OS_66_RET_S os66,MTM_NOMENCLATURES mtm,MTM_MEASURE_UNITS mtm_m,mat_subdivision matsdv,mat_members mmb
where os01.id = os02.OS01_ID
and os02.OS10_ID = 1207
and op_date between to_date('01.03.2006','dd.mm.yyyy') and to_date('31.03.2006','dd.mm.yyyy')
and os02.id = os5070.OS50_ID
and os02.CNT50_ID = mmb.CNT50_ID
and to_date('31.03.2006','dd.mm.yyyy') between mmb.IN_DATE and nvl(mmb.OUT_DATE,to_date('31.03.2006','dd.mm.yyyy'))
and mmb.MAT_SDV_MAT_SDV_ID = matsdv.MAT_SDV_ID
and matsdv.CNT_HOZSBJ_ID = 69460
and os5070.OS40_ID = os40.id
and os65.OS50_ID = os5070.ID
and os65.STORE_ID = invstor.ID
and os65.MOL_ID = invmol.ID
and invmol.CNT_HOZSBJ_ID = cnt01.ID
and os65.ID = os66.OS65_ID
and os66.NOMEN_ID = mtm.NOMEN_ID
and os66.MUNITS_ID = mtm_m.MTM_MUNITS_ID
group by rollup (matsdv.code || ', ' || matsdv.name, os40.DOC_NUMBER, os65.DOC_CODE,
(os40.DOC_DATE ,os01.card_num,os01.FULL_NAME,invstor.NAME,cnt01.NAME1,
os65.DOC_NUMBER, os65.DOC_DATE,
mtm.NAME, mtm_m.NAME, os66.QUANTITY, os66.COST))
order by subdiv,os40.doc_number,os65.DOC_CODE


авторSet cnn = New ADODB.Connection
cnn.CursorLocation = adUseClient
cnn.ConnectionString = wsparams.Range("ConnectionString").Value
cnn.ConnectionTimeout = 30
cnn.Open

Set rs = New ADODB.Recordset

потом в строковую перем пишем текст запроса выше sqlstr

.......

rs.Open sqlStr, cnn, adOpenKeyset, adLockOptimistic

что- то обрабатывается

rs.MoveNext и всё
...
Рейтинг: 0 / 0
Почему-то не хочет работать Recordset
    #33694111
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
проверять надо на EOF и BOF
...
Рейтинг: 0 / 0
Почему-то не хочет работать Recordset
    #33694117
Melkiades
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для начала прочтите это , пункт шестой. А потом попробуйте постепенно упрощать запрос, чтобы понять, где именно ошибка происходит, вплоть до
Код: plaintext
1.
2.
3.
select  1 ,  2 ,  3 ,  4  from dual
union 
select  5 ,  6 ,  7 ,  8  from dual
Кстати, версия оракла какая?
И еще: на сервере этот ваш запрос отрабатывает?
...
Рейтинг: 0 / 0
Почему-то не хочет работать Recordset
    #33694420
run-time error
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
На сервере всё отлично Оракл 9.2
Раньше никогда не писал запросы с ROLLUP и всегда работало, а тут...... у меня почему-то на него подозрения
...
Рейтинг: 0 / 0
Почему-то не хочет работать Recordset
    #33694602
Melkiades
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну так уберите его и проверьте свое предположение.
ЗЫ. У меня запросы с RollUp-ами на клиента возвращаются нормально.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Почему-то не хочет работать Recordset
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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