На форуме обязательно:
  1. Заполнить свой профиль НА РУССКОМ ЯЗЫКЕ КИРИЛИЦЕЙ. См. Правила, п.2.d.
  2. Не писать свой вопрос в первую попавшуюся тему, а вместо этого создать свою. См. Правила, п.3.a.

Рекламу мы не размещаем ни на каких условиях.

Intouch & MSSQL

Ответить

Автор темы
nike
здесь недавно
здесь недавно
Сообщения: 13
Зарегистрирован: 24 авг 2011, 13:48
Имя: pupkin

Intouch & MSSQL

Сообщение nike » 02 фев 2012, 12:45

Всем доброго дня!
недавно начал изучение intouch 10.1

теперь стоит задача связаться с MSSQL (стоит 2008 R2)
т.е. у меня есть какая-то таблица и надо чтобы данные из таблицы отображались в Intouch.
с чего начать помогите новичку, плиз!

нашел примерное описание http://files.mail.ru/ZHN4TS, но что -то не получается с ним разобраться.


Автор темы
nike
здесь недавно
здесь недавно
Сообщения: 13
Зарегистрирован: 24 авг 2011, 13:48
Имя: pupkin

Re: Intouch & MSSQL

Сообщение nike » 06 фев 2012, 08:19

Вопрос остается открытым.

неужели никто ничем не может помочь?


LexSL
здесь недавно
здесь недавно
Сообщения: 80
Зарегистрирован: 16 дек 2011, 14:13
Имя: Михайлов Алексей
Поблагодарили: 8 раз

Re: Intouch & MSSQL

Сообщение LexSL » 06 фев 2012, 10:31

