Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Перехват команды print при выполнении SQL-запроса, BDS2006+TAdoQuery 
:(
    Опции темы
FreePaul
  Дата 6.5.2006, 07:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Здравствуйте!
Есть скрипт, написанный не мной, для периодического внесения исправлений в базу данных. Захотелось написать программу для него. Все вроде как сделал, осталась одна "малость": как мне перехватьть и вывести в MessageBox сообщение, которое в теле скрипта выводится в ResultsPane. 
То есть в скрипте есть к примеру такой кусок:
Код

...
f @@error <> 0 goto ErrQuit
    if @@trancount > 0 commit tran
    print ''
    print 'Связь между документами успешно установлена!'
end
else
begin
    print ''
    print 'Связь между документами с данными регномерами уже существует!'
end
...

и я хочу сообщение 'Связь между документами успешно установлена!' или 'Связь между документами с данными регномерами уже существует!' вывести в MessageBox своей программы.
Как это можно осуществить?  

База данных: MSSQL2000
Доступ через TAdoQuery в связке с TAdoConnection
BDS2006 

Это сообщение отредактировал(а) FreePaul - 6.5.2006, 07:39
PM MAIL   Вверх
Vit
Дата 7.5.2006, 05:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

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



Никак. MDAC/ADO вообще не поддерживает передачу ошибок с уровнем ниже 16 и print. Сам бился над этим. Вроде в лоб решения проблемы не существует, возможно есть какие-то обходные пути типа прямых вызовов RPC или TDS или чтение каких-то логов или системных таблиц.   


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
FreePaul
Дата 10.5.2006, 02:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



А можно ли перехватить эти сообщения при помощи каких-либо других компонент? Если ДА, то каких? 
PM MAIL   Вверх
Vit
Дата 10.5.2006, 13:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

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



Компонентами вряд-ли... Копать в глубины реализации TDS 


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
Marduk
Дата 10.7.2009, 08:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



мне кажется можно extended stored proc создать которая бы посылала сообщения в приложение через UDP например, в делфи слушать этот порт, а на сервере использовать хранимку вместот print.
Код

f @@error <> 0 goto ErrQuit
    if @@trancount > 0 commit tran
    exec sp_SendUDPMessage '127.0.0.1', 'Связь между документами успешно установлена!'
end
else
begin
    exec sp_SendUDPMessage '127.0.0.1', 'Связь между документами с данными регномерами уже существует!'
end
...
 есть статья в drkb "обратная связь с SQL Server", там это описано
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

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

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


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

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

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


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

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


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

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


 




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


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

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