|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Открытие БД через OpenDialog с помощью ADOConnection
Доброго времени суток. Написал программу для работы с БД, используя для этого компоненты ADOConnection, ADOQuery, DataSource, DBGrid и OpenDialog1. БД с расширением mdf открывает через свойство ConnectionString компонента ADOConnection. Добавляет новые данные, редактирует, удаляет. Только вот мне понадобилось открывать БД щелчком по кнопке через компонент OpenDialog1. Как это можно сделать?
|
#2
|
|||
|
|||
1. Не надо дублировать сообщения.
2. Собственно, ConnectionString в ADOConnection - это простая строка. Тебе надо просто поменять там имя файла базы данных на то, которое ты получишь из OpenDialog.FileName. Т.е. я бы настроит один раз строку, потом скопировал бы ее как константу себе в код, заменим в ней имя файла БД на %s, далее воспользовался бы функцией Format. Код:
const myConnectionString = '...%s...'; procedure TForm1.ButtonOpenClick(Sender : TObject); begin if OpenDilalog1.Execute then begin ADOConnection.Connected := False; ADOConnection.ConnectionString := Format(myConnectionString,[OpenDilalog1.FileName]); ADOConnection.Connected := True; end; end; |
Этот пользователь сказал Спасибо lmikle за это полезное сообщение: | ||
Maxjuvefan (01.10.2015)
|
#3
|
|||
|
|||
Проблема такая: устанавливаю соединение с базой 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; Последний раз редактировалось lmikle, 01.10.2015 в 17:58. |
#4
|
|||
|
|||
Еще такой вопрос. Нужно подключиться к бд 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; Последний раз редактировалось lmikle, 01.10.2015 в 17:58. |
#5
|
|||
|
|||
1. Пользуемся тегами.
2. Лови эксепшн и обрабатывай его. Кстати, можно для начала просто проверить есть ли такой файл через функцию FileExists и/или в диалоге поставить флажок, что бы не позволял выбрать несуществующий файл. Код:
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 = true then ShowMessage('Соединение установлено!'); Except On E : Excaption Do ShowMessage('Соединение не удалось установить!'#13#10+E.Message); End; end; |