Доброго дня!
Как такового табличного отображения в Интаче нет. (или я не встречал подобного).
Тот путь, который предполагает использование функций типа SQLConnect, SQLSelect,..SQLNext.. и прочие функции, будет отображать Вам выбранную строку . То есть Вы заводите столько тегов, сколько столбцов в вашей таблице, функцией SQLSelect заполняете BindList,в котором задано соответствие ваших тегов и полей в таблице. А далее, функциями SQLNext, SQLPrev, SQLFirst и т.д. получаете данные.
Правда есть еще ActiveX wwGenericSqlGrid (http://fa.sammicomputer.co.kr/TECH/html/t001046.htm), который можно встроить в Интач и по OnShow окна, на котором расположен этот Grid, делать необходимые запросы..(но мне лично этот ActiveX не нравиться).
Вообще, табличное представление полученных данных, будь то данные от SQL или текущие данные очень хотелось бы иметь. Например впрямую этот контрол настраивать на нужные теги и на каждую строку накладывать условие по цвету например.


Автор темы
nike
здесь недавно
здесь недавно
Сообщения: 13
Зарегистрирован: 24 авг 2011, 13:48
Имя: pupkin

Re: Intouch & MSSQL

Сообщение nike » 06 фев 2012, 12:57

LexSL писал(а):Доброго дня!
Как такового табличного отображения в Интаче нет. (или я не встречал подобного).
Тот путь, который предполагает использование функций типа SQLConnect, SQLSelect,..SQLNext.. и прочие функции, будет отображать Вам выбранную строку . То есть Вы заводите столько тегов, сколько столбцов в вашей таблице, функцией SQLSelect заполняете BindList,в котором задано соответствие ваших тегов и полей в таблице. А далее, функциями SQLNext, SQLPrev, SQLFirst и т.д. получаете данные.
А не могли бы скинуть скины или поподробней расписать или пример, если есть


LexSL
здесь недавно
здесь недавно
Сообщения: 80
Зарегистрирован: 16 дек 2011, 14:13
Имя: Михайлов Алексей
Поблагодарили: 8 раз

Re: Intouch & MSSQL

Сообщение LexSL » 06 фев 2012, 13:43

А что конкретно-то не получается? в том файле SQLAccess.doc вроде все подробно расписано (сам с него же и начинал когда-то), одно только замечание:
Если у вас стоит Win7 64 бит, то когда вы создаете DSN для SQL Server, создавать его надо в 64-битной версии программы: путь такой C:\Windows\SysWOW64\odbcad32.exe.( по крайней мере, у меня так было.)


Автор темы
nike
здесь недавно
здесь недавно
Сообщения: 13
Зарегистрирован: 24 авг 2011, 13:48
Имя: pupkin

Re: Intouch & MSSQL

Сообщение nike » 06 фев 2012, 13:58

стоит обычная XP sp3
т.е. в 15 пункте:
SQL Errors: Value Display >> String >> SQLErrorMsg(SQL_error)
он дает ошибку : Cannot mix another type with string
и я делаю Value Display >> Analog>> SQLErrorMsg(SQL_error) (так ошибок никаких нет, но походу это не правильно)

затем создаю кнопки touch pushbuttons >> Action и втавляю скрипты для каждой кнопки. захожу в window viwer.
но ничего не происходит(


LexSL
здесь недавно
здесь недавно
Сообщения: 80
Зарегистрирован: 16 дек 2011, 14:13
Имя: Михайлов Алексей
Поблагодарили: 8 раз

Re: Intouch & MSSQL

Сообщение LexSL » 06 фев 2012, 14:25

nike писал(а):и я делаю Value Display >> Analog>> SQLErrorMsg(SQL_error) (так ошибок никаких нет, но походу это не правильно)
Из хелпа: "The SQLErrorMsg() function returns the error message associated with the result code and assigns it as the value of an InTouch message tag. "
функция SQLErrorMsg(int resultCode) возвращает строку! по номеру ошибки. поэтому Вам необходимо привязывать не к Value Display->Analog, а к Value Display -> String.
Вообще, все ошибки Viewer "складывает" в LogViewer, в том числе и по соединению с MSSQL (смотреть в Archestra System Management Console).
Будьте добры, выложите лог, чтобы мне не гадать.(весь лог не нужен :) , только записи об ошибке ).
Кстати, по завершению приложения не забывайте вызывать функцию SQLDisconnect..


Автор темы
nike
здесь недавно
здесь недавно
Сообщения: 13
Зарегистрирован: 24 авг 2011, 13:48
Имя: pupkin

Re: Intouch & MSSQL

Сообщение nike » 06 фев 2012, 15:48

последнее выглядит так:

Код: Выделить всё

445832	06.02.2012	15:02:21	5188	8844	Info	WWSQL	Error: Connection failed DSN=SQL_Data;UID=sa;PWD=sa;Database=test
445833	06.02.2012	15:02:21	5188	8844	Info	WWSQL	-1:  Microsoft OLE DB Provider for ODBC Drivers: [Microsoft][ODBC SQL Server Driver][SQL Server]Login failed for user 'sa'.
445834	06.02.2012	15:02:21	5188	8844	Info	WWSQL	Error: Connection failed DSN=SQL_Data;UID=sa;PWD=sa;Database=test
445835	06.02.2012	15:02:21	5188	8844	Info	WWSQL	-1:  Microsoft OLE DB Provider for ODBC Drivers: [Microsoft][ODBC SQL Server Driver][SQL Server]Login failed for user 'sa'.
445836	06.02.2012	15:02:21	5188	8844	Info	WWSQL	Error: Connection failed DSN=SQL_Data;UID=sa;PWD=sa;Database=test
445837	06.02.2012	15:02:21	5188	8844	Info	WWSQL	-1:  Microsoft OLE DB Provider for ODBC Drivers: [Microsoft][ODBC SQL Server Driver][SQL Server]Login failed for user 'sa'.
445838	06.02.2012	15:02:21	5188	8844	Info	WWSQL	Error: Connection failed DSN=SQL_Data;UID=sa;PWD=sa;Database=test
445839	06.02.2012	15:02:21	5188	8844	Info	WWSQL	-1:  Microsoft OLE DB Provider for ODBC Drivers: [Microsoft][ODBC SQL Server Driver][SQL Server]Login failed for user 'sa'.
445840	06.02.2012	15:02:21	5188	8844	Info	WWSQL	Error: Connection failed DSN=SQL_Data;UID=sa;PWD=sa;Database=test
445841	06.02.2012	15:02:21	5188	8844	Info	WWSQL	-1:  Microsoft OLE DB Provider for ODBC Drivers: [Microsoft][ODBC SQL Server Driver][SQL Server]Login failed for user 'sa'.
445842	06.02.2012	15:02:22	5188	8844	Info	WWSQL	Error: Connection failed DSN=SQL_Data;UID=sa;PWD=sa;Database=test
445843	06.02.2012	15:02:22	5188	8844	Info	WWSQL	-1:  Microsoft OLE DB Provider for ODBC Drivers: [Microsoft][ODBC SQL Server Driver][SQL Server]Login failed for user 'sa'.
445844	06.02.2012	15:02:22	5188	8844	Info	WWSQL	Error: Connection failed DSN=SQL_Data;UID=sa;PWD=sa;Database=test
445845	06.02.2012	15:02:22	5188	8844	Info	WWSQL	-1:  Microsoft OLE DB Provider for ODBC Drivers: [Microsoft][ODBC SQL Server Driver][SQL Server]Login failed for user 'sa'.
445846	06.02.2012	15:02:22	5188	8844	Info	WWSQL	Error: Connection failed DSN=SQL_Data;UID=sa;PWD=sa;Database=test
445847	06.02.2012	15:02:22	5188	8844	Info	WWSQL	-1:  Microsoft OLE DB Provider for ODBC Drivers: [Microsoft][ODBC SQL Server Driver][SQL Server]Login failed for user 'sa'.
445848	06.02.2012	15:02:22	8968	8972	Info	hd	InTouch Historical Data Server shutting down
445849	06.02.2012	15:02:22	8968	8972	Info	hd	Historical Data Utility shutting down
445850	06.02.2012	15:02:22	5188	8844	Info	WC	WC shutting down...
445851	06.02.2012	15:02:28	1320	1264	Info	AlarmMgr	AlarmMgr on AIDAR shutdown
445852	06.02.2012	15:02:28	3340	3344	Info	WC	WC shutting down...
445853	06.02.2012	15:03:44	672	692	Info	aaLogger	Logger Shutting down.
445854	06.02.2012	16:37:08	664	684	Info	aaLogger	Logger Started.
445855	06.02.2012	16:37:08	664	684	Info	aaLogger	Logger Started.
445856	06.02.2012	16:44:07	676	696	Info	aaLogger	Logger Started.
445857	06.02.2012	16:44:07	676	696	Info	aaLogger	Logger Started.


LexSL
здесь недавно
здесь недавно
Сообщения: 80
Зарегистрирован: 16 дек 2011, 14:13
Имя: Михайлов Алексей
Поблагодарили: 8 раз

Re: Intouch & MSSQL

Сообщение LexSL » 06 фев 2012, 16:05

ну вот что здесь непонятного? :) ясно пишут что коннект не удался под юзером sa. Вы когда DSN создаете, пробуете "Test Connection" под этим пользователем и его паролем?

