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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 21.10.2013, 13:56   #1
serpan
Новичок
Джуниор
 
Регистрация: 10.03.2009
Сообщений: 2
По умолчанию UniDAC, сообщения об ошибках

Народ, пишу приложение для выполнения SQL запросов к базе PostgreSQL. Использую UniDAC.
На форму кладу TUniConnection, TPostgreSQLProvider, TUniQuery, TButton.
В обработчике события OnClick кнопки пишем:

Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
  try
    UniQuery1.SQL.Text := 'select field from test';
    UniQuery1.ExecSQL;
  except
    on E: EDatabaseError do
      ShowMessage(E.Message);
  end;
end;
В базе нет таблицы "test", поэтому получаем ошибку:
отношение "test" не существует

Можно ли как-то получить так же строку и позицию, где произошла ошибка?
serpan вне форума Ответить с цитированием
Старый 21.10.2013, 14:36   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
так же строку и позицию, где произошла ошибка?
Так там одна строка, что получать то?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 21.10.2013, 14:42   #3
Vapaamies
Ваш К. О.
Участник клуба
 
Аватар для Vapaamies
 
Регистрация: 26.12.2012
Сообщений: 1,774
По умолчанию

Цитата:
Сообщение от serpan Посмотреть сообщение
Можно ли как-то получить так же строку и позицию
Если ее возвращает сервер и поддерживает UniDAC, номер строки должен быть в свойствах исключения.
Vapaamies вне форума Ответить с цитированием
Старый 23.10.2013, 21:06   #4
serpan
Новичок
Джуниор
 
Регистрация: 10.03.2009
Сообщений: 2
По умолчанию

Радует меня такая помощь. Мужики, спасибо! Что бы я без вас делал? Теперь сразу все стало понятно.
Цитата:
Сообщение от Stilet
Так там одна строка, что получать то?
А нельзя немного подумать, что sql может состоять из десяток строк, если объединять несколько таблиц, или например SQL с рекурсией?

Цитата:
Сообщение от Vapaamies
Если ее возвращает сервер и поддерживает UniDAC, номер строки должен быть в свойствах исключения.
Прямо открыли мне глаза!
Сервер данные возвращает, так как и pgAdmin и EMS SQL Manager for PostgreSQL сообщают одинаково об одной и той же ошибке. А вот возвращает ли UniDAC эти данные, или есть какой-то другой способ получить эти данные - в этом и состоял вопрос:
Цитата:
Сообщение от serpan
Можно ли как-то получить так же строку и позицию, где произошла ошибка?
serpan вне форума Ответить с цитированием
Старый 23.10.2013, 21:17   #5
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
Прямо открыли мне глаза!
http://www.stihi-rus.ru/1/krylov/1.htm
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 23.10.2013, 21:58   #6
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

Цитата:
Прямо открыли мне глаза!
ну вот теперь самая пора уже и заглянуть в те самые свойства исключения.
eval вне форума Ответить с цитированием
Старый 23.10.2013, 23:26   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
А нельзя немного подумать, что sql может состоять из десяток строк, если объединять несколько таблиц, или например SQL с рекурсией?
Можно. Именно поэтому умные дядьки создали функции Table-returned, View (представления) и еще кое что, жаль не помню как эта технология называется.
Я их использую для больших запросов, чего и тебе советую. Тогда поиск ошибки сведется к отладке в СУБД той или иной вьюшки.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с UniDac. Сохранение в MySQL GreenShuller БД в Delphi 14 24.02.2013 08:52
SQL запрос (UniDac) Prontit БД в Delphi 2 17.08.2011 09:03
Запуталась в ошибках Lisёноk Помощь студентам 8 12.12.2010 17:39
Перехват сообщений об ошибках Garacio_cain Общие вопросы Delphi 0 18.09.2009 15:08
Сообщения об ошибках IdFTP hotcooler17 Работа с сетью в Delphi 2 29.01.2009 14:24