Форум программистов, компьютерный форум, киберфорум
C++ Builder: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.79/14: Рейтинг темы: голосов - 14, средняя оценка - 4.79
0 / 0 / 2
Регистрация: 20.04.2012
Сообщений: 35

Проверка наличия подключенной БД, с помощью ADOConnection

20.04.2012, 18:58. Показов 2953. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Искал по интернету, нигде ничего толкового не нашел. Если кто знает, помогите Plz.
БД подключена с помощью ADOConnection.
Суть в том, что при запуске программы, должна производится проверка наличия подключения БД, и если она корректно подключена - должно вывестись окно, с сообщением о том, что все прошло успешно. Если же нет - окно с кнопкой "Обзор..", где происходит выбор нового пути, к необходимой БД. Как это сделать, я понять не могу. Проблему составляет еще и то, что если тот путь, который уже указан в ADOConnection->ConnectionString не верен и по нему БД нет, то программа вообще даже не начинает выполняться. Просто выдает что определенный файл не найден и закрывается..
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
20.04.2012, 18:58
Ответы с готовыми решениями:

Проверка наличия папки с помощью клиентского скрипта
Пишу навигацию для html-курсов с однообразной структурой, которые потом будут закатываться на балванку. Хотелось бы сделать универсальное...

Проверка пути AdoConnection
Всем привет:) задача в следующем: соединяюсь с базой данных указывая путь в ADOConnection.connectionstring через OpenDialog, подскажите...

Проверка наличия шрифта в системе и установить если отсуствует + проверка запущен ли проект с правами админа
Здравствуйте. Как можно проверить наличия шрифта в системе и установить его если отсуствует. Ну плюс еще проверить запущен ли проект от...

14
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
20.04.2012, 21:36
Проверяешь наличие файла базы при помощи метода
C++
1
FileExists()
Добавлено через 8 минут
Если файл присутствует, то подключай его к проекту, если файла нет то используй OpenDialog для открытия фала и нахождения его
0
0 / 0 / 2
Регистрация: 20.04.2012
Сообщений: 35
20.04.2012, 22:23  [ТС]
Цитата Сообщение от Sasha Посмотреть сообщение
Проверяешь наличие файла базы при помощи метода
C++
1
FileExists()
Добавлено через 8 минут
Если файл присутствует, то подключай его к проекту, если файла нет то используй OpenDialog для открытия фала и нахождения его
Спасибо за наводку, но можно чуть по-подробнее, как подключить его в проект? В ADOConnection в свойстве ConnectionString много всяких параметров, как именно мне указать, что путь, который я выбрал через OpenDialog является путем к БД?

Добавлено через 24 минуты
И, расскажите, пожалуйста, как пользоваться этим методом FileExists)
0
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
20.04.2012, 22:24
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
 String WayToBase, filename = "BD.mdb";
  if(!FileExists(ExtractFilePath(Application->ExeName)+filename))
{
   AnsiString ds = "Â êîðíåâîì êàòàëîãå îòñóòñòâóåò ôàéë ñ èìåíåì \n\n\t" +filename;
 
     if (Application->MessageBox(ds.c_str(),"Ïðåäóïðåæäåíèå",MB_OK +MB_TOPMOST+ MB_ICONWARNING)==IDOK)
  {
     if(OpenDialog1->Execute())
      {
        filename = OpenDialog1->FileName;
        WayToBase=ExtractFilePath(Application->ExeName)+filename;
        ADOConnection1->ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+WayToBase+";Persist Security Info=True";
       ADOConnection1->Connected = true;
       ADOQuery1->ConnectionString = ADOConnection1->ConnectionString;
 }
  }
 
}
  
else
 {
 
  WayToBase=ExtractFilePath(Application->ExeName)+filename;
  ADOConnection1->ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+WayToBase+";Persist Security Info=True";
  ADOConnection1->Connected = true;
  ADOQuery1->ConnectionString = ADOConnection1->ConnectionString;
}
1
0 / 0 / 2
Регистрация: 20.04.2012
Сообщений: 35
20.04.2012, 22:37  [ТС]
Спасибо большое!)
Это, я так понимаю вешать на событие OnCreate? Повесив код туда, ошибка выдается, но OpenDialog не открывается.

