Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вызов процедуры с операторами DDL DML, visual c++ + odbc 
V
    Опции темы
sergey_85
Дата 29.12.2010, 14:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 445
Регистрация: 17.4.2007
Где: Россия, Челябинск

Репутация: нет
Всего: 1



Привет!

Работаю с MSSQL server 2000 + Visual C++ (MSVS 2005), выполняю следующую процедуру и в ответ получаю набор строк, и здесь вылетает ошибка Тип получения выходит за пределы допустимого диапазона , есть одно НО если закоментить update и insert, оставив только select, то все работает!

В чем может быть дело?

Код

CDatabase db;

    BOOL fl = db.OpenEx(L"DRIVER=SQL Server;SERVER=localhost;UID=user;PWD=12345;APP=TODO: <Product name>;WSID=Admin;DATABASE=Test");
    
    CRecordset rs(&db);
    BOOL isOk = rs.Open(-1, L"{CALL dbo.ptrans_GetListEx}");

    
    rs.MoveFirst(); //здесь вылетает

    while(rs.IsEOF() == FALSE)
    {
        CString s;
        rs.GetFieldValue((short)0, s);
        rs.MoveNext();
    }


Код

ALTER procedure [dbo].[ptrans_GetList]
as
begin

insert into dbo.States(Description) values ('aww[fd efe')
update dbo.States set Description = 'HAPPY NEW YEAR' where StateId = 9

select id from dbo.Transfers

end


Это сообщение отредактировал(а) sergey_85 - 29.12.2010, 14:17


--------------------
A good design always pays off.
PM MAIL   Вверх
TaNK
Дата 29.12.2010, 16:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 669
Регистрация: 29.10.2006
Где: Краснодар

Репутация: нет
Всего: 1



может go поможет, между insert, update, select

Добавлено через 1 минуту и 14 секунд
попробывал скрипт прогнать через Query Analizer - работает и без go

Добавлено через 8 минут и 7 секунд
проверил на такой конфигурации 
RAD XE Builder 
MS Server 2000
компонент доступа UNIDAC
все обновляется и возвращает данные 


--------------------

Oracle 11.2.0.3.0
FireBird 1.0-2.5


PM MAIL ICQ   Вверх
sergey_85
Дата 30.12.2010, 12:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 445
Регистрация: 17.4.2007
Где: Россия, Челябинск

Репутация: нет
Всего: 1



Исправил, поставил в начале процедуры SET NOCOUNT ON и пользуюсь драйвером Libodbc++ 

http://libodbcxx.sourceforge.net/libodbc++...win32.html#MSVC

Вопрос решен.


--------------------
A good design always pays off.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "MS SQL"
Akina

Akina

Запрещается!

Публиковать ссылки и обсуждать взлом чего бы то ни было.

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы составления неспецифических запросов рассматриваются здесь
  • Используйте теги [code=sql][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Zloxa, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MS SQL Server | Следующая тема »


 




[ Время генерации скрипта: 0.0391 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.