|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
проверка ConnectionState (dbExpress)
Соединяюсь с MS SQL по dbExpress стандартным образом. после
MSSQLconnection.Connected := True; хотелось бы сделать проверку на наличие соединения с базой при помощи анализа свойства ConnectionState, однако при попытке выполнить if DataModule1.MSSQLConnection.ConnectionState = csStateOpen begin end; компилятор ругается на undeclared identifier: csStateOpen. Пробовал сравнивать как строку 'csStateOpen' ругается на несоответствие типов String и TConnectionState.. Искал в инете в исходниках разных, везде проверяется как у меня в первом случае и должно работать. Не понимаю в чем ошибка. |
#2
|
||||
|
||||
С БД никогда не работал, но подозреваю, что не хватает модуля, в котором объявлен тип TConnectionState.
Что делать, когда сломался комп: 1. Если вы юзер - делать ноги. 2. Если ремонтник - делать деньги. 3. Если вы программист - делать вид, что так было задумано. |
#3
|
|||
|
|||
он подключается в uses. Причем пробовал как вначале, так и после implementation аля чем черт не шутит. Не помогают такие манипуляции
|
#4
|
||||
|
||||
а может все из-за then
if DataModule1.MSSQLConnection.ConnectionState = csStateOpen then begin end; |
#5
|
||||
|
||||
пробовал в разных вариантах если then есть и uses то все нормально
(смотри файл) |
#6
|
|||
|
|||
прошу прощения, пропустил then при написании сообщения. В программе я его испаользую Во избежание дальнейших недоразумений привожу весь код процедуры и задаю вопрос вдогонку. Почему-то компилятор не обращает внимания на try-except. При Попытке соединиться с базой с пустыми параметрами выдается стандартное сообщение об ошибке глобального обработчика исключений. Также раскомментирование строки с EDatabaseError вызывает ошибку 'Undeclared Identifier' для EDatabaseError, что совершенно сбивает меня с толку.
Цитата:
|
#7
|
|||
|
|||
все проблемы решились с добавлением в uses "DBXpress, DB, SqlExpr". Спасибо!! В моей толстой книге и статьях в сети почему-то умалчиваются названия библиотек, которые необходимо подключить для нормальной работы.
Однако try-except всё равно не перехватывает исключение. Все комментарии снял, программа компилится нормально. |
#8
|
||||
|
||||
Вроде хватает даже одного uses DB;
кстати более удобно (по моему) Код:
type TDataModule1 = class(TDataModule) .... public { Public declarations } procedure DoConnect(); end; и вызывать потом DataModule1.DoConnect(); про ошибку если запускаешь под Делфи сперва выскакивает ее ошибка а если нажать продолжить то срабатывает программный except и второй вариант может ошибка возникает до try в строках: Код:
DataModule1.MSSQLConnection.Params.Values['HostName']:= EditServName.Text; DataModule1.MSSQLConnection.Params.Values['DataBase']:= EditDatabaseNAme.Text; DataModule1.MSSQLConnection.Params.Values['User_Name']:= EditUserName.Text; DataModule1.MSSQLConnection.Params.Values['Password']:= EditPassword.Text; Удачи. |