Форум программистов, компьютерный форум, киберфорум
Наши страницы

C++ Builder и базы данных

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.80
TheSteelRat
0 / 0 / 0
Регистрация: 25.06.2010
Сообщений: 36
#1

Извлечение данных из БД используя dbexpress - C++ Builder БД

03.07.2010, 11:08. Просмотров 1317. Ответов 7
Метки нет (Все метки)

Доброго времени суток форумчане!
Передо мной стоит задача извлеч данные из таблицы для их использования в коде.
Подключаюсь через dbexpress к mysql. Подключаюсь через TSQLConnection. Всё отлично подключается, через метод TSQLConnection->Execute выполняю запросы к БД.
Но как мне через этот метод TSQLConnection->Execute извлеч данные из БД? Я бы их потом как-то в цикле обошёл и использовал в качестве значений переменных.

Посмотрел справку по билдеру, там есть третий параметр у Execute void * ResultSet , но вот какого конкретного типа болжен быть указатель на void там как-то смутно написано, а тем более как потом из этого всего извлеч данные для пользования, то вообще потёмки...

Надеюсь на вашу помощь.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.07.2010, 11:08
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Извлечение данных из БД используя dbexpress (C++ Builder БД):

Извлечение данных из TList - C++ Builder
Доброго времени суток. Есть проблема: Имеется набор данных (DataSet), из которого нужно получить все значения одной из колонок...

InterBase извлечение данных - C++ Builder БД
Здравствуйте. Делаю небольшой клиент для работы с InterBase на си билдере. Вообщем, на форме делаю таблицу, в которой отображается...

Извлечение данных из файла - C++ Builder
При добавлении в базу данных информации, и при нажатии затем на кнопку вывода информации, все хорошо, информация без проблем выводится в...

Извлечение данных из внешнего приложения - C++ Builder
как в мою программу можно копировать данные из внешней? значение нужно извлечь из statusbar panel в memo допустим

DBExpress+DDL MySQL - C++ Builder БД
Пытаюсь выполнить DDL скрипт создания БД в MySQL через dxExpress, используя метод TSQLConnection ExecuteDirect. Если в скрипте...

С++ Builder (dbExpress) + MySQL - C++ Builder БД
Приветствую всех. Нуждаюсь в помощи. Нужна информация\гайды\книги\etc по компонентам класса dbExpress. (интересует, работа с...

7
Lord_Voodoo
Супер-модератор
8596 / 2216 / 61
Регистрация: 07.03.2007
Сообщений: 10,773
Завершенные тесты: 1
03.07.2010, 11:53 #2
а чего бы не использовать к примеру TSQLTable или TSQLQuery, тогда работать можно по аналогии с TTable или TQuery, а еще лучше юзать компоненты, которые строго заточены под конкретную базу, гораздо удобнее и гибче это все будет
0
TheSteelRat
0 / 0 / 0
Регистрация: 25.06.2010
Сообщений: 36
03.07.2010, 12:06  [ТС] #3
Моему приложению надо выполнять всего 2 действия:
1. Послать запрос к БД, не требующий ответа.
2. Послать запрос к БД, и разобрать по косточкам ответ на этот запрос.

Больше мне ничего не надо. С первым действием легко справляется TSQLConnection->ExecuteDirect(). А со вторым по-идее должно справляться TSQLConnection->Execute(), так как оно получает ответ от БД.
Так зачем мне ещё надо забивать память какими-то дополнительными компонентами, если я буду использовать лишь малую часть их методов?
0
Lord_Voodoo
Супер-модератор
8596 / 2216 / 61
Регистрация: 07.03.2007
Сообщений: 10,773
Завершенные тесты: 1
03.07.2010, 12:56 #4
TheSteelRat, оно конечно вам виднее, как и что делать в своих прогах, я соединение использую только для коннекта к базе, а остальные операции делаю с помощью запроса... прироста к размеру проги будет не такой уж и большой, потому что большинство хидеров у них одинаковые...

вот так работает (Con - TSQLConnection, ds - TSQLDataSet)
C++
1
2
3
4
5
6
  Con->Connected = true;
  AnsiString sql = "select * from tmp";
  int r = Con->Execute(sql, NULL, &ds);
  ds->Open();
  Edit1->Text = ds->FieldByName("NAME")->AsString;
  ds->Close();
1
TheSteelRat
0 / 0 / 0
Регистрация: 25.06.2010
Сообщений: 36
03.07.2010, 13:28  [ТС] #5
Вот это мне как раз и надо было . Большое спасибо. Только вот у меня в результате int r == 0 всегда... Это походу типа сколько изменено было записей. А вот ExecuteDirect показывает именно кол-во записей при Select запросе. Так что я юзаю ds->RecordCount, он показывает кол-во содержащихся в нем записей.
0
Lord_Voodoo
Супер-модератор
8596 / 2216 / 61
Регистрация: 07.03.2007
Сообщений: 10,773
Завершенные тесты: 1
04.07.2010, 11:23 #6
TheSteelRat, да если честно, я так наобум получил данные и напечатал код, особо с этой технологией не разбирался, хотя хелп пишет, что должна функция возвращать кол-во данных
0
TheSteelRat
0 / 0 / 0
Регистрация: 25.06.2010
Сообщений: 36
04.07.2010, 15:38  [ТС] #7
Lord_Voodoo, ну как бы там типа этого написано, но там написано, что она возвращает кол-во затронутых Записей(records), а метод ExecuteDirect написано что возвращает кол-во затронутых Строк(rows). В итоге получается, что ExecuteDirect мне показывает сколько записей подходит под мои критерии при запросе SELECT, а Execute пишет 0
0
Lord_Voodoo
Супер-модератор
8596 / 2216 / 61
Регистрация: 07.03.2007
Сообщений: 10,773
Завершенные тесты: 1
04.07.2010, 15:56 #8
TheSteelRat, видать execute заточен по запросы, связанные с модификацией базы, если не лень, проверь, что вернет метод на запрос к примеру insert
0
04.07.2010, 15:56
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.07.2010, 15:56
Привет! Вот еще темы с ответами:

dbExpress подключение в отдельном потоке - C++ Builder БД
Добрый день! Есть dll библиотека, подключающаяся к приложению. Но при подключении на сколько я знаю новый поток для неё не создаётся. В...

Datasnap Провайдеры DbEXpress - картинки (Blob поле) не пишутся в физическую базу данных - Delphi БД
Дорогие друзья, форумчане, уважаемые люди. Прошу помочь разобраться - не пишутся картинки в физическую базу данных. Есть 3-х звенка...

Извлечение данных с сайта и загрузка этих данных в эксель - VBA
Всем доброго суток. Вопрос такого плана. Есть подраздел на сайте. В качестве примера рассмотрим сайт НБА (nba.com). Там есть раздел...

извлечение данных из базы данных и работа с ними - Visual C++ БД
Здравствуйте! я начинающий программист и нужна ваша помощь. мне нужно написать дипломный проект. он заключается в следующем. нужно создать...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

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