|
|
|
Почему-то не хочет работать Recordset
|
|||
|---|---|---|---|
|
#18+
Люди помогите,может кто знает. Запрос выполняю в Оракле. Открываю Рекордсет для него, всё нормально, но при попытке сделать rs.MoveNext , где rs-объект Рекордсет, получаю ошибку: "Поставщик данных или другая служба вернули состояние E_FAIL". Может дело в NULL значениях которые мне наделал Оракл при группировке с ROLLUP. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2006, 12:11 |
|
||
|
Почему-то не хочет работать Recordset
|
|||
|---|---|---|---|
|
#18+
Выложите тестовый оракловый скрипт и код на VB, который коннектится к базе и открывает рекордсет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2006, 12:25 |
|
||
|
Почему-то не хочет работать Recordset
|
|||
|---|---|---|---|
|
#18+
автор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 и всё ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2006, 12:33 |
|
||
|
Почему-то не хочет работать Recordset
|
|||
|---|---|---|---|
|
#18+
проверять надо на EOF и BOF ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2006, 12:50 |
|
||
|
Почему-то не хочет работать Recordset
|
|||
|---|---|---|---|
|
#18+
Для начала прочтите это , пункт шестой. А потом попробуйте постепенно упрощать запрос, чтобы понять, где именно ошибка происходит, вплоть до Код: plaintext 1. 2. 3. И еще: на сервере этот ваш запрос отрабатывает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2006, 12:51 |
|
||
|
Почему-то не хочет работать Recordset
|
|||
|---|---|---|---|
|
#18+
На сервере всё отлично Оракл 9.2 Раньше никогда не писал запросы с ROLLUP и всегда работало, а тут...... у меня почему-то на него подозрения ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2006, 13:54 |
|
||
|
|

start [/forum/topic.php?fid=60&tid=2165965]: |
0ms |
get settings: |
6ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
166ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
55ms |
get tp. blocked users: |
2ms |
| others: | 215ms |
| total: | 478ms |

| 0 / 0 |
