2016-06-09 21 views
1

Ich führe Powerbuilder 11.2 aus und versuche, einen Vorgang zu debuggen, der Daten aus einer Textdatei in einen Datenspeicher zieht. Ich kann den Datenspeicher überwachen und Informationen darüber anzeigen, aber ich möchte den tatsächlichen Inhalt des Datenspeichers sehen. Ich habe einige Vorschläge gesehen, einen Ausdruck zu dem Überwachungsfenster des Hinzufügens und ich eingeführt, um den folgenden Befehl ein:Inhalt des Datenspeichers in Powerbuilder anzeigen

[datastore].saveas("c:\test\[datastore].xls", xls!,true) 

in das Watch-Fenster, aber alles, was ich bekam, war ein Kreis mit einer durchgehenden Linie in rot. Ich habe das Verzeichnis überprüft und nichts wurde gespeichert. Ich habe die Entwicklung von PB schon lange nicht mehr gemacht und das wurde mir zugeteilt, weil ich vorher PB-Entwicklung gemacht habe. Wie kann ich den Inhalt eines Datenspeichers im Debug-Modus ausgeben? Jede und jede Hilfe wird so sehr geschätzt.

Antwort

0

Sie haben einen Syntaxfehler in Ihrem Ausdruck. Als Typ speichern Excel muss Excel! oder XLSX! sein.

Speichern als Excel 2007 und höher (erfordert .NET 3.5 oder höher):

[datastore].saveas("c:\test[datastore].xlsx", xlsx!,true) 

Speichern als Excel-Format:

[datastore].saveas("c:\test[datastore].xls", Excel!,true) 
+0

Okay, ich denke, ich verstehe das nicht richtig.Ich versuche, diesen Ausdruck in das Überwachungsfenster einzugeben, indem ich mit der rechten Maustaste klicke und Einfügen auswähle. Dann erscheint das neue Expression-Feld und ich tippe den obigen Code ein, um den Datenspeicher zu ändern und erhalte immer noch den roten Kreis mit einer Linie. Ist das der falsche Ort, wenn ja, wie komme ich zum Fenster, um diesen Ausdruck zu betreten? Tut mir leid, ich bin so amateurhaft, aber wie ich schon sagte, es war vor 15 Jahren. Vielen Dank. – john

+0

Ist DataStore instanziiert? – Merrin

+0

Wenn ich eine Quickwatch mache, zeigt es, dass es instanziiert ist .. – john

1

Wenn Ihre Position um die Datei zu schreiben ist c: \ test Die Syntax ist "c: \ test \"

So wäre der richtige Eintrag im Überwachungsfenster:

ids_mydata.saveas("c:\test\mydata.xls", Excel!, true) 

Das spart die derzeit Daten in den ‚ids_mydata‘ Datenspeichern in einer Excel-Datei mit dem Namen ‚mydata.xls‘ im Ordner ‚Test‘ auf Ihrem Laufwerk C.

1

Ja die saveas() Tipp einen schnellen Weg, um zu überprüfen, was in einem Datenspeicher ist.

Sie müssen den Ausdruck jedoch nicht in einer Uhr hinzufügen (weil die Daten bei jeder Auswertung der Daten wahrscheinlich ersetzt werden oder wenn der Datenspeicher nicht gültig ist), sondern im Dialogfeld "Schnellansicht" .

  1. setzen einen Haltepunkt, nachdem der Datenspeicher gefüllt werden soll (zB nach einer retrieve() oder importString())
  2. führen Sie Ihr Programm
  3. , wenn die BP löst, können Sie einen „Rechtsklick/Schnellüberwachung“ machen siehe im Quick-Uhr-Dialog auf den Datenspeicher Namen sollten Sie die Schnell Uhr Dialog
  4. ersetzt die yourdatastore im Expression-Feld durch yourdatastore.saveas("c:\temp\somefile.xls", excel5!, true) klicken Sie dann auf „neu zu bewerten“
  5. , wenn der Export erfolgreich ist anzuzeigen, dass die zurück v alue ist 1. -1 zeigt an, dass ein Problem vorliegt, wie ein falscher Pfad oder die bereits geöffnete Ergebnisdatei (gesperrt).

Sie können auch text! anstelle des excel5! Wert der Daten, um zu sehen, wenn Office nicht in diesem Feld installiert ist. excel5! ist ein ziemlich altes Format, das den Zuschauern bekannt ist, aber excel8! oder xlsx! (nach PB11.5.1) ist gleichermaßen akzeptabel.