|
Linked Cache к MS SQL
#33305664
Ссылка:
Ссылка на сообщение:
Ссылка с названием темы:
Ссылка на профиль пользователя:
|
|
|
|
Прилинковал Cache к MS SQL 2000.
Пытаюсь выполнить из Query Analyzer запрос:
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56.
DECLARE @dDate1 CHAR( 25 ), @dDate2 CHAR( 25 )
SET @dDate1 = '2005-09-30'
SET @dDate2 = '2005-10-01'
SELECT TOP 1
ent.name AS entname,
dev.voltage,
dev.id AS dev_id,
dev.name AS devname,
zvkn.note_text,
zvkcat.ident AS category,
rep.ident AS repair,
zvkb.PlanDateBegin AS dtPlBeg,
zvkb.PlanDateEnd AS dtPlEnd,
zvkb.FactRepairDateBegin AS dtFactBeg,
zvkb.FactRepairDateEnd AS dtFactEnd,
zvkb.id AS zvk_id
FROM
cache..zvk.zvkbody AS zvkb,
cache..zvk.enterprise AS ent,
cache..zvk.zvkcategory AS zvkcat,
cache..zvk.repairtype AS rep,
cache..zvk.devicetype AS devt,
cache..zvk.zvkbody_note AS zvkn,
cache..zvk.notetype AS nt,
(SELECT device.id, device.name, device.devicetype, deviceBD.voltage
FROM cache..zvk.device AS device LEFT JOIN cache..sqluser.devicebd AS deviceBD
ON device.shifr=devicebd.shifr) AS dev
WHERE
zvkb.enterprise=ent.id AND
zvkb.device=dev.id AND
zvkb.id=zvkn.zvkbody AND
zvkn.note_notetype=nt.id AND
nt.ident='ЗВК_СДР' AND
zvkb.zvkcategory=zvkcat.id AND
zvkb.repairtype=rep.id AND
dev.devicetype=devt.id AND
devt.ident='ЛЭП' AND
( zvkb.factrepairdatebegin>=RTRIM(@dDate1) AND
zvkb.factrepairdatebegin<=RTRIM(@dDate2) OR
zvkb.factrepairdateend>=RTRIM(@dDate1) AND
zvkb.factrepairdateend<=RTRIM(@dDate2) )
ORDER BY dev.name
Но получаю ошибку:
ODBC: Msg 0 , Level 19 , State 1
SqlDumpExceptionHandler: Process 54 generated fatal exception c0000005 EXCEPTION_ACCESS_VIOLATION. SQL Server is terminating this process.
Server: Msg 7321 , Level 16 , State 2 , Line 12
An error occurred while preparing a query for execution against OLE DB provider 'MSDASQL'.
[OLE/DB provider returned message: [Caché ODBC][State : 37000 ][Native Code 23 ]
[C:\PROGRA~ 1 \MICROS~ 2 \MSSQL\binn\sqlservr.exe]
[SQLCODE: <- 23 >:<Label is not listed in FROM>]
[Cache Error: <<SYNTAX>errdone+ 1 ^%qaqqt>]
[Details: <FLoop - func = PP>]
[%msg: < SQL ERROR # 23 : Label ` 3 ,3SQLUSER.QRY1646ZVKB' is not listed in FROM^SELECT Col1645 ,>]]
OLE DB error trace [OLE/DB Provider 'MSDASQL' ICommandPrepare::Prepare returned 0x80040e14].
По отдельности запросы выполняются, комментировал отдельные участки запроса и проверял.
В SQL менеджере Cache запрос также выполняется.
Опытным путем было установлено, что ошибка выходит при попытке связать по условиям более 3-х таблиц.
Так, например такой запрос выполняется:
1. 2. 3. 4.
SELECT TOP 1 techviol.name, apv.name AS apv, classif.name AS classif, typeviol.name AS typeviol
FROM cache..sqluser.techviol AS techviol, cache..sqluser.apv AS apv, cache..sqluser.classif AS classif,
cache..sqluser.typeviol AS typeviol
WHERE techviol.apv=apv.id AND techviol.classif=classif.id
А такой запрос уже нет:
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
SELECT TOP 1 techviol.name, apv.name AS apv, classif.name AS classif, typeviol.name AS typeviol
FROM cache..sqluser.techviol AS techviol, cache..sqluser.apv AS apv, cache..sqluser.classif AS classif,
cache..sqluser.typeviol AS typeviol
WHERE techviol.apv=apv.id AND techviol.classif=classif.id AND techviol.typeviol=typeviol.id
Ошибка:
Server: Msg 7321 , Level 16 , State 2 , Line 1
An error occurred while preparing a query for execution against OLE DB provider 'MSDASQL'.
[OLE/DB provider returned message: [Caché ODBC][State : 37000 ][Native Code 23 ]
[C:\PROGRA~ 1 \MICROS~ 2 \MSSQL\binn\sqlservr.exe]
[SQLCODE: <- 23 >:<Label is not listed in FROM>]
[Cache Error: <<SYNTAX>errdone+ 1 ^%qaqqt>]
[Details: <FLoop - func = PP>]
[%msg: < SQL ERROR # 23 : Label ` 3 ,3SQLUSER.QRY1019TECHVIOL' is not listed in FROM^SELECT Col1017 ,>]]
OLE DB error trace [OLE/DB Provider 'MSDASQL' ICommandPrepare::Prepare returned 0x80040e14].
Кто-нибудь выполнял сложные запросы к Cache из MS SQL2000?
Подскажите как можно решить такую проблему.
|
|
|