Re: snmp мониторинг
Так же решил добавить еще вывод на почту пункта местоположение. Он присылается но вместо нужного текста кракозябры. не понимает кодировку)
My Visual Database → Russian → snmp мониторинг
Так же решил добавить еще вывод на почту пункта местоположение. Он присылается но вместо нужного текста кракозябры. не понимает кодировку)
Спасибо теперь письма приходят и в таблице нормально отображатеся, но вот там где нету картриджа он присылает письма всеравно но с отображение 0% возможно указать что бы следил где меньше 10% но больше 1%? и только если попадает в этот диапазон то присылать
попробуйте такое условие
if (ValidInt(procentYellow)) and (StrToInt(procentYellow) < 10) and (StrToInt(procentYellow) > 1) then
добавил что бы на почту еще ФИО из таблици отправлял в итоге присылает 10.7.39.51 а аЕбаКаИаМаАаН ааЛаЕаКбаАаНаДб ааМаИаЛбаЕаВаИб Magenta Cartridge HP CE403A
:7%
как исправить кракозябры?
и еще не понял как можно сделать что бы параметры сервера почты брал из бд
добавил что бы на почту еще ФИО из таблици отправлял в итоге присылает 10.7.39.51 а аЕбаКаИаМаАаН ааЛаЕаКбаАаНаДб ааМаИаЛбаЕаВаИб Magenta Cartridge HP CE403A
:7%
как исправить кракозябры?
Была ошибка в программе, скачайте пожалуйста последнюю бета версию снова
https://www.dropbox.com/s/abazohrbdt3p9 … a.zip?dl=0
А как сделать что бы можно было параметры сервера почты брал из бд
Сохраните параметры почты в БД, затем зная ID записи можно получить эти данные и подставить в фунцию SendMail, пример
var
sServer, sUserName, sFrom, sTo, sLogin, sPassword: string;
begin
sServer := SQLExecute('SELECT sServer FROM tablename WHERE id=1');
sUserName := SQLExecute('SELECT sUserName FROM tablename WHERE id=1');
sFrom := SQLExecute('SELECT sFrom FROM tablename WHERE id=1');
sTo := SQLExecute('SELECT sTo FROM tablename WHERE id=1');
sPassword := SQLExecute('SELECT sPassword FROM tablename WHERE id=1');
SendMail(sServer, sUserName, sPassword, 25, sFrom, sTo, ip + ' ' + 'Мало синего тонера "АО Консист-ОС(Курский)"', ip + ' : '+procentYellow+'%');
Можно сделать ограничение snmp запросов? А то если принтер не в сети то программа зависает где то на 2 минуты.
Можно сделать ограничение snmp запросов? А то если принтер не в сети то программа зависает где то на 2 минуты.
Имеете ввиду установить поменьше таймаут?
SNMP.ReceiveTimeout := 5000; // по умолчанию 5 сек, попробуйте его уменьшить
как можно реализовать что если принтер в сети то 1 если не в сети то 0
в принципе есть параметр статус с ошибками там выдает от 1 до 3 но вот как сделать что если ответа не получил записать 0?
в принципе есть параметр статус с ошибками там выдает от 1 до 3 но вот как сделать что если ответа не получил записать 0?
Пожалуйста, описывайте подробней, к сожалению я не знаю о каком параметре статуса идет речь.
В принципе мне надо что бы отображался принтер онлайн или нет. можно как вариант использовать oid статуса принтера который в ответ присылает 1 или 3. Вот как вариант решения я предложил что бы этот прараметр записывать и красить зеленым цветом то что больше 1. но вот как сделать что если он не получил ответ на oid то записать 0. Если есть какой другой вариант буду раз услышать) Спасибо заранее
примерно так
sStatus := GetMIBValue(ip, '1.3.6.1.2.1.43.11.1.1.8.1.1');
if sStatus = '' then sStatus := '0';
получается что то типо такого?
begin
ip := Form1.TableGrid1.Cells[0,i];
if ip <> '' then
begin
Form1.Label1.Caption := ip;
sStatus := GetMIBValue(ip, '1.3.6.1.2.1.43.11.1.1.8.1.1');
if sStatus = '' then sStatus := '0';
begin
if sStatus <> '' then SQLExecute('UPDATE printer SET Status = '''+sStatus+''' WHERE id='+IntToStr(Form1.TableGrid1.dbIndexToID(i)));
end;
end;
Я правильно понял?
Да, только имеются лишние begin end и условие if sStatus <> '' можно убрать
ip := Form1.TableGrid1.Cells[0,i];
if ip <> '' then
begin
Form1.Label1.Caption := ip;
sStatus := GetMIBValue(ip, '1.3.6.1.2.1.43.11.1.1.8.1.1');
if sStatus = '' then sStatus := '0';
SQLExecute('UPDATE printer SET Status = '''+sStatus+''' WHERE id='+IntToStr(Form1.TableGrid1.dbIndexToID(i)));
end;
Подскажите можно указать место хранения sql базы? предположим диск D
Запустите проект, затем зайдите в меню Options > Settings > Database location
Как можно исправить данную ошибку. Перевел проект на MySQL
Проект. Понимаю что ошибка из за ответа от принтера но может как то это исправить можно?
и еще вопрос можно ли как то сделать? выбор типа принтера цветной или черно белый и в зависимости от выбора будет опрашивать oid только 1 картриджа или чб? вкратце сделать выбор какие oid будет опрашивать на каждый принтер
как понял он текст понимает в кодировке ansi а при этом принтер передает в кодировке utf-8
вот какой ответ я получаю от принтера .1.3.6.1.2.1.43.11.1.1.6.1.1 = Черный картридж 14X HP CF214X
вот какой ответ я получаю через мониторинг который сделал в вашей среде разработки ЧеÑнÑй каÑÑÑидж 14X HP CF214X
в чем может быть проблема?
Как можно исправить данную ошибку. Перевел проект на MySQL
Попробуйте в SQL запросах использовать функцию escape_special_characters, которая экранирует спец символы, которые вызывают ошибку. Пример использования
if sPrintModel <> '' then SQLExecute('UPDATE printer SET PrintModel = '''+escape_special_characters(sPrintModel)+''' WHERE id='+IntToStr(Form1.TableGrid1.dbIndexToID(i))); // значение для получения модели принтера
и еще вопрос можно ли как то сделать? выбор типа принтера цветной или черно белый и в зависимости от выбора будет опрашивать oid только 1 картриджа или чб? вкратце сделать выбор какие oid будет опрашивать на каждый принтер
Если я правильно понимаю, то заранее не известна модель принтера и соотвественно не ясно, чб он или цветной.
Нет как раз модель известна и просто для него указать опрашивать oid только ЧБ а для другого уже все цвета опрашивать а для третьего предположим только красный картридж опрашивать. Тоесть при добавлении ip еще и указывать какой oid будет использоваться при опросе этого принтера (только ЧБ, Цветной все цвета или каждый цвет отдельно)
My Visual Database → Russian → snmp мониторинг
Powered by PunBB, supported by Informer Technologies, Inc.
Theme Hydrogen by Kushi