Lotus Notes / Domino Sonstiges > Tools & Downloads

C++ Beispiel für Schreiben, Lesen, etc..

<< < (3/6) > >>

MisterDa:
da hab ich schon geschaut und die erstellen in allen Programmen, die ich durchgeshen habe immer nur neue Felder..greifen aber nicht auf schon bestehende Felder einer Maske zu...

Was mich eben weng verwirrt ist, dass ich den Code aus nem Beispielprogramm hab (der in dem Buch von dem eknori den Link hier eingetragen hat) und in dem Beispiel funktioniert das auch einwandfrei. Da hab ich dann nur den Feldnamen angepasst und ein Dokument mit einer bestimmten Maske aus meiner DB erstellt...und seitdem findet er angeblich das Feld, auf das er zugreifen soll in der Maske nichtmehr..   :'(

Axel:
Hi,

leider kann ich dir da (noch) nicht weiterhelfen. Ich habe keine Erfahrungen mit der C++ - API. Ich wußte nur, dass es Beispiele gibt.

Vielleicht hab ich irgendwann mal Zeit mich in dieses Thema einzuarbeiten.

Axel

MisterDa:
Oki.
Ich such derweil mal weiter. Falls ich was finde, woran es liegt, dann poste ich das hier rein...

MisterDa

eknori:
so gehts:

LNText names;      
Doc.CreateItem("textfeld", &names,LNITEMFLAGS_AUTO_SUMMARY, LNITEMOPTION_DELETE_APPEND);
names << "Hier kommt dann der neue Wert rein";
Doc.Save(true);

Ist das Feld noch nicht vorhanden, wird es erstellt; ist es schon da, wird der Inhalt "aktualisiert"
Die Api macht im Prinzip nichts anderes, als das Feld samt Inhalt zu löschen und ein neues Feld zu erstellen. Wichtig ist die Option LNITEMOPTION_DELETE_APPEND. Per DEFAULT werden sonst immer neue Felder mit gleichem Feldnamen erstellt.

eknori

eknori:
hier noch das komplette Programm

#include <iostream.h>
#include <lncppapi.h>

#define ERR_BUF_SIZE 512

int main(int argc, char *argv[])
{
   char *         DbServer = NULL;
   LNNotesSession  Session;
   LNDatabase      Db;
   LNItem         Item;
   LNSearchOptions   options;
   LNDocumentArray   resultDocs;
   
   LNSetThrowAllErrors(TRUE);
   
   
   try
   {
      Session.Init(argc, argv);
      Session.GetDatabase("sampledb.nsf", &Db, DbServer);
      Db.Open();
      options.SetNoteType (LNNOTETYPE_DOCUMENT);
      options.SetBeginDate ("01/01/2000");
      options.SetEndDate (Session.GetCurrentDatetime());
      Db.Search ("Subject=\"sample\"", &resultDocs, &options);
      LNDocument Doc = resultDocs[0];
      Doc.Open();

      LNText names;
      Doc.CreateItem("textfeld", &names,LNITEMFLAGS_AUTO_SUMMARY, LNITEMOPTION_DELETE_APPEND);
      names << argv[1];

      Doc.Save(true);
      Doc.Close();
   }
   
   catch (LNSTATUS lnerror)
   {
      char ErrorBuf[ERR_BUF_SIZE];
      ErrorBuf[0] = '\0';
      LNGetErrorMessage(lnerror, ErrorBuf, ERR_BUF_SIZE);
      cout << "Error: " << ErrorBuf << endl;
   }
   
   Db.Close();
   Session.Term();
   return(0);
}

Navigation

[0] Themen-Index

[#] Nächste Seite

[*] Vorherige Sete

Zur normalen Ansicht wechseln