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

  Следующая старая тема / next oldest topic   Следующая новая тема / next newest topic
» Форум TRACE MODE: техническая поддержка » ТЕХНИЧЕСКАЯ ПОДДЕРЖКА / TECHNICAL SUPPORT TRACE MODE 5 » Работа в MS Windows (ODBC/DDE/OPC/NET) / Working under MS Windows » Ошибки обмена по ODBC

   
Автор / Author Тема / Topic: Ошибки обмена по ODBC
HELLA
Forum Haunter / Завсегдатай форума
Участник № / Member № 104


Icon 1 отправлено / posted      Профиль для / Profile for HELLA           Редактировать/удалить сообщение / Edit/Delete Post 
Добрый день!
Возможно ли узнать:1. Каким образом формируется код ошибки выполнения запроса по ODBC (Канал
подтипа Пустой с дополнением к подтипу SQL-
ВЫПОЛНИТЬ(INPUT).Например,что означает код 6 и 1?
2.Требуется записать по 4 параметра в 7 таблиц
одной базы данных (28 значений).
С помощью какой настройки канала SQL-выполнить
это можно осуществить - SQL(i),HEADER(J),FOOTER(l) или др.способом ?

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


Icon 4 отправлено / posted      Профиль для / Profile for АдАстра. Техподдержка           Редактировать/удалить сообщение / Edit/Delete Post 
1) В данном канале записываются коды ошибок, которые возвращает тот ODBC-драйвер, через который Вы работаете. Соответственно описание этих кодов ошибок необходимо смотреть в документации на этот ODBC-драйвер.

2) Именем таблицы управляет фрагмент HEADER, его номер задает параметр I1 канала ПУСТОЙ\SQL_выполнить - соответственно в конфигурационном файле odbc.cfg необходимо создать семь фрагментов HEADER, определяющих разные таблицы БД. А в проекте Вам понадобиться семь каналов ПУСТОЙ\SQL_Выполнить в разными настройками параметра I1 для формирования соответствующего SQL-запроса.

Сообщения / Posts 17083 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
HELLA
Forum Haunter / Завсегдатай форума
Участник № / Member № 104


Icon 1 отправлено / posted      Профиль для / Profile for HELLA           Редактировать/удалить сообщение / Edit/Delete Post 
Пока удалось распределить данные по таблицам
варьируя индекс SQL(I),но индекс по SQL(I)
может меняться от 1 до 4-х,согласно справочной
системе.Файл конфигурации odbc.cfg см.ниже:


DSN=test
USER=user
SQL1=SELECT * FROM test1
HEADER1=
FOOTER1=
SQL2=INSERT INTO test1
HEADER2=test1
FOOTER2=
SQL3=INSERT INTO test2
HEADER3=test2
FOOTER3=

test1, test2-таблицы в базе данныз test ACCESS-97
В каждую таблицу кладется по 4 значения.
Как правильно сформировать файл конфигурации
чтобы распределять каналы по таблицам за счет
параметра HEADER ?

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


Icon 1 отправлено / posted      Профиль для / Profile for АдАстра. Техподдержка           Редактировать/удалить сообщение / Edit/Delete Post 
Пример файла конфигурации:

DSN=test
USER=user
SQL1=SELECT * FROM
HEADER1=test1
FOOTER1=
SQL2=INSERT INTO
HEADER2=test2
FOOTER2=
...
HEADER3=test3
FOOTER3=
HEADER4=test4
HEADER5=test5
HEADER6=test6
HEADER7=test7

Теперь Вам надо создать 7 каналов "SQL_выполнить" с настройкой I0=0 и настройками I1=0, I1=1, ... ,I1=6 соответственно.
Они будут формировать запросы с использованием SQL(1) и HEADER1, HEADER2, ... , HEADER7 соответветственно.

Сообщения / Posts 17083 | Из / From: Россия  |  IP / IP: IP адрес / IP address | Report this post to a Moderator
HELLA
Forum Haunter / Завсегдатай форума
Участник № / Member № 104


Icon 1 отправлено / posted      Профиль для / Profile for HELLA           Редактировать/удалить сообщение / Edit/Delete Post 
Добрый день!
Спасибо за ответ,но он несколько не по теме:
Нам нужно работать только с SQL2=INSERT INTO
(вставлять данные в несколько таблиц-test1...test7).
При работе в ТМ5.09 с ACCESS-97 (база test)в профайлере
видим ,что правильно формируется лишь запрос
вида SQL2=INSERT INTO test1
HEADER2=
FOOTER2=

а запрос типа SQL2=INSERT INTO
HEADER2=test1
FOOTER=
"теряет" имя таблицы "test1".
В этих условиях мы можем работать с 4 - таблицами
по числу возможных операторов SQL(I).
Может быть в файле конфигурации используются
"невидимые" разделители типа "пробела"? или
есть другие тонкости ?

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


Icon 1 отправлено / posted      Профиль для / Profile for АдАстра. Техподдержка           Редактировать/удалить сообщение / Edit/Delete Post 
К сожалению применять HEADER для запроса INSERT INTO - невозможно. Мы постараемся исправить это в следующих релизах - сообщение об этом я внес в нашу базу улучшений.
На данный момент решить такую задачу можно только, если СУБД дбудет сама запрашивать данные из ТМ.

Сообщения / Posts 17083 | Из / 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