Запись в 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