Запись в User Archive скриптом
ion; 27.4.04
В WinCC 6.0SP1HF3.
Подскажите как скриптом под какой-нибудь кнопкой записать в
UserArchive значение.
Например значение 5 в архив с именем a_name.
Если можно коротенький пример того, как открыть, записать и закрыть
базу.
Re: Запись в User Archive скриптом
Маслов
Дмитрий; 28.4.04
Несколько сообщений назад в форуме была ссылка на ODK Help для
WinCC 6 (тема: "документация на ODK v 6"). Скачиваете архив по
указанной там ссылке. В архиве Вам нужен файл
"ODKUserArchives.chm". Там все написано.
Re: Запись в User Archive скриптом
ion; 28.4.04
пасибки
Re: Запись в User Archive скриптом
ion; 28.4.04
И все таки там совсем не все описано.
Описаны функции, но это есть и в хелпе. А вот примера вставки новой
записи таки нет:(
Есть кнопочки с ссылками на примеры, но ведь в архиве их нет.
Если можно примерчик. с последовательностью работы с юзерархивом:
открытие, вставка записи, закрытие.
плизззз.:)
Re: Запись в User Archive скриптом
ion; 28.4.04
И все таки там совсем не все описано.
Описаны функции, но это есть и в хелпе. А вот примера вставки новой
записи таки нет:(
Есть кнопочки с ссылками на примеры, но ведь в архиве их нет.
Если можно примерчик. с последовательностью работы с юзерархивом:
открытие, вставка записи, закрытие.
плизззз.:)
Re: Запись в User Archive скриптом
Nick Gashevsky; 29.4.04
Найди winccoptions_v6_e.pdf - По моему, все понятно расписано, с
примером (у меня заработало).
Re: Запись в User Archive скриптом
ion; 29.4.04
в winccoptions_v6_e есть пример того, как читать из архива и
изменять запись, НО НЕТ ПРИМЕРА ВСТАВКИ НОВОЙ ЗАПИСИ. А мне именно
это надо.
Re: Запись в User Archive скриптом
ion; 29.4.04
в winccoptions_v6_e есть пример того, как читать из архива и
изменять запись, НО НЕТ ПРИМЕРА ВСТАВКИ НОВОЙ ЗАПИСИ. А мне именно
это надо.
Re: Запись в User Archive скриптом
ion; 29.4.04
в winccoptions_v6_e есть пример того, как читать из архива и
изменять запись, НО НЕТ ПРИМЕРА ВСТАВКИ НОВОЙ ЗАПИСИ. А мне именно
это надо.
Re: Запись в User Archive скриптом
Nick Gashevsky; 6.5.04
ф-я uaArchiveInsert( hArchive )) добавляет запись.
Пример ушел по почте
Re: Запись в User Archive скриптом
ion; 7.5.04
спасибо. я уже разобрался.
Re: Запись в User Archive скриптом
Малкон; 21.12.04
Зато я не разобрался.. че за фигня, Пишу все отладил, все
отладочные окошки выскакивают какие надо,а значит процесс идет так
как надо,однако в базе значений нет !!!!!!!..
Хуже того что в официальной документации UserArchivesV502_r.pdf дан
пример с таким ворохом ошибок, что хоть стой хоть падай.
Re: Запись в User Archive скриптом
jkeks; 23.12.04
Пример записи в базу данных:
Это пример из официального дока, однако в той документации целое
море ошибок, я вообще не понимаю, как так можно было писать,
исходник компилил часа 3, т.к. сам еще разбираюсь.
И еще в исходник прилепил простой пример записи в базу, в котором
есть одна проблемма, я не знаю пока как работать с полями
"счетчиками".
А если вам пока не до них, то следующий пример вам может помоч:
#include "apdefap.h"
void OnClick(char* lpszPictureName, char* lpszObjectName, char*
lpszPropertyName)
{
UAHCONNECT hConnect;
UAHARCHIVE hArchive;
LONG IndexArchive;
LONG FieldLength;
LONG FieldType;
LONG NumberOfFields;
LONG Index;
long IntValue;
double DoubleValue;
char StringField[255];
char z[255];
SYSTEMTIME SysDate;
MessageBox(NULL,"Íà÷èíàåì àïèñûâàòü â áàçó","2",1);
//******* Ñîåäèíåíèå ñ êîìïîíåíòîì ïîëüçîâàòåëüñêèõ àðõèâîâ
***************
if ( uaConnect( &hConnect ) == FALSE )
{
MessageBox(NULL,"UAConnect error ","Ñîîáùåíèå",1);
//printf ( "uaConnect error: %d\n", "uaGetLastError()" );
return;
}
if ( hConnect == NULL )
{
MessageBox(NULL,"Handle UAH equal NULL","Ñîîáùåíèå",1);
//printf ( "Handle UAHCONNECT equals NULL\n" );
return;
}
//******* Ñîåäèíåíèå ñ àðõèâîì ïî èìåíè
àðõèâà****************************
if ( uaQueryArchiveByName( hConnect, "jkeks", &hArchive ) ==
FALSE )
{
MessageBox(NULL,"UAQueryArchiveError ","Ñîîáùåíèå",1);
//printf( "uaQueryArchive Error: %d\n", "uaGetLastError()" );
return;
}
//******* Îòêðûòèå
àðõèâà**********************************************
if ( uaArchiveOpen( hArchive ) == FALSE )
{
MessageBox(NULL,"Archiv open error ","Ñîîáùåíèå",1);
//printf( "uaArchive Open Error\n" );
return;
}
//******* Ïîëó÷åíèå êîëè÷åñòâà ïîëåé
************************************
NumberOfFields = uaArchiveGetFields( hArchive );
MessageBox(NULL,"Number of field is more ","Ñîîáùåíèå",1);
//printf( "Number of Fields = %u\n", NumberOfFields );
//******* ×òåíèå ïîñëåäíåé
çàïèñè****************************************
if ( uaArchiveMoveLast( hArchive ) == TRUE ) // ïîñëåäíèé
MessageBox(NULL,"âñòàëè íà ïîñëåäíþþ çàïèñü ","Ñîîáùåíèå",1);
//printf( "Number of Fields = %u\n", NumberOfFields );
else
{
MessageBox(NULL,"ArcMoveLast error ","Ñîîáùåíèå",1);
//printf( "uaArchiveMoveLast Error: %d\n", "UAGetLastError()"
);
return;
}
//******* Çàïèñü â ïîëÿ
äàííûõ*****************************************
/* ----------------------------Çàïèñàòü
ñòðîêó--------------------------------------*/
//uaArchiveSetFieldValueLong (hArchive, 0,-1);
uaArchiveSetFieldValueString (hArchive, 1, "malcon");
uaArchiveSetFieldValueLong (hArchive, 2, 999);
if (uaArchiveInsert (hArchive) == TRUE )
MessageBox(NULL,"Äîáàâèëîñü îòëè÷íî","Ñîîáùåíèå",1);
else
MessageBox(NULL,"Íå äîáàâèëîñü" ,"Ñîîáùåíèå",1);
/*----------------------êîíåö çàïèñè
ñòðîêè-----------------------------*/
//******* Çàêðûòèå
àðõèâà************************************************
if ( uaArchiveClose ( hArchive ) == FALSE )
{
MessageBox(NULL,"Õóåâî çàêðûâàåòüñÿ àðõèâ","Ñîîáùåíèå",1);
//printf( "error on closing archive\n" );
return;
}
//****** Îòñîåäèíåíèå îò
àðõèâà****************************************
if ( uaReleaseArchive ( hArchive ) == FALSE )
{
MessageBox(NULL,"Áëÿäñêî õóåâî îòñîåäèíÿåòüñÿ îò
àðõèâà!","Ñîîáùåíèå",1);
//printf( "error on releasing archive\n" );
return;
}
//******* Îòñîåäèíåíèå îò êîìïîíåíòà ïîëüçîâàòåëüñêèõ
àðõèâîâ**************
if ( uaDisconnect ( hConnect ) == FALSE )
{
MessageBox(NULL,"Õóåâî îòñîåäèíÿåòüñÿ êàê-òî îò êîìïîíåíòà
UserAerchive!","Ñîîáùåíèå",1);
//printf( "error on disconnecting\n" );
return;
}
MessageBox(NULL,"Âñå áëÿ!","Ñîîáùåíèå",1);
}
А то что русские буквы корявые - это очередной косяк WinCC. Впрочем
там читать особо нечего.
http://revda.biz
http://revda.info
Удачи
См. http://revda.info