![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Доброго времени суток. Написал программу для работы с БД, используя для этого компоненты 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; |