PGDBE + ISAM [erledigt]

Hier dreht es sich um den PostGre Server

Moderator: Moderatoren

Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15181
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 5 Mal
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: PGDBE + ISAM [erledigt]

Beitrag von brandelh » Mo, 11. Mai 2020 16:58

Natürlich nicht bei jedem SEEK ein dbeva(), sondern nur nach externen Datenlieferungen mit anderen Programmen ... jeweils einmalig.

DbEval( {|| msgbox("ABC") } )

so wie ich das verstehe, wird für jeden Satz die MsgBox() angezeigt, aber kein einziges Datenfeld gelesen.

DbEval( {|| cTemp := field->Schl1 + field->Schl2 + field->Schl3 } )

würde etwas lesen und wäre auch recht flott, da keine Bildschirmausgabe nötig ist.
Ob das aber so richtig ist weiß ich auch nicht, ich mache damit ja nix.
Gruß
Hubert

Benutzeravatar
Marcus Herz
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 193
Registriert: Mo, 16. Jan 2006 8:13
Wohnort: Allgäu
Hat sich bedankt: 1 Mal
Danksagung erhalten: 6 Mal
Kontaktdaten:

Re: PGDBE + ISAM [erledigt]

Beitrag von Marcus Herz » Mo, 11. Mai 2020 17:32

Hi

Frank++ hat geschrieben, dass das Lesen eines Satzes das Indexfeld füllt- wenn es leer ist, weil von außen.
Da kann man entweder reindex machen oder wirklich mit der PGDBE eine goto ausführen.
Ich habs oben schon erwähnt, man kann Trigger selber schreiben, wenn man viel außerhalb der PGDBE macht. Aber wie Frank auch sagte, sollte man das nicht tun....
Gruß Marcus

Es gibt keine Grenzen, aber du kannst welche ziehen.

Benz
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 436
Registriert: Mo, 30. Mai 2011 15:06

Re: PGDBE + ISAM [erledigt]

Beitrag von Benz » Di, 12. Mai 2020 7:17

Hm irgendwie steh ich immer noch auf dem Schlauch:

Code: Alles auswählen

DbEval( {|| cTemp := PERSZEIT->__order_perzeit1_perzeit1 } ) 
Dieser Code liefert die Fehlermeldung im Anhang, das Feld existiert aber (wurde durch ISAM erzeugt), s. 2. Bild im Anhang.

Nutze ich ein Feld, das nicht von ISAM erzeugt wurde (ich denke das ist ja nicht Sinn der Sache), kommt keine Fehlermeldung, die Indices werden aber auch nicht aktualisiert:

Code: Alles auswählen

 DbEval( {|| cTemp := PERSZEIT->mandname } ) 
Dateianhänge
c.PNG
c.PNG (10.63 KiB) 1164 mal betrachtet
b.png
b.png (6.19 KiB) 1164 mal betrachtet

Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12411
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 1 Mal
Danksagung erhalten: 2 Mal

Re: PGDBE + ISAM [erledigt]

Beitrag von AUGE_OHR » Di, 12. Mai 2020 8:39

hi,

