Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.09.2015, 12:52   #1
Maxjuvefan
Пользователь
 
Регистрация: 24.08.2015
Сообщений: 46
По умолчанию Открытие БД через OpenDialog с помощью ADOConnection

Доброго времени суток. Написал программу для работы с БД, используя для этого компоненты ADOConnection, ADOQuery, DataSource, DBGrid и OpenDialog1. БД с расширением mdf открывает через свойство ConnectionString компонента ADOConnection. Добавляет новые данные, редактирует, удаляет. Только вот мне понадобилось открывать БД щелчком по кнопке через компонент OpenDialog1. Как это можно сделать?
Maxjuvefan вне форума Ответить с цитированием
Старый 29.09.2015, 13:05   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Нужно просто формировать строчку ConnectionString у вашего adoconnection

как это сделать легко найти поиском по форуму.
например,

http://programmersforum.ru/showthread.php?t=175335

http://programmersforum.ru/showthread.php?t=237071

http://programmersforum.ru/showthread.php?t=256825

и множество других аналогичных тем...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 30.09.2015, 10:26   #3
phomm
personality
Старожил
 
Аватар для phomm
 
Регистрация: 28.04.2009
Сообщений: 2,882
По умолчанию

Более предпочтительный имхо способ - через ADOConEd
http://www.cyberforum.ru/delphi/thread1208811.html
или тут на форуме по этому же слову поискать
phomm вне форума Ответить с цитированием
Старый 01.10.2015, 11:55   #4
Maxjuvefan
Пользователь
 
Регистрация: 24.08.2015
Сообщений: 46
По умолчанию

Проблема такая: устанавливаю соединение с базой sql через AdoConnection. Ввожу в поле edit имя базы. Если введено имя существующей базы, то соединение устанавливается. А если несуществующей - то delphi 2010 выдает ошибку Error "Источник данных не найден и не указан драйвер, используемый по умолчанию". Как сделать так, чтобы выводилось корректное соообщение о т ом, что соединение не удалось установить?
Код:
procedure TFormConnection.Edit1Change(Sender: TObject);
var Edi : TEdit;
begin
   Edi := Sender as TEdit;
   s:=edi.Text;
end;

procedure TFormConnection.ПодключитьClick(Sender: TObject);
begin   
   FormMain.ADOConnection1.Connected := false;
   FormMain.AdoConnection1.ConnectionString:='Provider=MSDASQL.1;Persist Security Info=False;Data Source=' + s;
   FormMain.ADOConnection1.Connected := true;
   if FormMain.ADOConnection1.Connected = true then
   begin
      ShowMessage('Соединение установлено!');
   end
   else
   ShowMessage('Соединение не удалось установить!');
end;
Еще такой вопрос. Нужно подключиться к бд sql. Файл, открываемый через opendialog, идет в data sourse= . Что должен содержать этот файл и как называться (любое имя)? Это же не может быть файл *.mdf, т.к. подключенный к базе он не может быть открыт, а не подключенный, он не является источником данных...
Код:
procedure TFormConnection.Edit1Change(Sender: TObject);
var Edi : TEdit;
begin
   Edi := Sender as TEdit;
   s:=edi.Text;
end;

procedure TFormMain.ConnectionBDClick(Sender: TObject);
begin
   if OpenDialog2.Execute then
   begin
      ADOConnection1.Connected := false;
      AdoConnection1.ConnectionString:='Provider=MSDASQL.1;Persist Security Info=False;Data Source=' + s;
      ADOConnection1.Connected := true;
      ShowMessage('Соединение установлено!');
   end
   else
      ShowMessage('Соединение не удалось выполнить!');
end;

Последний раз редактировалось Stilet; 01.10.2015 в 12:12.
Maxjuvefan вне форума Ответить с цитированием
Старый 01.10.2015, 12:13   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
procedure TFormConnection.ПодключитьClick(Sender: TObject);
begin   
   FormMain.ADOConnection1.Connected := false;
   FormMain.AdoConnection1.ConnectionString:='Provider=MSDASQL.1;Persist Security Info=False;Data Source=' + s;
 try
   FormMain.ADOConnection1.Connected := true;
   if FormMain.ADOConnection1.Connected then
   begin
      ShowMessage('Соединение установлено!');
   end
   else
   ShowMessage('Соединение не удалось установить!');
except
 on e:Exception do ShowMessage('Соединение не удалось установить!: '+e.Message);
end;
end;
Цитата:
Что должен содержать этот файл и как называться (любое имя)?
Имя значения не имеет. Главное формат файла.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 01.10.2015, 12:18   #6
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Код:
   if FormMain.ADOConnection1.Connected then
   begin
      ShowMessage('Соединение установлено!');
   end
   else
   ShowMessage('Соединение не удалось установить!');
Это зачем? Если оно не установится, то в except вывалится
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 01.10.2015, 12:30   #7
Maxjuvefan
Пользователь
 
Регистрация: 24.08.2015
Сообщений: 46
По умолчанию

Все равно сначала выводит ошибку delphi Debugger Exception Notification, что источник данных не найден и не указан драйвер, используемый по умолчанию, а потом уже корректое сообщение. Можно ли как-нибудь избавиться от "системной" ошибки?
Maxjuvefan вне форума Ответить с цитированием
Старый 01.10.2015, 12:44   #8
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
Можно ли как-нибудь избавиться от "системной" ошибки?
Стартуй exe не из под делфи
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 01.10.2015, 12:55   #9
Maxjuvefan
Пользователь
 
Регистрация: 24.08.2015
Сообщений: 46
По умолчанию

Хорошо, спасибо)
Maxjuvefan вне форума Ответить с цитированием
Старый 01.10.2015, 13:19   #10
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Все равно сначала выводит ошибку delphi Debugger Exception Notification,
эту реакцию на ошибку можно выключить в настройках Delphi.
Но, я бы оставил. Для разработчика полезно видеть.
А так, Вы уже знаете, что пользователь программы эту ошибку не увидит, у него видно будет то сообщение, что Вы выдаетё в ветке Exception...
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
проблемы с подключением к ms sql server через adoconnection Ernest027 БД в Delphi 2 07.08.2015 09:08
ADOconnection- соединение с БД через регистр Silverra Компоненты Delphi 4 13.02.2013 10:37
Как с помощью OpenDialog находить путь к папкам. Вадим Буренков Общие вопросы Delphi 1 12.07.2009 17:18
Как программно узнать путь к базе.Соединение через adoconnection. Moel БД в Delphi 1 26.10.2007 08:32