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

Доступ к данным

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

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

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

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

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

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

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

12
oxotnik
1628 / 1101 / 75
Регистрация: 21.08.2008
Сообщений: 4,625
Записей в блоге: 1
08.02.2010, 15:07 2
СУБД какая?
0
IvanKodanev
0 / 0 / 0
Регистрация: 08.02.2010
Сообщений: 8
08.02.2010, 16:31  [ТС] 3
СУБД любая, самая простая, не требующая специальной установки - требуется просто где-то хранить данные. Может существуют, например, такие специальные компоненты?
0
oxotnik
1628 / 1101 / 75
Регистрация: 21.08.2008
Сообщений: 4,625
Записей в блоге: 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
1628 / 1101 / 75
Регистрация: 21.08.2008
Сообщений: 4,625
Записей в блоге: 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
1628 / 1101 / 75
Регистрация: 21.08.2008
Сообщений: 4,625
Записей в блоге: 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
1628 / 1101 / 75
Регистрация: 21.08.2008
Сообщений: 4,625
Записей в блоге: 1
08.02.2010, 17:50 10
да прям при запуске программы делай чтение из файла строки подключения, и если файла нет, либо там нет этой строки, то выводи диалог подключения, если есть все, тогда автоматом подключайся, без вывода этого диалога.
0
IvanKodanev
0 / 0 / 0
Регистрация: 08.02.2010
Сообщений: 8
09.02.2010, 09:20  [ТС] 11
Я же говорю, не хочется задавать пользователю подобные странные вопросы "Какой провайдер использовать".
0
oxotnik
1628 / 1101 / 75
Регистрация: 21.08.2008
Сообщений: 4,625
Записей в блоге: 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

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

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

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


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

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

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