Форум: "Базы";
Текущий архив: 2006.04.16;
Скачать: [xml.tar.bz2];
ВнизНепонятки с хранимой процедурой Найти похожие ветки
← →
dreamse (2006-02-21 13:47) [0]В общем код
CREATE PROCEDURE AddPingstatList (
@date datetime,
@compNumber char(10),
@key char (10)
)
AS
UPDATE
Statis_ping
SET
Dateping = @date,
t010 = "1"
Должен обновить поля Dateping и поле t010 ( уставновить ему "1" ) что и происходит
Проблема вот в чём : Полей типа t010 у меня более 140 ( t010 , t011 , t012 , t013 , t014 и.д )
Все их переписывать в запросе нет нужды , можно ли сделать так :
UPDATE
Statis_ping
SET
Dateping = @date,
@key = "1"
А в @key уже будет записано имя поля т.е t010
Чтобы программа могла просто передавать имя поля и значение , а процедура писала бы в это поле , а не перечислять все 140 полей в процедуре
← →
stone © (2006-02-21 13:51) [1]можно
см. EXECUTE в BOL
← →
dreamse (2006-02-21 13:59) [2]> stone © (21.02.06 13:51) [1]
Не нашёл ... по запросу EXECUTE найдено 786 значений ... где искать ? или скажите как составить такой запрос... Срочно нужно
← →
MOA © (2006-02-21 14:03) [3]>Полей типа t010 у меня более 140
Следовательно, неладно что-то в датском королевстве ;).
А именно - структура базы спроектирована, видимо, как-то не так. Так редко бывает, чтобы такая колбаса была нужна. Да и геморроя при написании приложения будет изрядно - например, вот такого как в сабже.
Удачи!
← →
Ega23 © (2006-02-21 14:06) [4]
> Полей типа t010 у меня более 140
Какой ужас!!!!
Немедленно исправляй структуру базы, а то так намучаешься - мама не горюй!
← →
dreamse (2006-02-21 14:07) [5]> MOA © (21.02.06 14:03) [3]
Я всё понимаю что данный подход неверен , но нужно написать функцию которая бы пинговала клиентов каждый 10 минут и зановила данные в таблицу , чтобы потом можно было просмотреть когда и где клиенты были а когда их небыло :
Пример
http://acs.drage.kz/files/pic/ping.jpg
Сколько клиентов не известно ,
Если есть более радикальное решение данной задачи , то ознакомьте будьте любезны
← →
stone © (2006-02-21 14:11) [6]У тебя на каждый временной промежуток отдельное поле? Срочно меняй структуру.
← →
dreamse (2006-02-21 14:16) [7]> stone © (21.02.06 14:11) [6]
Каким образом ? мозги совсем что то не варят :( Весь день думаю уже над этим ...
Нужно :
1) Занесение данных каждые 10 минут на разное ( от 1 до 200 ) количество компьютеров клиентов
2) Чтение и формирование отчёта , либо графического представления ( как показано на рисунке , с вычитанием времени : сколько не пинговался клиент )
← →
MOA © (2006-02-21 14:22) [8]Например - таблица с полями "ИДклиента", "Время", "Состояние", ключ - "ИДклиента", "Время", возможно, дополнительно индекс по "Время" - но нужно смотреть. Для MSSQL подобная таблица - не вопрос, если железке хотя бы года 2001-2002.
Работа с такой таблице намного проще, не говоря уже о том, что правильнее. Да и
>на разное ( от 1 до 200 ) количество компьютеров
Удачи!
← →
stone © (2006-02-21 14:24) [9]Ну так и заноси компьютер, время и результат пингования
На экране рисуй временную карту (хоть как на рисунке) и закрашивай квадратики
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2006.04.16;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.037 c