_______________
А нет, он не открывался, только при компиляции и выполнении в самом Builder'е. Если запускать через *.exe все работает) Только при выборе БД выбивает вот такую ошибку: (дословно)
Access violation at address 00402D8f in module 'Project1.exe'. Read of address 000002F0.
Но БД все равно подключает. Что за ошибка, не подскажете? И как от нее избавиться?
0
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
20.04.2012, 22:40
Какая ошибка?
0
0 / 0 / 2
Регистрация: 20.04.2012
Сообщений: 35
20.04.2012, 22:47  [ТС]
Цитата Сообщение от Sasha Посмотреть сообщение
Какая ошибка?
Описал постом выше)
0
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
20.04.2012, 22:48
Какой у тебя билдер?
0
0 / 0 / 2
Регистрация: 20.04.2012
Сообщений: 35
20.04.2012, 22:53  [ТС]
Цитата Сообщение от Sasha Посмотреть сообщение
Какой у тебя билдер?
Шестой. Данные с БД просмотреть можно, но действия над ней также произвести не возможно. При попытке выдает такую же ошибку
0
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
20.04.2012, 22:56
выложи проект я гляну
0
0 / 0 / 2
Регистрация: 20.04.2012
Сообщений: 35
20.04.2012, 23:03  [ТС]
Цитата Сообщение от Sasha Посмотреть сообщение
выложи проект я гляну
Вот) На 2 форме твой код, на 4 сама БД. Спасибо)
Вложения
Тип файла: rar Pre-Reliase.rar (1.81 Мб, 8 просмотров)
0
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
20.04.2012, 23:48
Вот держи
Вложения
Тип файла: rar Pre-ReliaseEdit.rar (1.82 Мб, 27 просмотров)
0
0 / 0 / 2
Регистрация: 20.04.2012
Сообщений: 35
20.04.2012, 23:51  [ТС]
Цитата Сообщение от Sasha Посмотреть сообщение
Вот держи
Спасибо еще раз) А что там пришлось исправить? В чем была ошибка?
0
 Аватар для Sasha
4956 / 2420 / 531
Регистрация: 05.06.2008
Сообщений: 7,518
Записей в блоге: 3
20.04.2012, 23:54
Да там я просто код подправил в OpenDialoge кстати поставь фильтр в OpenDialoge, чтобы файл базы фильтровало
0
0 / 0 / 2
Регистрация: 20.04.2012
Сообщений: 35
21.04.2012, 00:14  [ТС]
Цитата Сообщение от Sasha Посмотреть сообщение
в OpenDialoge кстати поставь фильтр в OpenDialoge, чтобы файл базы фильтровало
уже)
Только вот, БД все равно не отображает. Ни если база в корне есть, ни если ее указать в другом каталоге. СonnectionString остается пустым все равно и он и должен быть пустым в начале?

Добавлено через 14 минут
_____________
А все, проблему решил)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
21.04.2012, 00:14
Помогаю со студенческими работами здесь

Проверка имени пользователя в ADOConnection
Всем доброго времени суток. Смысл задачи - доступ к базе через ADOConnection определенным пользователям (по списку логинов). Нужно сделать...

Timer - проверка подключения к БД ADOConnection
Добрый день! Прошу помочь) На форме имеются: ADOConnection Panel Timer Memo

ADOConnection, не пройдена проверка подлинности
имеется следующий код. база находится в папке с программой. procedure TForm1.FormCreate(Sender: TObject); begin ...

С помощью рефлексии нужно вызвать метод динамически подключенной библиотеки
С помощью рефлексии нужно вызвать метод динамически подключенной библиотеки. Делаю так: private void InvokeMethod(MethodInfo info,...

Сумирование по столбцу БД Access с помощью компонентов DBGrid,ADOConnection,ADODataSet
Ребят уже 3 часа я ищу как это сделать и не могу найти , нахожу чтото типо такого Query1->SQL->Text = "SELECT SUM(sum) FROM...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных через динамический список в справочнике
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru