Sergey_K
Forum Member / Участник форума
Участник № / Member № 136
отправлено / posted
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 |
отправлено / posted
1. Для каналов SQL_where действительно существует данное ограничение о необходимости совпадения его настроек с настройками канала, инициализирующего запрос. Используемый Вами способ является на данный момент единственным. 2. К сожалению, на данный момент другого способа нет. В следующих версиях системы предполагается значительное усовершенствование существующего механизма. 3. Указанная Вами особенность формирования запроса локализована. Это ошибка. Запись по ней занесена в базу для корректировки.
Сообщения / Posts 17322 | Из / From: Россия
| IP / IP: IP адрес / IP address |
Sergey_K
Forum Member / Участник форума
Участник № / Member № 136
отправлено / posted
Не могли бы Вы тогда подсказать каким образом мне выполнить следующие запросы. Необходимо вывести число из базы данных с возможностью ручной корректировки значения в базе данных, а затем это исправленное число снова вывести на экран. SELECT * FROM Tab WHERE field1=### UPDATE Tab WHERE field1=### Вместо field1=###, во втором случае, соответственно не происходит подстановка значения канала. Желательно, если возможно, выслать примерчик для работы с базой данных(например Access) на адрес Ligor@newmail.ru.
Сообщения / Posts 33 | Из / From: Украина
| IP / IP: IP адрес / IP address |
Sergey_K
Forum Member / Участник форума
Участник № / Member № 136
отправлено / posted
Извините, у меня с ящиком возникли проблемы, если будете что-то высылать, то используйте следующий адрес Ligor@ukrpost.net.
Сообщения / Posts 33 | Из / From: Украина
| IP / IP: IP адрес / IP address |
отправлено / posted
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 |
Sergey_K
Forum Member / Участник форума
Участник № / Member № 136