.."DSN=SQL_Data;UID=sa;PWD=sa;Database=test"
Формат строки подключения правильный.

//Upd/
Наверно у Вас sa (sysadmin) имеет другой пароль.


Автор темы
nike
здесь недавно
здесь недавно
Сообщения: 13
Зарегистрирован: 24 авг 2011, 13:48
Имя: pupkin

Re: Intouch & MSSQL

Сообщение nike » 06 фев 2012, 17:04

в источнике данных ODBC когда создаю новый системный DSN ,Test Connection прошел успешно.


LexSL
здесь недавно
здесь недавно
Сообщения: 80
Зарегистрирован: 16 дек 2011, 14:13
Имя: Михайлов Алексей
Поблагодарили: 8 раз

Re: Intouch & MSSQL

Сообщение LexSL » 06 фев 2012, 17:12

значит я не угадал :)


ANY
здесь недавно
здесь недавно
Сообщения: 4
Зарегистрирован: 10 июл 2012, 12:05
Имя: Yerofeyev Alexey
Откуда: Russia

Re: Intouch & MSSQL

Сообщение ANY » 04 дек 2014, 14:26

нашел по 10 версии, проверял в 9,5
"Далее приведены некоторые опытные наблюдения, которые были замечены в процессе настройки SQL-сервера и попыток подключения к нему из Wonderware InTouch:
1. Wonderware InTouch может подключаться к SQL-серверу только через удаленное соединение и не может через локальное. Плохо здесь то, что мы можем потерять в быстродействии, а хорошо, что сервер может быть расположен (установлен) на другом компьютере, что дает некоторую гибкость и удобство;
2. Подключиться к SQL-серверу из Wonderware InTouch можно, только если будет включен режим смешанной проверки подлинности пользователей, подключиться от имени текущего пользователя не удалось."
Проверял через Alarm DB Logger Manager - при указании в User Info текущего доменного пользователя у которого есть доступ к BD и таблице - ошибка, а при указании проверки пользователя с SQL - есть connect.
Важно не забыть в MS SQL - прописать права доступа к таблицам, view.

Можно использовать для подключения к базе
ResultCode = SQLConnect( ConnectionID, "DSN=myDSN; UID=user; PWD=password" );
Только плохо что "UID=user; PWD=password" - хранится в файле проекта (вер InTouch 9.5) в открытом виде :( . Поэтому при создании в источнике данных ODBC системный DSN - "Проверка учетной записи Windows NT", и соответственно использую для подключения к MS SQL
ResultCode = SQLConnect( ConnectionID, "DSN=myDSN; Trusted_Connection = Yes");
строчки можно посмотреть тут http://www.connectionstrings.com/

Создать в SQL Access Manager BindList, где указать связи полей вашей таблицы с тегами. Создать внутренний тег, в котором будет храниться идентификатор коннекта с БД SQL (например, ConnectID). Создать внутренние теги, куда у нас будут записываться значения из таблицы.

Ответить

Вернуться в «Wonderware Intouch»