Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
gCorn
10 / 10 / 2
Регистрация: 02.08.2011
Сообщений: 28
#1

ODBC - C++

26.10.2011, 19:19. Просмотров 487. Ответов 0
Метки нет (Все метки)

Столкнулся с такой проблемой при работе с базой данных.
Вот таким образом я читаю определенную строку из базы:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
CString str;
    str.Format("SELECT field2 FROM table WHERE field1 = %d;",id);
    
    CRecordset rec(db);
    CDBVariant var;
    
    rec.Open(CRecordset::forwardOnly,str,CRecordset::readOnly);
    
    if(rec.IsEOF())
    {
        return CString("Пусто");
    }
 
    rec.GetFieldValue(short(0),var);
        str=*var.m_pstring;
    rec.Close();
    return str;
Но если поле, где должна быть строка не заполнено, то программа вылетает. Пытался к строке понежнее подойти всякими IsEmpty() но все равно вылетает.

Добавлено через 4 часа 30 минут
там генерируется исключение "Access Violation" при обращении к строке. Помощь нужна срочно =\

Добавлено через 33 минуты
Может можно самому поймать это исключение и как-то обработать?
я как-то не силен в этом...

Добавлено через 1 час 7 минут
пока искал ответ сочинил две оды майкрософтам....
в классе CDBVariant есть поле m_dwType;
которое принимает некоторые значения, отталкиваясь от которого можно понять кое значение из его полей является валидным. В том числе есть значение DBVT_NULL при котором как бы ни одно значение не является валидным, однако на деле если читается пустое поле то это поле вместе со всеми принимает случайное значение зависящее от положения небесных тел или еще чего.
НО! Самое эпичное из того что я выяснил по этой теме, что вроде как когда читаешь пустое строковое поле, то m_dwType не является DBVT_STRING.
msdn дает нам простор для изучения любимых технологий ^^

P.S.: Извиняюсь за репост (я создал такую же тему в разделе Visual c++ и базы данных, называется "VC++ && MS access")
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.10.2011, 19:19     ODBC
Посмотрите здесь:

VC+ODBC+mdb+memo+ - C++
Проблема такая. Читаю Clipperовский dbt файл в массив строк (CStringArray), имеется файл mdb с таблицей содержащей memo поле, пытаюсь...

ODBC, параметры по умолчанию - C++
Доброго утра! Хочу на ПК програмно прописывать источники ODBC. Пример абстрактного, работающего кода. Это некий копи паст - так что не...

подключение к mysql через odbc на fedora - C++
Добрый день! Пытаюсь создать подключение к БД. Настроил odbc. При вызове соединения isql -v lcab-connector. Выдает: Connected! C c++...

Можно ли с помощью ODBC создавать файлы dBase? - C++
Подскажите с чего начать,чтобы научится создавать файлы dBase. Можно ли с помощью ODBC это сделать?

Как открыть конкретную таблицу через ODBC - C++
Подскажите пожалуйста, как решить проблемку. Пишу так: pDoc->m_ZastMat.Open(CRecordset::snapshot, NULL, CRecordset::none); Тогда...

Как сделать инсталяцию ODBC так, чтобы она напрягала клиента наименьшим образом? - C++
Я использую в приложении драйвера ODBC, чтобы сохранять и читать данные в/из различных форматах (Access, DBase, Excel). При инсталяцци...

ODBC+mySQL, Изучаю модуль ODBC - Perl
Здравствуйте. Возник следующий вопрос. Пытаюсь выполнить простой инсерт в таблицу на mySQL сервере, однако код выдает ошибки (цикл...

ODBC - Базы данных
Я использую в приложении драйвера ODBC, чтобы сохранять и читать данные в/из различных форматах (Access, DBase, Excel). При инсталяцци...

odbc - Debian Linux
нужно создать соединение по odbc, чтоб импортировать данные из 1С на линуховый сервер, по мануалу добавил через app-get модули, которых...

ODBC - Oracle
объясните мне пожалуйста для чего нужен ODBC, я вот настраиваю его пишу tns(хост:порт/сид), пишу логин, и нажимаю тест, просит пароль,...

ODBC и C# - C#
Вопрос: как мне переносить программу, которая использует MySQL ODBC 5.1 Driver с одного ПК на другой, что бы не устанавливать этот MySQL...

ODBC - Базы данных
Через ADO поключился к базе. В свойствах прописал путь до бызы. Оюязательно ли мне теперь, если я хочу использовать эту базу открывать ее...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru