Unspecified error thrown by sqlserver
От: dtkachov  
Дата: 05.07.04 08:22
Оценка:
выполнение следующего запроса бросает ошибку "Unspecified error"
sql="fetch absolute 11 from DBCURSORNAME" ;

environment —
MS.NET2003, provider=SQLOLEDB.1, db — sqlserver2000

я создал курсор DBCURSORNAME, открыл его, нашел необходимую запись (в даном случае это запись номер 11), потом хочу выполнить свой запрос посредством "fetch..from CURSORNAME" и получаю эту ошибку.
Самое удивительное что этот sql код работает из под query analyzer'а , да и я создал тестовою програмку, которая выполняет такой же запрос, но используя SqlConnection.

И из под query analyzer'a и из тестовой апликации, использующей SqlConnection, и из апликации использующей OLEDB запросы одинаковые (тот же запрос по открытию декларации курсора и sql кода для него, и потом тот же fetch).

Использовать SqlConnection не могу, так как это используэтся для всегоо проекта, то есть нужно как-то решить проблему почему этот фетч не работает из под OLEDB.

У кого какие соображения? В чем здесь дело?
Re: Unspecified error thrown by sqlserver
От: rus blood Россия  
Дата: 05.07.04 08:37
Оценка:
Здравствуйте, dtkachov, Вы писали:


D>У кого какие соображения? В чем здесь дело?


Для начала, как ты посмотрел этот код ошибки?
CDBErrorInfo использовал?
Имею скафандр — готов путешествовать!
Re: Unspecified error thrown by sqlserver
От: KGP http://kornilow.newmail.ru
Дата: 05.07.04 08:39
Оценка:
Здравствуйте, dtkachov, Вы писали:


[msdn]Transact-SQL statements that SQL Server does not support in server cursors.

Batches or stored procedures that return multiple result sets.
SELECT statements that contain COMPUTE, COMPUTE BY, FOR BROWSE, or INTO clauses.
An EXECUTE statement referencing a remote stored procedure.
API Server Cursor Implementation
The OLE DB provider for SQL Server, the SQL Server ODBC driver, and the DB-Library DLL use these special system stored procedures to signal cursor operations to the server:

sp_cursoropen defines the SQL statement to be associated with the cursor and the cursor options, then populates the cursor.


sp_cursorfetch fetches a row or block of rows from the cursor.


sp_cursorclose closes and deallocates the cursor.


sp_cursoroption is used to set various cursor options.


sp_cursor is used to request positioned updates.


sp_cursorprepare compiles the Transact-SQL statement or batch associated with a cursor into an execution plan but does not create the cursor.


sp_cursorexecute creates and populates a cursor from the execution plan created by sp_cursorprepare.


sp_cursorunprepare discards the execution plan from sp_cursorprepare.
These system stored procedures will show up in SQL Profiler traces of ADO, OLE DB,, ODBC, and DB-Library applications that are using API server cursors. They are intended only for the internal use of the SQL Server Provider for OLE DB, the SQL Server ODBC driver, and the DB-Library DLL. The full functionality of these procedures is available to the applications through the use of the cursor functionality of the database APIs. Specifying the procedures directly in an application is not supported.

[/msdn]
... << RSDN@Home 1.1.2 stable >>
Re[2]: Unspecified error thrown by sqlserver
От: dtkachov  
Дата: 06.07.04 11:44
Оценка:
Здравствуйте, rus blood, Вы писали:

RB>Здравствуйте, dtkachov, Вы писали:



D>>У кого какие соображения? В чем здесь дело?


RB>Для начала, как ты посмотрел этот код ошибки?

RB>CDBErrorInfo использовал?

это ASP.NET + c#
ошибкe бросает OleDBCommand и на ASP страничке показывается тип необработанной ошибки (Unspecified error)
Re[2]: Unspecified error thrown by sqlserver
От: dtkachov  
Дата: 06.07.04 11:57
Оценка:
Здравствуйте, KGP, Вы писали:

KGP>Здравствуйте, dtkachov, Вы писали:


... The full functionality of these procedures is available to the applications through the use of the cursor functionality of the database APIs. Specifying the procedures directly in an application is not supported.

KGP>[/msdn]


Тут говорится о тм что операции с курсорами не поддерживаются, но какие — sp_cursorfetch, sp_cursorclose и т.д. — т.е. специальные ф-и SQL server
Я же в приложении использую стандартный SQL code (стандарт SQL92) — пример запроса
"fetch absolute 10 from DB_CURSOR_NAME ;" — то есть на такой sql code ограничений нет.
К тому же открыть курсор и поставить его в некоторую позицию сначала удалось то, а вот уже выполнить второй запрос к курсору и полусить данные какой-то следущей записи не удается.

Кроме того как я писал в тестовой апликации (но она правда юзает SQLCommand) это работает ?!!?
а вот когда OleDB — не хочет ?
Re[3]: Unspecified error thrown by sqlserver
От: rus blood Россия  
Дата: 06.07.04 12:07
Оценка:
Здравствуйте, dtkachov, Вы писали:


D>это ASP.NET + c#

D>ошибкe бросает OleDBCommand и на ASP страничке показывается тип необработанной ошибки (Unspecified error)

Кидается exception. У него есть InnerException, там что-нить есть?
Имею скафандр — готов путешествовать!
Re[4]: Unspecified error thrown by sqlserver
От: dtkachov  
Дата: 07.07.04 09:26
Оценка:
Здравствуйте, rus blood, Вы писали:

RB>Кидается exception. У него есть InnerException, там что-нить есть?


Нет InnerException == {};
в других полях отловленого инстанса класса Exception тоже ничего определенного сказать нельзя
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.