C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
как проверить что вернул EXEC?, MS SQL Server 2000
full_lamer
Отправлено: 08.04.2005, 08:41


Машинист паровоза

Группа: Участник
Сообщений: 225



доброго времени суток.
есть такая команда:
CODE
exec ('select * from ' + @table_name + ' where field1 = 1')

как можно средствами T-SQL проверить что вернула эта команда?
что например дальше исходя из результатов произвести дальнейшие действия...
спасибо
Gedeon
Отправлено: 08.04.2005, 12:17


Ветеран

Группа: Модератор
Сообщений: 1742



Что-то странный какой-то вопрос, опишите лучше что Вы хотите сделать, может можно проще, ато пока кроме временной таблицы никаких идей не приходит.

Вообще говоря можно и без временной попробовать, но это такой огород будет, что я думаю того не стоит.

Отредактировано Gedeon — 08/04/2005, 12:31
full_lamer
Отправлено: 08.04.2005, 12:29


Машинист паровоза

Группа: Участник
Сообщений: 225



ситуация такая. есть ХП общая для нескольких таблиц. в ХП передается только имя таблицы. после чего формируется и выполняется запрос, и если есть хоть одна выбранная запись — производиться добавление в другую таблицу. иначе ничего не происходит.
в принципе нужно сделать примерно следующее:
CODE
if (exists (exec ('select * from ' + @table_name + ' where field1 = 1'))) <do some thing>

чушь полная — но смысл я передал правильно... biggrin.gif
Gedeon
Отправлено: 08.04.2005, 12:38


Ветеран

Группа: Модератор
Сообщений: 1742



QUOTE (full_lamer @ 08/04/2005, 12:29)
есть ХП общая для нескольких таблиц. в ХП передается только имя таблицы. после чего формируется и выполняется запрос, и если есть хоть одна выбранная запись — производиться добавление в другую таблицу.

А что эти таблицы могут меняться? Если нет пересматривайте процедуру, ну а если да, давайте еще подробнее, просто неясно зачем вообще это нужно (такой принцип анализа).
AVC
Отправлено: 08.04.2005, 12:57


Ветеран

Группа: Модератор
Сообщений: 1583



QUOTE

есть ХП общая для нескольких таблиц. в ХП передается только имя таблицы. после чего формируется и выполняется запрос, и если есть хоть одна выбранная запись — производиться добавление в другую таблицу.

Добавление чего? Если просто флага то вам поможет днамический запрос типа Select Count(*) Into cnt From ...
Ну и далее, если cnt != 0 — добавить ...
full_lamer
Отправлено: 08.04.2005, 12:58


Машинист паровоза

Группа: Участник
Сообщений: 225



чтобы не писать отдельную хп для каждой таблицы, я сделал одну в которую передается имя таблицы. и после мне нужно смотреть что вышло в результате средствами T-SQL...
AVC
Отправлено: 08.04.2005, 13:05


Ветеран

Группа: Модератор
Сообщений: 1583



QUOTE

чтобы не писать отдельную хп для каждой таблицы, я сделал одну в которую передается имя таблицы. и после мне нужно смотреть что вышло в результате средствами T-SQL...

Вообще такого типа проблемы (с шаблонами) легко разрешимы на предыдущем уровне построения системы — при автоматизированной генерации скриптов для БД. Я пользуюсь ErWin'ом.
Кроме того, но это требует проверки у вашего сервера, динамические запросы могут выполняются медленне и их труднее отлаживать и модифицировать.

Отредактировано AVC — 08/04/2005, 12:07
full_lamer
Отправлено: 08.04.2005, 13:13


Машинист паровоза

Группа: Участник
Сообщений: 225



большое всем спасибо. в принципе задача уже разрешилась другим способом... просто хотелось узнать как же это можно сделать... буду методом научного втыка — но уже после здачи проекта... cool.gif
спасибо за участие!

Отредактировано full_lamer — 08/04/2005, 13:13

Вернуться в Работа с базами данных в C++Builder