Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Запуск функции из char 
V
    Опции темы
MadCoder
Дата 2.7.2008, 09:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Здравствуйте!

У меня есть такая таблица:

==============================================
| id  | Название                   | Функция | Если да | Если нет|
==============================================
 0    | Проверка телефона | CheckPhone | M02 | М04
 1    | Проверка адреса      | CheckAddr   | М03  | М05
==============================================

Как мне запустить функцию, указанную в текстовом поле "Функция" и в зависимости от результата (1 или 0) выбрать данные из полей (Если да или Если нет).
PM WWW ICQ   Вверх
Magnifico
Дата 2.7.2008, 11:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



только динамическим запросом
считывашь первое поле по курсору- заносишь в строковую переменную
составляешь динамичекий запрос и все это в цикле

начни отсюда http://www.sql.ru/faq/faq_topic.aspx?fid=104

я думаю твоя задача не стоит таких адских мучений:
раздели на две таблицы и вбей функции по дефолту (по челевечески)

Это сообщение отредактировал(а) Magnifico - 2.7.2008, 11:46


--------------------
Всё  в  порядке   -   спасибо  зарядке  !
PM MAIL   Вверх
MadCoder
Дата 2.7.2008, 13:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Magnifico @ 2.7.2008,  11:46)
только динамическим запросом
раздели на две таблицы и вбей функции по дефолту (по челевечески)

Не понял, это как?

Это сообщение отредактировал(а) MadCoder - 2.7.2008, 13:42
PM WWW ICQ   Вверх
Magnifico
Дата 2.7.2008, 15:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Код

create function Proverka(@val int)
returns bit
as
begin
declare 
@ret bit
if @val =0 
set @ret= 0
else
set @ret=1
return @ret
end
----------------------------------------
create table Proba
(
id int,
Название  nvarchar(25) , 
ЕслиДа  nvarchar(25),
ЕслиНет nvarchar(25)
)
-----------------------------------------------------
insert into Proba
select 0  , 'Проверка телефона' ,  'M02' , 'М04' union all
select 1  , 'Проверка адреса'  ,  'М03'  , 'М05'
-----------------------------------------------------
select case when dbo.proverka(0)=1  then ЕслиДа else ЕслиНет end
from proba



--------------------
Всё  в  порядке   -   спасибо  зарядке  !
PM MAIL   Вверх
MadCoder
Дата 3.7.2008, 09:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



А как быть, если у меня несколько функций?
PM WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "MS SQL"
Akina

Akina

Запрещается!

Публиковать ссылки и обсуждать взлом чего бы то ни было.

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы составления неспецифических запросов рассматриваются здесь
  • Используйте теги [code=sql][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.

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

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


 




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


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

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