1 / 1 / 0
Регистрация: 10.11.2011
Сообщений: 85
|
|
1 | |
Подключение к Access из консольного приложения MVS2012 и выборка данных c выводом в консоль27.03.2015, 20:18. Показов 3041. Ответов 16
Метки нет (Все метки)
Пусть есть таблица TestDB c единственной таблицей Table_1 с двумя полями: ключевым текстовым полем key и числовым полем data.
Задача - средствами MVS 2012 взять из поля data со значением ключа bMax число 220 и вывести в консоль. Как я понимаю, вместо пятёрки в выводе должен быть какой-то хитрый sql запрос? Просвятите, пожалуйста.
0
|
27.03.2015, 20:18 | |
Ответы с готовыми решениями:
16
Работа с асинхронным выводом консольного приложения (строковые переменные) Подключение к БД из консольного приложения Можно ли из консольного приложения вызвать еще одну консоль через функцию? Работа с Access 2007 из консольного приложения |
903 / 424 / 159
Регистрация: 02.04.2014
Сообщений: 1,206
|
||||||
28.03.2015, 09:13 | 2 | |||||
Сообщение было отмечено Nicolazz как решение
Решение
Попробуй так:
1
|
1 / 1 / 0
Регистрация: 10.11.2011
Сообщений: 85
|
|
28.03.2015, 18:23 [ТС] | 3 |
Error 1 error C1189: #error : Building MFC application with /MD[d] (CRT dll version) requires MFC shared dll version. Please #define _AFXDLL or do not use /MD[d] c:\program files (x86)\microsoft visual studio 11.0\vc\atlmfc\include\afx.h 24
2 IntelliSense: #error directive: Building MFC application with /MD[d] (CRT dll version) requires MFC shared dll version. Please #define _AFXDLL or do not use /MD[d] c:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\atlmfc\include\afx.h 24 Не совсем понял ошибку. Версии не совпадают?
0
|
903 / 424 / 159
Регистрация: 02.04.2014
Сообщений: 1,206
|
|
28.03.2015, 18:32 | 4 |
Сообщение было отмечено Nicolazz как решение
Решение
в меню Project-> ... Properties->Configuration Properties->General
в пункте Use of MFC выбери "Use MFC in a Shared DLL"
1
|
1 / 1 / 0
Регистрация: 10.11.2011
Сообщений: 85
|
|
28.03.2015, 18:41 [ТС] | 5 |
Работает, спасибо! Только у меня просьба, ты не мог бы краткие комментарии по коду сделать?
Особенно вот эти два оператора интересуют rs.MoveFirst(); rs.GetFieldValue(0, oVar);
0
|
1 / 1 / 0
Регистрация: 10.11.2011
Сообщений: 85
|
|||||||||||
28.03.2015, 22:38 [ТС] | 7 | ||||||||||
А как string из БД вывезти? Я добавил новое поле name, занёс туда значение Object_1. Строка выглядит так:
На что нужно заменить intVal? Добавлено через 54 минуты Пробовал так
0
|
4217 / 3412 / 396
Регистрация: 15.06.2009
Сообщений: 5,818
|
||||||||||||||||
29.03.2015, 05:32 | 8 | |||||||||||||||
Найдено в MSDN:
Следующий код показывает, как извлечь значение BSTR из COleVariant в CString:
Т.е. может работать так:
1
|
1 / 1 / 0
Регистрация: 10.11.2011
Сообщений: 85
|
|||||||||||
29.03.2015, 05:54 [ТС] | 9 | ||||||||||
На первый вариант ругается, что "expression must have pointer type", пробовал давать на входе указатель, не помогло. По второму варианту ругается, что а) _bstr_t идентификатор не определён(действительно, откуда Вы его взяли?) и б) CDaoRecordset не имеет члена GetFields(). Есть вариант, как исправить? Вот код полный, если что:
Добавлено через 8 минут Сработало так:
0
|
4217 / 3412 / 396
Регистрация: 15.06.2009
Сообщений: 5,818
|
||||||
29.03.2015, 14:37 | 10 | |||||
Правильно, это я сослепу пропустил &. Sorry
Всё остальное у меня было лишь для примера, как это работает в ADO, копировать текстуально в DAO не имеет смысла. _bstr_t - класс-оболочка для типа BSTR, подробности в MSDN. Возможная причина: кодировка (ANSI или UNICODE). Посмотрите отладчиком значение и тип переменной oVar перед выводом. Вариант (сокращено):
1
|
1 / 1 / 0
Регистрация: 10.11.2011
Сообщений: 85
|
|
29.03.2015, 17:12 [ТС] | 11 |
Том Ардер, oVar BSTR = 0x013eead4 L"Object_1"
Вот, собственно, программа этот адрес мне каждый раз и печатает. А текст-то как вывести?))
0
|
4217 / 3412 / 396
Регистрация: 15.06.2009
Сообщений: 5,818
|
|
29.03.2015, 17:31 | 12 |
Nicolazz, можете выложить сюда свою базу и проект со всеми файлами?
1
|
1 / 1 / 0
Регистрация: 10.11.2011
Сообщений: 85
|
|
29.03.2015, 19:42 [ТС] | 13 |
Том Ардер, https://yadi.sk/d/aAdN5y3QfbZAY
Добавлено через 2 часа 4 минуты Том Ардер, нет пока идей?
0
|
4217 / 3412 / 396
Регистрация: 15.06.2009
Сообщений: 5,818
|
|
29.03.2015, 20:01 | 14 |
Nicolazz, пока нет. Создал новый проект, у меня более старые версии VS, база не открывается, ошибка Open, отлаживаю.
1
|
1 / 1 / 0
Регистрация: 10.11.2011
Сообщений: 85
|
||||||
29.03.2015, 22:38 [ТС] | 15 | |||||
спасибо, что не бросаете)
Добавлено через 2 часа 30 минут Том Ардер, а как насчёт такой вот конструкции?
0
|
903 / 424 / 159
Регистрация: 02.04.2014
Сообщений: 1,206
|
|||||||||||
29.03.2015, 23:07 | 16 | ||||||||||
у меня вот так получилось:
но для _bstr_t нужно:
1
|
1 / 1 / 0
Регистрация: 10.11.2011
Сообщений: 85
|
||||||
30.03.2015, 05:44 [ТС] | 17 | |||||
rao, а можешь попробовать мой проект скомпилить? Ссылка тремя сообщениями выше. У меня постоянно ошибка компоновщика вылезает. Или полный код дай, я прямо не знаю....
Добавлено через 4 минуты А поподробнее можно? Куда точно либ подключать? Добавлено через 6 часов 27 минут rao, Том Ардер, последняя подсказка rao очень помогла! Всё заработало! Всем огромное спасибо!! Код:
0
|
30.03.2015, 05:44 | |
30.03.2015, 05:44 | |
Помогаю со студенческими работами здесь
17
Access violation при закрытии любого консольного приложения Подключение к MySql из консольного приложения (Android приложение C# Shell из Play Market) Выборка всех данных с последующим выводом через Ajax Получение данных из консольного приложения Визуализация данных консольного приложения в форме Создать базу данных используя только возможности консольного приложения Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |