2015-07-31 3 views
0

Я занимаюсь разработкой приложения в VB6, и я пытаюсь делать запросы на SQL AZURE благодаря SQL Server Native Client 11.0, но каждый раз, когда я выполнить запрос (даже простой select * from Users;) Родная клиент возвращается сообщение об ошибке:SQL Azure: Выполнение SQL напрямую; нет курсора

[Microsoft][SQL Server Native Client 11.0][SQL Server] Executing SQL directly; no cursor. 

Эта проблема возникает, так как я создал новую БД с другим уровнем на лазурном портале. В базе данных раньше была база данных web, а новая - Standard. Есть ли возможность сделать для трех новых версий БД в Azure(Basic,Standard,Premium)?

Большое спасибо за вашу помощь

+0

Изменение редакций не должно вызывать этой проблемы. Похоже, есть некоторые проблемы с вашим приложением. Вы пытались выполнить поиск в Интернете, я вижу несколько решений. Пожалуйста, попробуйте те. –

+0

Переключив новую БД со старой, она работает. И если я переключусь на новый, произойдет эта ошибка. – monstergold

+2

Вы можете вставить код, пожалуйста? –

ответ

4

Ошибка, о которой идет речь, составляет 16954 (ваша отчетность об ошибках должна в первую очередь показывать номер ошибки, состояние и серьезность, а не только сообщение об ошибке). Это происходит, когда приложение пытается использовать серверные курсоры в контексте, не поддерживаемом. См. Client-Side Cursors Versus Server-Side Cursors. Вероятно, это происходит из выбора библиотеки курсора в RDO, см. Choosing an RDO Cursor Library. Переключитесь на rdUseIfNeeded или rdUseNone.

+0

Я уверен, что при переходе с «Web» на «Standard» вы также переключились на [Azure SQL V12 DB] (https://azure.microsoft.com/en-us/documentation/articles/ sql-database-v12-whats-new /), которая представляет собой совершенно другую технологию из предыдущих версий. Я не знаю о несовместимости ODBC/RDO в V12, но RDO - это * очень * старая технология. –

+0

Действительно, я просто вижу, что версия SQL Azure «Microsoft SQL Azure (RTM) - 12.0.2000.8« – monstergold

+2

Azure становится довольно неуклюжим. Вы должны использовать его с помощью курсоров на стороне клиента и использовать ADO, который вы используете через MSDASQL, в скрипучий драйвер ODBC, потому что Microsoft отказывается от OLEDB, чтобы повысить переносимость, поскольку они пытаются поддерживать платформы, отличные от Windows. – Bob77

0

Я считаю, что основная ошибка становится скрыта клиента SQL. Если вы получаете сообщение об ошибке для простых запросов select * from table, тогда я бы уточнил, что у вас есть разрешения на учетные данные, которые использует ваше приложение.

+0

Используя php с одним и тем же пользователем и паролем, он работает. И когда я подключаюсь к db с db forge studio, выражаю свою работу тоже. – monstergold

Смежные вопросы