du kannst ein "internen" FIELD nicht "so" mit PgDBE ansprechen ... [-X
wenn du PgAdmin verwendest geht es denn da gibt es keine DBE die das "verhindert".

SQL-Indexe werden vom Pg-Server verwendet wenn er "meint" das die "weniger kosten"

wenn man nun keine "UpSize-Index" FIELD hat und einen SQL-Index per PgAdmin erstellt so wird er "bei Nutzung" der Table von Server auch "genutzt" und aktuell gehalten.
gruss by OHR
Jimmy

Benz
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 436
Registriert: Mo, 30. Mai 2011 15:06

Re: PGDBE + ISAM [erledigt]

Beitrag von Benz » Di, 12. Mai 2020 8:55

Hi,

Das verstehe ich, aber wie genau bekomme ich den Index per Xbase++ wieder aktuell? Bleibt mir etwa nur der Reindex?

Benutzeravatar
Marcus Herz
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 193
Registriert: Mo, 16. Jan 2006 8:13
Wohnort: Allgäu
Hat sich bedankt: 1 Mal
Danksagung erhalten: 6 Mal
Kontaktdaten:

Re: PGDBE + ISAM [erledigt]

Beitrag von Marcus Herz » Di, 12. Mai 2020 9:51

Ja, reindex, wenn Alaska clever ist, wird da ein SQL zum Update des __ord Feldes verwendet, das sollte schnell gehen, und exclusive ist ja auch kein Thema bei einem SQL Update
Gruß Marcus

Es gibt keine Grenzen, aber du kannst welche ziehen.

Benz
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 436
Registriert: Mo, 30. Mai 2011 15:06

Re: PGDBE + ISAM

Beitrag von Benz » Mi, 13. Mai 2020 13:00

Jetzt wirds dann seltsam..
Ich habe Reindex probiert, es werden in der Datenbank tatsächlich die Indices aktualisiert. ABER und das ist großes Aber:
Der erste Eintrag in der Datenbank erhält seltsamerweise dieselben Indices wie der letzte Eintrag, was absolut falsch ist (s. Screenshots im Anhang)

Eigentlich sollte sich beispielsweise __order_perzeit5_perzeit5 aus mitarnumme,aktdatum und endzeit zusammensetzen (Endzeit wird hier nicht angezeigt, das passt aber überall außer eben beim ersten Eintrag).

Beim ersten Eintrag in der Tabelle wird nun der Index so gesetzt wie beim letzten Eintrag, warum auch immer.

Alles was ich gemacht habe ist

Code: Alles auswählen

DBREINDEX()
Eigentlich sollte für den __order_perzeit5_perzeit5 für den ersten Eintrag 9999992019020316.00@.... rauskommen, aber wie ihr sehen könnt steht da jetzt 202020062216.00@ ...

Ist das ein Xbase++ Bug? Hatte jemand schonmal dieses Phänomen?

Ich habe auch per pgadmin alle Order Spalten mal geleert, erneuter Reindex, dasselbe Ergebnis.
Dateianhänge
d.png
d.png (6.83 KiB) 1096 mal betrachtet
c.png
c.png (72.77 KiB) 1096 mal betrachtet

Benutzeravatar
Marcus Herz
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 193
Registriert: Mo, 16. Jan 2006 8:13
Wohnort: Allgäu
Hat sich bedankt: 1 Mal
Danksagung erhalten: 6 Mal
Kontaktdaten:

Re: PGDBE + ISAM [erledigt]

Beitrag von Marcus Herz » Mi, 13. Mai 2020 20:30

Das wär ja der Hammer, wenn da in Reindex ein Bug wäre. Hast du das an Alaska gemeldet?

Was mir dazu noch einfällt:
Anfang des Jahres hatte ich für ein Projekt auch die ISAM Emu getestet. Ein Grund, warum das dann auch nicht in Frage kam, waren die vielen __ord Felder, welche die Satzlänge enorm aufblähen. Da es im Altsystem mit ADS viele Indices gab, hätte sich die Satzlänge in manchen Tabellen mehr als verdoppelt.

PS: du bist dir schon sicher, das die Reihenfolge in beiden Snaps die gleich ist. Ohne Order by ist ein simples select * nach einem Update nicht in der gleichen Reihenfolge!
Gruß Marcus

Es gibt keine Grenzen, aber du kannst welche ziehen.

Benutzeravatar
andreas
Foren-Moderator
Foren-Moderator
Beiträge: 1837
Registriert: Mi, 28. Sep 2005 10:53
Wohnort: Osnabrück
Kontaktdaten:

Re: PGDBE + ISAM [erledigt]

Beitrag von andreas » Mi, 13. Mai 2020 21:31

Die Spalten breiter ziehen und den ganzen Wert betrachten!?
Gruß,

Andreas
VIP der XUG Osnabrück
Beisitzer des Deutschsprachige Xbase-Entwickler e. V.

ramses
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1848
Registriert: Mi, 28. Jul 2010 17:16
Hat sich bedankt: 1 Mal
Danksagung erhalten: 6 Mal

Re: PGDBE + ISAM [erledigt]

Beitrag von ramses » Do, 14. Mai 2020 7:52

Hast du daran gedacht dass PGAdmin sich nicht an die Indexe oder Satzreihenfolge der Daten von der über PGDBE geschriebenen Daten hält?
Wenn du in PGAdmin die Datensätze sortiert haben willst musst du den Aufruf entsprechend formulieren sonst werden dir die sätze willkürlich angezeigt.
Valar Morghulis

Gruss Carlo

Benz
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 436
Registriert: Mo, 30. Mai 2011 15:06

Re: PGDBE + ISAM [erledigt]

Beitrag von Benz » Do, 14. Mai 2020 16:38

war nur ein Select Befehl, ist in einer Tabelle und sind nur 2 Snipps, weil die Tabelle so breit war. Mittlerweile hat sich jemand von Alaska eingeschaltet und schaut sich das an den Echtdaten mal an.
Hast du daran gedacht dass PGAdmin sich nicht an die Indexe oder Satzreihenfolge der Daten von der über PGDBE geschriebenen Daten hält?
Wenn du in PGAdmin die Datensätze sortiert haben willst musst du den Aufruf entsprechend formulieren sonst werden dir die sätze willkürlich angezeigt.
Ja daran hab ich gedacht, in dem Fall ging es aber nicht um die Sortierung im PgAdmin, sondern um den Wert, der in den Orderspalten steht. Wenn ich einen Aufruf mit Xbase++ mit beispielsweise dem Index 5 lande, dann komme ich beim ersten Datensatz raus, obwohl es eigentlich der letzte sein müsste.

Wir werden sehen, was Alaska sagt. Im Idealfall habe ich nur irgendeinen peinlichen kleinen Fehler gemacht :D

Benutzeravatar
Frank Grossheinrich
Cut&Paste-Entwickler
Cut&Paste-Entwickler
Beiträge: 44
Registriert: Fr, 31. Mär 2017 15:06
Wohnort: Kirchheim an der Weinstraße
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: PGDBE + ISAM [erledigt]

Beitrag von Frank Grossheinrich » Di, 19. Mai 2020 16:54

Hey Benz,
Benz hat geschrieben:
Do, 14. Mai 2020 16:38
Wir werden sehen, was Alaska sagt. Im Idealfall habe ich nur irgendeinen peinlichen kleinen Fehler gemacht :D
Zu allererst: Danke für das Beispiel (habe ich per Email erhalten)!!!
Ich konnte es nachvollziehen.
Leider schlechte Nachricht: das ist ein (noch nicht öffentlich sichtbarer; ich warte noch auf Bestätigung der Entwickler) PDR geworden. Da scheint eine Meta-Information für den Index falsch aktualisiert zu werden.

Danke auf jeden Fall fürs Aufmerksam-machen!

Grüße,
Frank

Benz
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 436
Registriert: Mo, 30. Mai 2011 15:06

Re: PGDBE + ISAM [erledigt]

Beitrag von Benz » Mi, 22. Jul 2020 7:46

Gibt es hierzu schon etwas neues? In der Knowledge Base habe ich den PDR bisher nicht gefunden.

Antworten