1. Обязательно представиться на русском языке кириллицей (заполнить поле "Имя").
  2. Фиктивные имена мы не приветствуем. Ивановых и Пупкиных здесь уже достаточно.
  3. Не писать свой вопрос в первую попавшуюся тему - вместо этого создать новую тему.
  4. За поиск, предложение и обсуждение пиратского ПО и средств взлома - бан без предупреждения. Непонятно? - Читать здесь.
  5. Рекламу и частные объявления "куплю/продам/есть халтура" мы не размещаем ни на каких условиях.
  6. Перед тем как что-то написать - читать здесь, а затем здесь и здесь.
  7. Не надо писать в ЛС администраторам свои технические вопросы. Администраторы форума отлично знают как работает форум, а не все-все контроллеры, о которых тут пишут.

Intouch & MSSQL

Ответить

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

Intouch & MSSQL

Сообщение nike »

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

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

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

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

Re: Intouch & MSSQL

Сообщение nike »

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

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

LexSL
освоился
освоился
Сообщения: 205
Зарегистрирован: 16 дек 2011, 15:13
Имя: Алексей
Страна: Россия
Благодарил (а): 67 раз
Поблагодарили: 51 раз

Re: Intouch & MSSQL

Сообщение LexSL »

Доброго дня!
Как такового табличного отображения в Интаче нет. (или я не встречал подобного).
Тот путь, который предполагает использование функций типа 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, 14:48
Имя: pupkin
Страна: vas

Re: Intouch & MSSQL

Сообщение nike »

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

LexSL
освоился
освоился
Сообщения: 205
Зарегистрирован: 16 дек 2011, 15:13
Имя: Алексей
Страна: Россия
Благодарил (а): 67 раз
Поблагодарили: 51 раз

Re: Intouch & MSSQL

Сообщение LexSL »

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

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

Re: Intouch & MSSQL

Сообщение nike »

стоит обычная 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
освоился
освоился
Сообщения: 205
Зарегистрирован: 16 дек 2011, 15:13
Имя: Алексей
Страна: Россия
Благодарил (а): 67 раз
Поблагодарили: 51 раз

Re: Intouch & MSSQL

Сообщение LexSL »

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, 14:48
Имя: pupkin
Страна: vas

Re: Intouch & MSSQL

Сообщение nike »

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

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

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
освоился
освоился
Сообщения: 205
Зарегистрирован: 16 дек 2011, 15:13
Имя: Алексей
Страна: Россия
Благодарил (а): 67 раз
Поблагодарили: 51 раз

Re: Intouch & MSSQL

Сообщение LexSL »

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

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

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

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

Re: Intouch & MSSQL

Сообщение nike »

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

LexSL
освоился
освоился
Сообщения: 205
Зарегистрирован: 16 дек 2011, 15:13
Имя: Алексей
Страна: Россия
Благодарил (а): 67 раз
Поблагодарили: 51 раз

Re: Intouch & MSSQL

Сообщение LexSL »

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

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

Re: Intouch & MSSQL

Сообщение ANY »

нашел по 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»