Autor Thema: NotesSql-Zugriff  (Gelesen 1899 mal)

Offline Netzwanze

  • Frischling
  • *
  • Beiträge: 4
NotesSql-Zugriff
« am: 30.08.11 - 13:36:53 »
Hallo,
ich kenne mich mit Notes lediglich als Anwender aus. Entschuldigt daher, dass ich nicht immer die korrekten Bezeichnungen im Notes verwende.

Nun habe ich folgendes Problem:

Ich habe eine Notes Anwendung, welche eine Maske mit mehreren Ansichten für eine Hardwareverwaltung anbietet. Zum anderen haben wir eine externe Applikation, welche auf einer MS-SQL-Datenbank basiert.
Diese Datenbank kann ich selber nicht verändern/erweitern. Nun sollen einige Daten aus dieser Datenbank in die Notes Anwendung übernommen und dort angezeigt werden.

Die Datenpflege erfolgt komplett über diese externe Applikation. Die Notes Anwendung soll lediglich diese Daten anzeigen, sowie eine Suche ermöglichen. Eine weitere externe Applikation ist nicht gewünscht, da alles unter einem Dach (in diesem Fall Notes) laufen soll. Die Schnittstelle wollte ich nun in Perl schreiben.

Ich habe nun einen NotesSQL-Treiber installiert und kann damit auch wunderbar auf die Maskenfelder zugreifen. Existierende Daten kann ich mittels SELECT abfragen oder auch per UPDATE ändern.
Jedoch kann ich keine neuen Dokumente mittels INSERT erstellen. Bisher nahm ich an, das ginge so ohne weiteres.

Lege ich mittels CREATE TABLE eine neue Tabelle an, kann ich dort auch Daten hineinschreiben. Verwende ich die vorhandene Maske bekomme ich die Fehlermeldung "Element des Dokuments nicht gefunden".

Mich scheint, dass zu einem korrekten Notes-Dokument noch mehr gehört, als einfach mittels INSERT einen neuen Datensatz anzulegen. Ein vorhandenes Dokument kann ich ohne Probleme verändern.

Sehe ich es richtig, dass mein Vorhaben nicht geht (also per NotesSQL ein Dokument anlegen)?
Gibt es hierzu eine Lösung oder muss ich mich doch noch in die Notes-Programmierung einarbeiten?

Grüße,
Christian

Offline ata

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re: NotesSql-Zugriff
« Antwort #1 am: 30.08.11 - 14:13:32 »
Willkommen im Forum Christian,

zum Öffnen eines Dokumentes in Notes gehört eine Maske. Ohne diese erhälst du die besagte Fehlermeldung. Diese Maske ist im Feld "Form" eingetragen und sollte in der Datenbank vorhanden sein. Du schaust also, welche Maske in vergleichbaren Dokumenten eingetragen ist und erstellst das Feld "Form" mit diesem Maskennamen...

Toni
Grüßle Toni :)

Offline Netzwanze

  • Frischling
  • *
  • Beiträge: 4
Re: NotesSql-Zugriff
« Antwort #2 am: 30.08.11 - 14:41:31 »
Danke. Aber damit komme ich noch nicht weiter.

Das Feld "Form" kann ich über NotesSQL/ODBC weder einsehen noch kann ich dieses Feld beschreiben.

Also "SELECT * FROM Hardware" über ODBC liefert mir nur die vorhandenen Formularfelder - kein Feld "Form".

Beispielsweise sehe ich über ODBC die Feldnamen "seriennummer", "name" und "id".
In der Notes-Applikation gibt es die Maske "Hardware", die ebenfalls diese Felder enthält.
Ich kann dort neue Datensätze anlegen, welche ich auch über ODBC sehen kann.

Nun versuche ich ganz "naiv" ein:
INSERT INTO Hardware (seriennummer,name,id) VALUES ('s12345','test1','1')

Dort kommt die besagte Meldung.

INSERT INTO Hardware (seriennumer,name,id,Form) VALUES ('s12345','test1','1','Hardware')
funktioniert auch nicht, da das Feld "Form" nicht existiert (so die Fehlermeldung).

Christian


 

Offline ata

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re: NotesSql-Zugriff
« Antwort #3 am: 30.08.11 - 14:56:16 »
... die Fehlermeldung "Element des Dokuments nicht gefunden" erscheint beim Öffnen eines Dokumentes - ist das korrekt?

Toni
Grüßle Toni :)

Offline Netzwanze

  • Frischling
  • *
  • Beiträge: 4
Re: NotesSql-Zugriff
« Antwort #4 am: 30.08.11 - 14:58:58 »
Nein, die Meldung kommt beim INSERT über ODBC. Ich mache im Moment alles über ODBC und Perl.

Ich habe übrigens mal versucht, das interne Feld "NoteForm" mittels INSERT zu beschreiben:
Fehler = "Operation not allowed for an internal field".

Ich habe auch mal versucht die Sache anders herum auszuziehen:
(alles aus ODBC-Sicht)

1. Mittels CREATE TABLE HardwareDaten ( ... ) eine neue Tabelle mit den selben Feldnamen angelegt.
    Diese erscheint im Notes Designer als Maske; jedoch werden in den Eigenschaften keine Felder angezeigt.
2. Mittels INSERT habe ich die neue Tabelle mit Daten befüllt - das funktioniert.
    In der Notes Applikation werden interessanterweise in einer Übersicht neue Dokumente angezeigt, nur ist alles leer. Ein Doppelklick ergibt folgende Meldung: "Dokument wurde seit der Signierung geändert oder beschädigt! (Daten)"

Auch hier komme ich nun nicht weiter.

Christian
« Letzte Änderung: 30.08.11 - 15:09:16 von Netzwanze »

Offline Netzwanze

  • Frischling
  • *
  • Beiträge: 4
Re: NotesSql-Zugriff
« Antwort #5 am: 30.08.11 - 15:42:07 »
Ich bin nun doch noch selber weiter gekommen.  ;D

Ich habe wie bei meinem zweiten Versuch selber mittels CREATE TABLE eine neue Datenbanktabelle angelegt.
Die Feldnamen sind die selben, wie in der ursprünglichen Tabelle. Diese erscheint, wie schon geschrieben, im Designer unter "Masken". Mache ich auf die neue Maske einen Doppelklick, wird diese geöffnet. Diese enthält nun alle Felder meiner Datenbanktabelle. Nachdem ich Strg+S gedrückt hatte. Sehe ich alle Daten in unserer Notes-Applikation.

Ein Doppelklick auf einen Datensatz öffnen nun "meine" neue Maske.

Ich werde das morgen mal unserem Notes-Administrator übergeben.

Ich verstehe nur nicht, wieso es mit meiner Maske funktioniert, mit der vorhandenen aber nicht.

Christian

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz