Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ADO: как вы устанавливаете коннект с БД в, своей программе. Обработка exception etc 
:(
    Опции темы
malor
  Дата 14.11.2011, 12:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 632
Регистрация: 17.11.2006

Репутация: нет
Всего: нет



Вставляете в FormShow() строку 
ADOConnection.Connected := true
обертываете ее в блок try-catch и если соединение прошло успешно, то затем прописываете 
свойствам Active всех своих Query-элементов значение true?
Цитата
ADOQuery1.Active := true;
.......................
ADOQueryN.Active := true;


Зачем в строке подключения указывается пароль, ведь он уже прописан в ODBC-источнике данных?

P.S. Хроники ADO:
Проверка соединения с бд через ADO, Как проверить есть ли соединение
Delphi 7 + MySQL 5.X + Direct Access Components, как/чем отловить Connection Lost
Выдает ошибку при подключении к базе
Соединить Delphi с MS SQL
Connection strings for MySQL
Начинаю работать с ADO
Проверка существования MS SQL сервера

PM MAIL   Вверх
Данкинг
Дата 14.11.2011, 13:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 35
Всего: 130



Вопрос-то конкретно в чём?

Добавлено через 22 секунды
Цитата(malor @  14.11.2011,  13:23 Найти цитируемый пост)
Зачем в строке подключения указывается пароль, ведь он уже прописан в ODBC-источнике данных?

Ты про какую СУБД?


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
malor
  Дата 14.11.2011, 14:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 632
Регистрация: 17.11.2006

Репутация: нет
Всего: нет



Д>>Вопрос-то конкретно в чём?

Может что-то забыл упомянуть, что желательно делать при подключениях.


Д>>Ты про какую СУБД?

Про MySQL 5.5.17.
PM MAIL   Вверх
Antimol
Дата 14.11.2011, 14:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 118
Регистрация: 28.7.2007
Где: Украина, Киев

Репутация: 4
Всего: 4



Вот тут неплохо описано Подключение к MySQL  с помощью Delphi
Правда используются компоненты ZeosLib. Я не следил актуальность, но последняя версия кажется для Delphi 2010

Я сейчас использую компоненты UniDac. 

Это что касается используемых компонет,  а при использовании ОДБЦ нужно настраивать подключение, много мороки одним словом.

Наверняка с ОДБЦ использует свой механизм, а АДО свой, и для подтверждения личности нужно вводить логин/пароль и тут и там. 

Это сообщение отредактировал(а) Antimol - 14.11.2011, 15:00
--------------------
Лучшее спасибо это "+" к репутации.   Мой блог: ИНФОРМАТИЗАЦИЯ, и mirsovetov.net. Написание программ, исправление ошибок, статьи....
PM MAIL WWW ICQ   Вверх
Данкинг
Дата 14.11.2011, 17:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 35
Всего: 130



malor, ну так что мешает попробовать подключение на практике-то? Заодно и выяснишь, что забыл.


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
malor
  Дата 14.11.2011, 17:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 632
Регистрация: 17.11.2006

Репутация: нет
Всего: нет



Отключил в службах MySQL и запустил прогу:

user posted image

Код
procedure TManagerForm.FormShow(Sender: TObject);
begin

  try
    DataManagerModule.ADOConnectionManager.Connected := true;
  except
    on E: Exception do
      begin
        ShowMessage('Нет соединения с сервером!');
        Exit;
      end;
  end;

  GetData(Sender);

end;

PM MAIL   Вверх
superVad
Дата 15.11.2011, 14:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 735
Регистрация: 6.4.2006
Где: Черкассы, Украина

Репутация: 3
Всего: 15



malor, какой вопрос?
PM MAIL   Вверх
malor
  Дата 15.11.2011, 16:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 632
Регистрация: 17.11.2006

Репутация: нет
Всего: нет



Допустим у вас на форме несколько гридов, получающих в себя данные из ADOQuery-компонентов. При старте программы вы сделали
ADOConnection.Connected := true
и пользователь начал ей пользоваться. 

Спустя несколько часов СУБД стала по какой-либо причине недоступной.
Программа продолжает быть открытой у пользователя на компе. 

В некий момент происходит обновление данных в гриде:
ADOQuery элемент выставляет свое свойство Active равным true. Возникает эксепшен. Каков правильный подход?
Перед выполнением каждых строк вида 
ADOQuery.Active  := true
ADOQuery.ExecSQL

делать присвоение (обернутое в try-except)
ADOConnection.Connected := true;
?

PM MAIL   Вверх
superVad
Дата 15.11.2011, 16:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 735
Регистрация: 6.4.2006
Где: Черкассы, Украина

Репутация: 3
Всего: 15



malor, как вариант для ADOConnection в событии onDisconnect выдавать сообщение и закрывать программу. Перед обычным выходом присваивать этому событию nil.
Надо проверить конечно - сработает ли.
PM MAIL   Вверх
malor
  Дата 15.11.2011, 18:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 632
Регистрация: 17.11.2006

Репутация: нет
Всего: нет



Останавливал в службах MySQL сервер, но в процедуру 
procedure TDataManagerModule.ADOConnectionManagerDisconnect(Connection: TADOConnection; var EventStatus: TEventStatus);
прога не заходила...

Пост про дисконнекты:
Delphi 7 + MySQL 5.X + Direct Access Components, как/чем отловить Connection Lost
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.1231 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.