Форум TRACE MODE: техническая поддержка   
мой профиль / my profile авторизация / login | регистрация / register | поиск / search | часто задаваемые вопросы / faq | начало / forum home

  Следующая старая тема / next oldest topic   Следующая новая тема / next newest topic
» Форум TRACE MODE: техническая поддержка » ТЕХНИЧЕСКАЯ ПОДДЕРЖКА / TECHNICAL SUPPORT TRACE MODE 5 » Архивирование в TRACE MODE / Data Logging in Trace Mode » Работа с базой данных

   
Автор / Author Тема / Topic: Работа с базой данных
Sergey_K
Forum Member / Участник форума
Участник № / Member № 136


Icon 1 отправлено / posted      Профиль для / Profile for Sergey_K           Редактировать/удалить сообщение / Edit/Delete Post 
1. Необходимо выполнить запросы:
1) SELECT * FROM Tab WHERE field1=###
2) UPDATE Tab SET field2=### WHERE field1=###
Очевидно, что в файле odbc.cfg эти запросы будут располагаться в различных строках и соответствующие каналы SQL_выполнить должны иметь различные настройки I0 и I1.
При этом канал, из которого осуществляется подстановка (канал field1) должен иметь настройки I0 и I1, совпадающие с настройками канала SQL_выполнить. Таким образом, получается, невозможно осуществить подстановку значения канала field1 в оба запроса.
Поэтому необходимо либо изменять настройки I0 и I1 канала field1 в реальном времени (возможно ли вообще это сделать?) либо (что в действительности работает, но создает кучу неприятностей) создавать второй канал с тем же именем field1, но уже иными настройками I0 и I1.
Какой более разумный способ вы можете предложить для подстановки значения одного и того же канала в различные SQL-запросы?

2. Необходимо выполнить два запроса:
1) SELECT * FROM
2) UPDATE
Оба запроса относятся к одной и той же таблице.
Для того, чтобы по первому запросу были получены данные необходимо иметь каналы с именами, совпадающими с названиями полей таблицы и имеющие подтип ПУСТОЙ и дополнение in_null.
Для того, чтобы выполнить второй запрос и данные были переданы в таблицу необходимо иметь каналы подтипа ПУСТОЙ с дополнением SQL_для_вставки с именами, совпадающими с именами полей в таблице.
В итоге получается, что необходимо иметь каналы с одинаковыми именами, но разными типами.
Есть ли какой-нибудь другой способ?

3. Иметься запрос:
UPDATE Tab1 SET field1=1 WHERE field2=###
Все выполняется замечательно и вместо ### подставляется значение канала. Но как только записать запрос в виде
UPDATE Tab1 WHERE field2=###
(канал field1 имеет дополнение SQL_для_вставки)
Происходит следующее. ODBC-драйвер Trace Mode выдает следующий запрос
UPDATE Tab1 SET field1=1 WHERE field2=###
Не происходит подстановка вместо ### значения канала field2
Чем это вызвано?

Сообщения / Posts 33 | Из / From: Украина  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
АдАстра. Техподдержка
Administrator
Участник № / Member № 4


Icon 1 отправлено / posted      Профиль для / Profile for АдАстра. Техподдержка           Редактировать/удалить сообщение / Edit/Delete Post 
1. Для каналов SQL_where действительно существует данное ограничение о необходимости совпадения его настроек с настройками канала, инициализирующего запрос. Используемый Вами способ является на данный момент единственным.
2. К сожалению, на данный момент другого способа нет. В следующих версиях системы предполагается значительное усовершенствование существующего механизма.
3. Указанная Вами особенность формирования запроса локализована. Это ошибка. Запись по ней занесена в базу для корректировки.

Сообщения / Posts 17322 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Sergey_K
Forum Member / Участник форума
Участник № / Member № 136


Icon 1 отправлено / posted      Профиль для / Profile for Sergey_K           Редактировать/удалить сообщение / Edit/Delete Post 
Не могли бы Вы тогда подсказать каким образом мне выполнить следующие запросы. Необходимо вывести число из базы данных с возможностью ручной корректировки значения в базе данных, а затем это исправленное число снова вывести на экран.
SELECT * FROM Tab WHERE field1=###
UPDATE Tab WHERE field1=###
Вместо field1=###, во втором случае, соответственно не происходит подстановка значения канала. Желательно, если возможно, выслать примерчик для работы с базой данных(например Access) на адрес Ligor@newmail.ru.

Сообщения / Posts 33 | Из / From: Украина  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Sergey_K
Forum Member / Участник форума
Участник № / Member № 136


Icon 10 отправлено / posted      Профиль для / Profile for Sergey_K           Редактировать/удалить сообщение / Edit/Delete Post 
Извините, у меня с ящиком возникли проблемы, если будете что-то высылать, то используйте следующий адрес Ligor@ukrpost.net.
Сообщения / Posts 33 | Из / From: Украина  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
АдАстра. Техподдержка
Administrator
Участник № / Member № 4


Icon 2 отправлено / posted      Профиль для / Profile for АдАстра. Техподдержка           Редактировать/удалить сообщение / Edit/Delete Post 
1.Согласно спецификации инструкции UPDATE, Вам обязательно необходимо указывать предложение SET вместе с указанием перечня столбцов для обновления.
2.Пример решения Вашей задачи выслан на указанный адрес.
3.Данный раздел содержит темы, объединенные под названием: "Архивирование в TRACE MODE / Data Logging in Trace Mode".
В дальнейшем, вопросы связанные с затронутой Вами темой, будет корректнее задавать в разделе: "Работа в MS Windows ODBC/DDE/OPC/NET) / Working under MS Windows"

Сообщения / Posts 17322 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
Sergey_K
Forum Member / Участник форума
Участник № / Member № 136


Icon 10 отправлено / posted      Профиль для / Profile for Sergey_K           Редактировать/удалить сообщение / Edit/Delete Post 
Проект получил, спасибо за помощь. Очень помогли.
Сообщения / Posts 33 | Из / From: Украина  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
   

   Закрыть тему / Close Topic   Feature Topic   Переместить топик / Move Topic   Удалить топик / Delete Topic Следующая старая тема / next oldest topic   Следующая новая тема / next newest topic
 - Printer-friendly view of this topic
Перейти к / Hop To


Новости АСУ ТП / News | SCADA / HMI | Обучение / Trainings | Свяжитесь с нами / Contact Us



Powered by Infopop Corporation
UBB.classic™ 6.7.2