![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Непонятки с хранимой процедурой [D6, MSSQL]
dreamse © (2006-02-21 13:47:00)В общем код
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 14:24:00) [1]Ну так и заноси компьютер, время и результат пингования
На экране рисуй временную карту (хоть как на рисунке) и закрашивай квадратики
MOA (2006-02-21 14:22:00) [2]Например - таблица с полями "ИДклиента", "Время", "Состояние", ключ - "ИДклиента", "Время", возможно, дополнительно индекс по "Время" - но нужно смотреть. Для MSSQL подобная таблица - не вопрос, если железке хотя бы года 2001-2002.
Работа с такой таблице намного проще, не говоря уже о том, что правильнее. Да и
>на разное ( от 1 до 200 ) количество компьютеров
Удачи!
dreamse (2006-02-21 14:16:00) [3]> stone © (21.02.06 14:11) [6]
Каким образом ? мозги совсем что то не варят :( Весь день думаю уже над этим ...
Нужно :
1) Занесение данных каждые 10 минут на разное ( от 1 до 200 ) количество компьютеров клиентов
2) Чтение и формирование отчёта , либо графического представления ( как показано на рисунке , с вычитанием времени : сколько не пинговался клиент )
stone (2006-02-21 14:11:00) [4]У тебя на каждый временной промежуток отдельное поле? Срочно меняй структуру.
dreamse (2006-02-21 14:07:00) [5]> MOA © (21.02.06 14:03) [3]
Я всё понимаю что данный подход неверен , но нужно написать функцию которая бы пинговала клиентов каждый 10 минут и зановила данные в таблицу , чтобы потом можно было просмотреть когда и где клиенты были а когда их небыло :
Пример
http://acs.drage.kz/files/pic/ping.jpg
Сколько клиентов не известно ,
Если есть более радикальное решение данной задачи , то ознакомьте будьте любезны
Ega23 (2006-02-21 14:06:00) [6]
> Полей типа t010 у меня более 140
Какой ужас!!!!
Немедленно исправляй структуру базы, а то так намучаешься - мама не горюй!
MOA (2006-02-21 14:03:00) [7]>Полей типа t010 у меня более 140
Следовательно, неладно что-то в датском королевстве ;).
А именно - структура базы спроектирована, видимо, как-то не так. Так редко бывает, чтобы такая колбаса была нужна. Да и геморроя при написании приложения будет изрядно - например, вот такого как в сабже.
Удачи!
dreamse (2006-02-21 13:59:00) [8]> stone © (21.02.06 13:51) [1]
Не нашёл ... по запросу EXECUTE найдено 786 значений ... где искать ? или скажите как составить такой запрос... Срочно нужно
stone (2006-02-21 13:51:00) [9]можно
см. EXECUTE в BOL