Soweit bin ich fertig mit meinem Skript, es wird eine neue Zeile angelegt und dann die aktuellen Variablenwerte reingeschrieben. Danach wird das ganze exportiert. Gibt noch ein, zwei kleine Macken, aber sonst gehts erst mal.
Hier zum nachmachen und verbessern:
#include "apdefap.h"
int gscAction( void )
{
UAHCONNECT hConnect;
UAHARCHIVE hArchive;
BOOL bOK;
LONG NumberOfFields ;
long* plCount;
int iRet = 0;
///////////////////////////////////////////////////////////
// connect component user archive
//////////////////////////////////////////////////////////
bOK = uaConnect(&hConnect);
if ((bOK == FALSE) || (hConnect == NULL)){
printf ("#E101: CRT3884_UAExport() - uaConnect failed! error=%d\r\n", uaGetLastError());
iRet = -101;
}
///////////////////////////////////////////////////////////
// connect to archive via name
//////////////////////////////////////////////////////////
bOK = uaQueryArchiveByName(hConnect, "LEDArchiv", &hArchive);
if ((bOK == FALSE) || (hArchive == NULL)){
uaDisconnect(hConnect);
printf ("#E201: CRT3884_UAExport() - uaQueryArchiveByName failed! error=%d\r\n", uaGetLastError());
iRet = -201;
}
///////////////////////////////////////////////////////////
// set filter
//////////////////////////////////////////////////////////
//bOK = uaArchiveSetFilter(hArchive, "ChargeName like '%charge%' and DateBegin >= '2006-01-01 00:00:00' AND DateBegin < '2007-01-01'");
//if (bOK == FALSE){
//printf ("#E301: CRT3884_UAExport() - uaArchiveSetFilter failed! error=%d\r\n", uaGetLastError());
//iRet = -301;
//}
///////////////////////////////////////////////////////////
// set sort
//////////////////////////////////////////////////////////
//bOK = uaArchiveSetSort(hArchive, "ChargeUser , ChargeName desc");
//if (bOK == FALSE){
//printf ("#E302: CRT3884_UAExport() - uaArchiveSetSort failed! error=%d\r\n", uaGetLastError());
//iRet = -302;
//}
///////////////////////////////////////////////////////////
// open archive
//////////////////////////////////////////////////////////
bOK = uaArchiveOpen(hArchive);
if (bOK == FALSE){
uaReleaseArchive(hArchive);
uaDisconnect(hConnect);
printf ("#E401: CRT3884_UAExport() - uaArchiveOpen failed! error=%d\r\n", uaGetLastError());
iRet = -401;
}
//******* Get Number of Fields **********************************************
NumberOfFields = uaArchiveGetFields( hArchive );
printf("Number of Fields = %u\n", NumberOfFields );
//*******Anzahl der Datensätze***********************************************
uaArchiveGetCount(hArchive,plCount); //Return-Type: LONG
printf("Die Anzahl der Datensätz beträgt: %D\r\n",plCount);
///////////////////////////////////////////////////////////////////////
//Zur letzten Stelle des Archivs springen
//////////////////////////////////////////////////////////////////////
bOK= uaArchiveMoveLast(hArchive);
if (bOK == FALSE)
{
printf("Fehler bei uaArchiveMoveLast! error=%d\r\n", uaGetLastError());
}
if (bOK == TRUE)
{
printf("Erfolgreich zur letzten Stelle gesprungen.\r\n");
}
///////////////////////////////////////////////////////////
//Variablen ins Archiv schreiben
///////////////////////////////////////////////////////////
bOK= uaArchiveReadTagValues(hArchive,NULL,0,0);
if (bOK == TRUE)
{
printf("Erfolgreiches schreiben ins Anwenderarchiv.\r\n");
}
if (bOK == FALSE)
{
printf("Fehler beim Lesen aus den Feldvariablen! errror=%d\r\n",uaGetLastError());
}
//////////////////////////////////////////////////////////
//Zeile einfügen
/////////////////////////////////////////////////////////
uaArchiveSetFieldValueLong(hArchive,0,0); //Return-Type: BOOL
bOK=uaArchiveSetFieldValueLong(hArchive,1,666); //Return-Type: BOOL
if (bOK==TRUE)
{
printf("Erfolgreich uaArchiveSetFieldValueLong, Stelle 1,Wert 666.\r\n");
}
if (bOK==FALSE)
{
printf("FEHLER uaArchiveSetFieldValueLong, Stelle 1,Wert 666.\r\n");
}
uaArchiveSetFieldValueLong(hArchive,2,666); //Return-Type: BOOL
uaArchiveSetFieldValueLong(hArchive,3,666); //Return-Type: BOOL
uaArchiveSetFieldValueLong(hArchive,4,666); //Return-Type: BOOL
uaArchiveSetFieldValueLong(hArchive,5,666); //Return-Type: BOOL
uaArchiveSetFieldValueLong(hArchive,6,666); //Return-Type: BOOL
uaArchiveSetFieldValueLong(hArchive,7,666); //Return-Type: BOOL
bOK=uaArchiveSetFieldValueLong(hArchive,8,666); //Return-Type: BOOL
if (bOK==TRUE)
{
printf("Erfolgreich uaArchiveSetFieldValueLong, Stelle 8,Wert 666.\r\n");
}
if (bOK==FALSE)
{
printf("FEHLER uaArchiveSetFieldValueLong, Stelle 8,Wert 666.\r\n");
}
bOK=uaArchiveInsert(hArchive); //Return-Type: BOOL
if (bOK==TRUE)
{
printf("Erfolgreicher uaArchiveInsert.\r\n");
}
if (bOK==FALSE)
{
printf("FEHLER uaArchiveInsert.\r\n");
}
///////////////////////////////////////////////////////////////////
//Aktualisiert das geöffnete Anwenderarchiv
//////////////////////////////////////////////////////////////////
bOK=uaArchiveUpdate(hArchive);
if (bOK==TRUE)
{
printf("Erfolgreiches Aktualisieren des Anwenderarchivs.\r\n");
}
if (bOK==FALSE)
{
printf("Fehler ""Update_failed"" = 106.\r\n");
}
///////////////////////////////////////////////////////////
//Archiv neu laden
///////////////////////////////////////////////////////////
bOK=uaArchiveRequery(hArchive); //Return-Type: BOOL
if(bOK==FALSE)
{
printf("Archiv neu laden ist fehlgeschlagen.\r\n");
}
if(bOK==TRUE)
{
printf("Archiv neu laden war erfolgreich.\r\n");
}
///////////////////////////////////////////////////////////
// export archive
//////////////////////////////////////////////////////////
bOK = uaArchiveExport(hArchive, "c:\\Export\\MyArchive.csv", 0, 0);
if (bOK == FALSE){
printf ("#E501: CRT3884_UAExport() - uaArchiveExport failed! error=%d\r\n");
}
///////////////////////////////////////////////////////////
// close archive
//////////////////////////////////////////////////////////
bOK = uaArchiveClose(hArchive);
if (bOK == FALSE){
printf ("#E801: CRT3884_UAExport() - uaArchiveClose failed! error=%d\r\n", uaGetLastError());
iRet = -801;
}
bOK = uaReleaseArchive(hArchive);
if (bOK == FALSE){
printf ("#E802: CRT3884_UAExport() - uaReleaseArchive failed! error=%d\r\n", uaGetLastError());
iRet = -802;
}
///////////////////////////////////////////////////////////
// disconnect component user archive
//////////////////////////////////////////////////////////
bOK = uaDisconnect(hConnect);
if (bOK == FALSE){
printf ("#E803: CRT3884_UAExport() - uaDisconnect failed! error=%d\r\n", uaGetLastError());
iRet = -803;
}
return 0;
}