SIEMENS, DF&PD

Предыдущее посещение: Пн июн 27, 2016 1:54 Текущее время: Пн июн 27, 2016 1:54

Часовой пояс: UTC + 3 часа




 [ Сообщений: 28 ]  На страницу Пред.  1, 2
Автор Сообщение
 Заголовок сообщения:
СообщениеДобавлено: Пн мар 04, 2013 9:40 
Не в сети
Начинающий писатель

Зарегистрирован: Пн авг 22, 2005 14:05
Сообщения: 98
Откуда: г. Казань НПК "Волга-Автоматика"
Если 3 поля weight в таблице mytable: weight1, weight2, weight3


strSQL="SELECT (ISNULL(weight1,0)) as weight1, (ISNULL(weight2,0)) as weight2, (ISNULL(weight3,0)) as weight3 FROM mytable";

ADO_RSet=ADO_Conn->Execute(strSQL);
printf(ADO_RSet->Fields("weight1")->value);
printf(ADO_RSet->Fields("weight2")->value);
printf(ADO_RSet->Fields("weight3")->value);


У тебя какой сервер БД?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн мар 04, 2013 9:45 
Не в сети
Начинающий писатель

Зарегистрирован: Пн авг 22, 2005 14:05
Сообщения: 98
Откуда: г. Казань НПК "Волга-Автоматика"
canada писал(а):
А вот еще возник такой вопрос:
строка получения значения из поля
Код:
printf(ADO_RSet->Fields->Item(5)->value);

выдает ошибку Property value not avialable если поле пустое (NULL). В Базе данных свойства столбца допускают пустое значение. Если переделывать свойство на NOT NULL, то потеряются данные во всей таблице - что недопустимо.

Как обработать такое исключение в скрипте?


Как это у тебя потеряются все данные? поставь значение по Default равное 0 и свойтсво NOT NULLL для нужного столбца и ничего у тебя не потеряется


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн мар 04, 2013 9:59 
Не в сети
Написал больше чем Вы читали

Зарегистрирован: Вс янв 25, 2009 22:05
Сообщения: 1905
Откуда: Киров
cias писал(а):
Если 3 поля weight в таблице mytable: weight1, weight2, weight3


strSQL="SELECT (ISNULL(weight1,0)) as weight1, (ISNULL(weight2,0)) as weight2, (ISNULL(weight3,0)) as weight3 FROM mytable";

ADO_RSet=ADO_Conn->Execute(strSQL);
printf(ADO_RSet->Fields("weight1")->value);
printf(ADO_RSet->Fields("weight2")->value);
printf(ADO_RSet->Fields("weight3")->value);
...

Спасибо, попробую...

cias писал(а):
...
У тебя какой сервер БД?
...


MS SQL 2005

cias писал(а):
Как это у тебя потеряются все данные? поставь значение по Default равное 0 и свойтсво NOT NULLL для нужного столбца и ничего у тебя не потеряется...
...

Дык таблица уже создана и имеет порядка 4000 записей. В некоторых записях поле wieght уже NULL...
Поставить дефолтное значение можно , если только предварительно делать SQL запрос и заполнить пустые поля нолем...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт апр 02, 2013 5:53 
Не в сети
Известный Писатель

Зарегистрирован: Ср мар 24, 2010 13:55
Сообщения: 126
Здравствуйте. Подскажите, как можно вывести в окно WinCC таблицу "Table1" из собственной БД "DatabaseTest".
Если с возможностью фильтрации по какому либо столбцу и с возможностью правки значений в таблице - то было бы вообще хорошо.

Заранее спасибо.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт апр 02, 2013 6:58 
Не в сети
Известный Писатель

Зарегистрирован: Ср сен 17, 2008 9:13
Сообщения: 253
Откуда: Тула
Я бы предложил Вам создавать собственные таблицы в User Archive, так как есть соответствующий компонент для отображения их содержимого.
В Вашем случае надо искать/писать ActiveX.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт апр 02, 2013 10:55 
Не в сети
Известный Писатель

Зарегистрирован: Ср мар 28, 2007 8:50
Сообщения: 129
к предыдущим записям:
наткнулся в давнем скрипте на VBS
Код:
For i =0 To rsADO.Fields.Count-1
   If IsNull(rsADO.Fields(i)) Then
      str = "- - -"
   Else
      str = Cstr(rsADO.Fields(i))
   End If
...

в Си должно быть
Код:
if (rsADO.Fields(i) == NULL)

проверьте


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт апр 05, 2013 0:24 
Не в сети
Новый писатель

Зарегистрирован: Чт май 26, 2011 14:26
Сообщения: 39
Fresh писал(а):
Здравствуйте. Подскажите, как можно вывести в окно WinCC таблицу "Table1" из собственной БД "DatabaseTest".

Можно создать таблицу из подручного материала, например, так. Редактирование приделать тоже не проблема.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вс апр 07, 2013 20:41 
Не в сети
Написал больше чем Вы читали

Зарегистрирован: Вс янв 25, 2009 22:05
Сообщения: 1905
Откуда: Киров
Fresh писал(а):
... Подскажите, как можно вывести в окно WinCC таблицу "Table1" из собственной БД "DatabaseTest".
...

Используйте ActiveX ListViewCtrl


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
 [ Сообщений: 28 ]  На страницу Пред.  1, 2

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения

Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group