Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++ Builder и базы данных
Войти
Регистрация
Восстановить пароль
 
IvanKodanev
0 / 0 / 0
Регистрация: 08.02.2010
Сообщений: 8
#1

Доступ к данным - C++ Builder БД

08.02.2010, 15:03. Просмотров 1007. Ответов 12
Метки нет (Все метки)

Можно ли и как работать с базами данных из C++ Builder не используя BDE?
По-видимому, один из ответов: ADO. Но какой использовать OLE DB провайдер так чтобы программа работала на любой машине с виндой?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.02.2010, 15:03
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Доступ к данным (C++ Builder БД):

Доступ к данным available-форм
Здравствуйте! У меня есть форма fAuth, она available, не создается...

Быстрый доступ к данным ListBox'a
AnsiString str; for(int i=0;i<lb->Items->Count;i++) {...

График по данным из DBGrid-а
Помогите построить грфик по данным из ДБГрида. Есть три столбца: Дата, сумма...

Создание отчета по данным ADOQuery
Пробую создать отчет в QuickRep, за определенную дату. Дату выбираю в Edit: ...

блок-схема по данным функциям
Не могли б вы начертить премитивненькую блок-схему по трем функциям данной...

построение графика по данным из файла
Доброго времени суток!!!у меня такой вопрос , возможно ли перевести массив...

12
oxotnik
1610 / 1087 / 71
Регистрация: 21.08.2008
Сообщений: 4,565
Записей в блоге: 1
08.02.2010, 15:07 #2
СУБД какая?
0
IvanKodanev
0 / 0 / 0
Регистрация: 08.02.2010
Сообщений: 8
08.02.2010, 16:31  [ТС] #3
СУБД любая, самая простая, не требующая специальной установки - требуется просто где-то хранить данные. Может существуют, например, такие специальные компоненты?
0
oxotnik
1610 / 1087 / 71
Регистрация: 21.08.2008
Сообщений: 4,565
Записей в блоге: 1
08.02.2010, 16:36 #4
Если не многопользовательская и данных не особо много, то аксесс подойдет. Драйверы ADO (JET), есть во всех виндах (начиная с 2000-х). Установка самого аксесса не требуется.
0
IvanKodanev
0 / 0 / 0
Регистрация: 08.02.2010
Сообщений: 8
08.02.2010, 17:07  [ТС] #5
А как быть с версиями Jet? На моём компе в списке провайдеров значится: Provider=Microsoft.Jet.OLEDB.4.0. А что если у пользователя другая версия? Как правильно указать провайдера?
0
oxotnik
1610 / 1087 / 71
Регистрация: 21.08.2008
Сообщений: 4,565
Записей в блоге: 1
08.02.2010, 17:12 #6
а пусть пользователь при первом старте программы выберет где у него файл с БД лежит, а потом TADOConnection::ConnectionString записать в файл, и при следующих запусказ восстанавливать из файла.
0
IvanKodanev
0 / 0 / 0
Регистрация: 08.02.2010
Сообщений: 8
08.02.2010, 17:33  [ТС] #7
Да ведь дело не в БД, а в имени Jet-провайдера. Они могут быть разных версий на разных компах. Как в этом случае правильно указать провайдера? (так чтоб от версии не зависело)
0
oxotnik
1610 / 1087 / 71
Регистрация: 21.08.2008
Сообщений: 4,565
Записей в блоге: 1
08.02.2010, 17:38 #8
Цитата Сообщение от IvanKodanev Посмотреть сообщение
Да ведь дело не в БД, а в имени Jet-провайдера. Они могут быть разных версий на разных компах. Как в этом случае правильно указать провайдера? (так чтоб от версии не зависело)
Вот этим диалогом выбора провайдера и указания где файл лежит и формируется строка подключения, с теми параметрами драйвера, какой установлен в системе у пользователя.
Код
AnsiString DS = PromptDataSource(reinterpret_cast<unsigned int>(Handle), "Provider=MSDASQL.1;Persist Security Info=False;Data Source=имя");
if(DS != "")
{
    ADOConnection1->Connected = false;
    ADOConnection1->ConnectionString = DS;
    ADOConnection1->Connected = true;
}
else  
{
    //Cancel
}
0
IvanKodanev
0 / 0 / 0
Регистрация: 08.02.2010
Сообщений: 8
08.02.2010, 17:48  [ТС] #9
А как пользователю объяснить, что он должен выбрать Jet-провайдер из списка провайдеров? ...
Такое решение не подходит - слишком накладно для пользователя.
Неужели не существует способа указать Jet-провайдер не указывая его версии?
0
oxotnik
1610 / 1087 / 71
Регистрация: 21.08.2008
Сообщений: 4,565
Записей в блоге: 1
08.02.2010, 17:50 #10
да прям при запуске программы делай чтение из файла строки подключения, и если файла нет, либо там нет этой строки, то выводи диалог подключения, если есть все, тогда автоматом подключайся, без вывода этого диалога.
0
IvanKodanev
0 / 0 / 0
Регистрация: 08.02.2010
Сообщений: 8
09.02.2010, 09:20  [ТС] #11
Я же говорю, не хочется задавать пользователю подобные странные вопросы "Какой провайдер использовать".
0
oxotnik
1610 / 1087 / 71
Регистрация: 21.08.2008
Сообщений: 4,565
Записей в блоге: 1
09.02.2010, 10:27 #12
Пропиши JET 4.0 , и заключи подключение к БД в блок try-cath, и если не сможет подключиться, тогда выдавай диалог самостоятельного подключения. Ну и инструкцию подробную составь.
0
Ex_Soft
107 / 107 / 15
Регистрация: 28.01.2009
Сообщений: 481
09.02.2010, 11:10 #13
Цитата Сообщение от IvanKodanev Посмотреть сообщение
не хочется задавать пользователю подобные странные вопросы "Какой провайдер использовать".
Покурите сие и подумайте: м.б. это Вы "...желаете странного..."? BTW, в который раз - повторюсь: "...кросс'СУБД'шное приложение - миф..." (кто-то из знаменитых оракулов). Ну, разве, что Вы с СУБД будете взаимодействовать на уровне тривиальных запросов.
1
09.02.2010, 11:10
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.02.2010, 11:10
Привет! Вот еще темы с решениями:

Постороение линейного графика по данным из StringGrid
Здравствуйте! Помогите, пожалуйста. Мне необходимо нарисовать линейный...

Построение графика в Chart по данным RichEdit
Добрый день. много тем про ричэдит, пожалуй и я спрошу. есть файл с данными...

Запросы по базе данным на языке SQL.....
Здраствуйте помогите сделать запросы по базе данных на языке SQL. 1)Кто из...

Как по данным из текстового файла нарисовать график
необходимо написать приложение, которое по данным из загружаемого текстового...


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

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

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