Logik im Netzwerk

Alles zum SQL-Dialekt

Moderator: Moderatoren

Benutzeravatar
Werner_Bayern
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2120
Registriert: Sa, 30. Jan 2010 22:58
Wohnort: Niederbayern
Hat sich bedankt: 29 Mal
Danksagung erhalten: 70 Mal

Re: Logik im Netzwerk

Beitrag von Werner_Bayern »

AUGE_OHR hat geschrieben:wieso "verworfen" ? [-X
nach dem Hinweis (Logfile) kann der User doch weiter entscheiden was passieren soll.
So wurde es geschrieben. Du machst es offensichtlich anders.
AUGE_OHR hat geschrieben:ein "Sperre" ist doch nur etwas "technisches" was bei PostgreSQL durch eine Transaktion (BEGIN / COMMIT ) automatisch geschieht.
worüber wir sprechen ist doch die Logik wenn User "Änderungen ändern" oder einen Auftrag doppelt eingeben/bearbeitet usw.
Das ist keine Sperre, eine Transaktion taucht nach meinem Verständnis für andere Benutzer im Netzwerk erst auf, wenn sie erfolgreich abgeschlossen wurde.
Genau, mit meiner Frage nach dem Anlegen oder Ändern eines Artikels hat das nichts zu tun.
es grüßt

Werner

<when the music is over, turn off the lights!>
Benutzeravatar
Werner_Bayern
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2120
Registriert: Sa, 30. Jan 2010 22:58
Wohnort: Niederbayern
Hat sich bedankt: 29 Mal
Danksagung erhalten: 70 Mal

Re: Logik im Netzwerk

Beitrag von Werner_Bayern »

Servus Georg,
georg hat geschrieben:Da Du mit den gegebenen Antworten etwas unzufrieden bist, würde ich gerne eine Gegenfrage stellen:
Wie reagiert Dein Programm dem Anwender gegenüber, wenn es diese Artikelnummer schon gibt?
Hinweis.PNG
Hinweis.PNG (6.17 KiB) 13967 mal betrachtet
Macht der killInputFocus und geht wieder zurück in das Feld. Da ist also noch nicht viel passiert, weil das das 1. Feld ist, das ggf. geändert wird.

Werner_Bayern hat geschrieben:Ihr lasst also den Anwender immer munter Daten erfassen und im Fall der Fälle hat er einfach Pech gehabt und seine Daten werden verworfen?
georg hat geschrieben:Da hast Du mich (wohl) leider missverstanden: Die Änderungen des Anwenders können nicht übernommen werden. Wie das dem Anwender kommuniziert wird, und was gemacht wird (z.B. eine zweispaltige Darstellung der Daten, links die aktuellen Werte, rechts die vom Anwender eingegebenen Werte; alternativ kann man auch den Ursprungsdatensatz intern speichern und prüfen, ob die vom Anwender geänderten Felder unverändert sind und dann ohne Rückfrage speichern wenn es keinen Konflikt gibt) ist eine Entscheidung, die bei Dir als Programmierer liegt (oder vom Auftraggeber vorgegeben wird).
Ok, es wurde halt anders geschrieben. Aber in diese Richtung gehen meine Überlegungen auch, falls ich kein rlock mehr nachbilden würde - da ich eh immer schon nur Feldweise speichere (nur die Felder, die sich in einem DS geändert haben, werden gespeichert) und das bei SQL sowieso Standard ist.
georg hat geschrieben:Kleines Beispiel gefällig?
Gutes Beispiel, ist mir klar. Viel flexibler, aber auch viel komplizierter ohne rlock: Was wenn einer die Straße und der andere den Ort ändert. Ist jetzt vielleicht an den Haaren herbeigezogen, aber theoretisch zieht der Kunde von A nach B um, die Straße heisst aber immer noch Alleestraße. Der andere Nutzer ändert die Straße, weil er doch eigentlich in der Seitenstraße der Alleestraße (gewohnt hatte) wohnt.
georg hat geschrieben:Hier ist der Programmierer gefragt, wie er den Konflikt löst.
Wie wahr...
georg hat geschrieben:Dazu noch ein Hinweis: ich habe auf der IBM S/38 Programme gesehen, die genau nach diesem Schema gestrickt waren. Die Bildschirmdateien waren falsch definiert, und wenn eine Eingabe fehlerhaft war, kam eine Fehlermeldung, und die ganzen Eingabefelder waren wieder leer. Das so etwas mehr als schlechter Stil ist, versteht sich von selbst, hoffe ich.
Da sind wir uns von Anfang an schon einig! :)
es grüßt

Werner

<when the music is over, turn off the lights!>
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: Logik im Netzwerk

Beitrag von AUGE_OHR »

ich "denke" das du ein altes Cl*pper Verhalten nachbilden willst ... die DBF ist "immer verfügbar".
sicherlich könntest du ein VALID jedes mal ausführen ... aber ein User kann ja, per Maus, anfangen wo er will.
Werner_Bayern hat geschrieben:Macht der killInputFocus und geht wieder zurück in das Feld. Da ist also noch nicht viel passiert, weil das das 1. Feld ist, das ggf. geändert wird.
dein Beispiel mit einer ID ( Artikel ) als 1st Eingabe bei "Neu" ist wie unter Cl*pper gewohnt.
Problem (für den User) : er weiss nicht was "hinter" der ID steckt ! Ich präsentiere dann FOUND() in einem Browse statt MsgBox()

---

wenn 10 neue Artikel rein gekommen sind und es 2 Sachbearbeiter gibt kann es passieren das beide einen Artikel mit unterschiedlicher ID erfassen wenn die "Kommunikation" nicht stimmt.

nun kann man aber mit so wenig Informationen keine "Aussage" machen ... erst wenn weitere Felder ausgefüllt wurden -> "save".
erst hier fange ich mit dem validieren an.

Das anspringen von einem bemängelten Feld ist gut aber es sollten dann gleich alle Felder markiert werden.
ich schalte dann alle OK Felder auf

Code: Alles auswählen

   oSLE:editable := .F.
   oSLE:Tabstop  := .F.
was auch optisch sichtbar wird.
Werner_Bayern hat geschrieben:Gutes Beispiel, ist mir klar. Viel flexibler, aber auch viel komplizierter ohne rlock: Was wenn einer die Straße und der andere den Ort ändert. Ist jetzt vielleicht an den Haaren herbeigezogen, aber theoretisch zieht der Kunde von A nach B um, die Straße heisst aber immer noch Alleestraße. Der andere Nutzer ändert die Straße, weil er doch eigentlich in der Seitenstraße der Alleestraße (gewohnt hatte) wohnt.
ich schicke beim "save" eine Email im internen Netzwerk über eine neue Artikel Nummer. die bekommt auch ein Mitarbeiter der im Urlaub war !
die User beschweren sich zwar weil "einzeln" ... aber jeder soll alle Informationen bekommen um auf dem aktuellen Stand zu sein.
Werner_Bayern hat geschrieben:eine Transaktion taucht nach meinem Verständnis für andere Benutzer im Netzwerk erst auf, wenn sie erfolgreich abgeschlossen wurde.
bei DBF Dateien kann man im Datalink die Daten direkt, mit RLock(), in die DBF zurück schreiben. Damit wären die "sofort" im Netzwerk sichtbar.
wenn du das VALID nun mit KillInputFocus simulieren willst wären die Daten nach der Transaktion, welches eine Sperre ausführt, ebenfalls sichtbar.
beide Methoden würden aber einen beträchtlichen Netzwerk Verkehr erzeugen ... und damit auch evtl. Fehler ( zu kleine Daten Pakete / Cache )
gruss by OHR
Jimmy
georg
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2823
Registriert: Fr, 08. Feb 2008 21:29
Hat sich bedankt: 95 Mal
Danksagung erhalten: 13 Mal

Re: Logik im Netzwerk

Beitrag von georg »

Hallo,


erst einmal das Thema Transaktion: eine Transaktion ist entweder eine, oder keine. Punkt.

Transaktionskontrolle soll sicherstellen, dass bestimmte, von einander abhängige Änderungen entweder alle oder garnicht durchgeführt werden. Solange die Transaktion aktiv ist, sind alle Änderungen nur latent vorhanden. Erfolgt ein COMMIT, werden sie alle gültig. Erfolgt ein ROLLBACK, sind sie alle weg, als wären sie nie dagewesen.


Wir kommen aber neben den technischen Fragen auch zu persönlichen Vorlieben. Ich würde NIE einen Anwender einen Artikel nur mit der Artikelnummer anlegen lassen. Nach der Anlage des Artikels ist es Feierabend, und er "macht morgen weiter", hat Urlaub, wird krank, etc. Alles schon erlebt, das wäre mir als Programmierer zu unsicher.

Wenn es also darum geht, dass die Anwender spezielle Artikelnummern vorgeben können, dann würde ich eine Datei zwischenschalten, in die die neuen Artikelnummern geschrieben werden. Soll ein neuer Artikel angelegt werden, wird zuerst gegen den Artikelstamm, und danach gegen die "kommende Artikel"-Datei geprüft. Gibt es in keiner der beiden Dateien einen entsprechenden Satz, lege ich ihn in der "kommende Artikel"-Datei an, lasse den Anwender die restlichen Daten erfassen und schreibe dann den neuen Satz in die Artikel-Datei, anschliessend wird der "kommende Artikel"-Satz gelöscht (gegebenenfalls auch durch einen regelmässig ablaufenden Job, der alle Reservierungen löscht, die älter als 24 Stunden sind).

Gerade, wenn man Datenintegrität wie foreign keys verwendet (z.B. für die MWSt.), dann muss der Datensatz vollständig definiert sein, damit der SQL-Server die Anlage überhaupt erlaubt.

Das sind meine Gründe, warum ich einen anderen Ansatz wähle: ich lasse den Server die Schlüssel vergeben, und gut ist. Ich hänge gerade in einem Projekt, wo es um Software geht, die sprechende Schlüssel vergibt, und da läuft ein Nummernpool leer, und der Aufwand, einen neuen zu schaffen, ist enorm (zu letzt wurde so etwas vor 12 Jahren gemacht - die meisten, die das damals gemacht haben, sind inzwischen in Rente). Hätte man freie, "ungebundene" Nummern, wäre das Problem nicht da.

Aber: "Jede Jeck is anders!".

Und trotz all der Widrigkeiten, die SQL scheinbar mit sich bringt, ist es sicherer, schneller und bequemer.
Liebe Grüsse aus der Eifel,

Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
Benutzeravatar
Werner_Bayern
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2120
Registriert: Sa, 30. Jan 2010 22:58
Wohnort: Niederbayern
Hat sich bedankt: 29 Mal
Danksagung erhalten: 70 Mal

Re: Logik im Netzwerk

Beitrag von Werner_Bayern »

Servus Jimmy,
AUGE_OHR hat geschrieben:ich "denke" das du ein altes Cl*pper Verhalten nachbilden willst ... die DBF ist "immer verfügbar".
sicherlich könntest du ein VALID jedes mal ausführen ... aber ein User kann ja, per Maus, anfangen wo er will.)
Wir entfernen uns von der Eingangsfrage, ist aber trotzdem interessant zu antworten: Ich führe sonst kein Valid aus, es geht ja nur um das 1 Feld mit dem Primary Key. Normalerweise wird das bei den meisten Kunden gar nicht beachtet, nur einige wollen eigene Nummern vergeben. Deshalb ist es doch sinnvoll, den killInputFocus-Slot dafür zu verwenden, damit nur dann das Feld verlassen werden kann, wenn es sich um eine unique Nr. handelt. Ja, in diesem Fall ist ein Rlock notwendig, wenn er die vorgeschlagene Artikelnnr. selber ändert. Alternativ kann der Benutzer das Fenster auch schließen, dann werden alle Eingaben verworfen.
AUGE_OHR hat geschrieben:Problem (für den User) : er weiss nicht was "hinter" der ID steckt ! Ich präsentiere dann FOUND() in einem Browse statt MsgBox()
Eine gewisse Grundintelligenz setzen wir bei unseren Benutzern schon voraus. Was eine Artikelnummer ist, dürfte klar sein. Dass diese eindeutig sein muss, wird demjenigen spätestens klar, wenn er diese ändert und diese schon existiert (siehe Bild im obigen Beitrag).
AUGE_OHR hat geschrieben:wenn 10 neue Artikel rein gekommen sind und es 2 Sachbearbeiter gibt kann es passieren das beide einen Artikel mit unterschiedlicher ID erfassen wenn die "Kommunikation" nicht stimmt.
Und? Nicht mein Problem. Dafür gibt es bei mir aber noch andere Geschäftslogik, die hinterlegt ist.
AUGE_OHR hat geschrieben:nun kann man aber mit so wenig Informationen keine "Aussage" machen ... erst wenn weitere Felder ausgefüllt wurden -> "save".
erst hier fange ich mit dem validieren an.
Auch eine Möglichkeit.
AUGE_OHR hat geschrieben:ich schicke beim "save" eine Email im internen Netzwerk über eine neue Artikel Nummer. die bekommt auch ein Mitarbeiter der im Urlaub war !
die User beschweren sich zwar weil "einzeln" ... aber jeder soll alle Informationen bekommen um auf dem aktuellen Stand zu sein.
Mach ich nicht, wäre ja Information-Overload. Dafür gibt es eine Artikelliste, die z. B. nach Anlagedatum ausgegeben werden kann.
AUGE_OHR hat geschrieben:bei DBF Dateien kann man im Datalink die Daten direkt, mit RLock(), in die DBF zurück schreiben. Damit wären die "sofort" im Netzwerk sichtbar.
wenn du das VALID nun mit KillInputFocus simulieren willst wären die Daten nach der Transaktion, welches eine Sperre ausführt, ebenfalls sichtbar.
beide Methoden würden aber einen beträchtlichen Netzwerk Verkehr erzeugen ... und damit auch evtl. Fehler ( zu kleine Daten Pakete / Cache )
Sehe dafür keinen Sinn.
es grüßt

Werner

<when the music is over, turn off the lights!>
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: Logik im Netzwerk

Beitrag von brandelh »

Werner_Bayern hat geschrieben:, den killInputFocus-Slot dafür zu verwenden, damit nur dann das Feld verlassen werden kann, wenn es sich um eine unique Nr. handelt.
im Gegensatz zu DOS Clipper, der den Focuswechsel verhindern konnte, wird dieser Event erst NACH dem Verlassen ausgeführt.
Man kann dann zwar wieder zurück zu diesem control springen, dabei wird aber ich jetzt aktuellen auch ein killInputFocus Event ausgelöst.
Wenn beide also so eine Bedingung haben führt das zu einer Endlosschleife (wie ich schmerzlich lernen musste).

Ich validiere nur sehr einfache Felder mit dieser Art und Weise z.B. in einem SLE darf nur J N oder ? enthalten sein (oder ein anderer Buchstabe), dann kommt die Meldung ....
Alles andere validiere ich für die ganze Eingabeseite (oder sogar mehrere davon).

Ich habe allerdings auch KEINE Verkaufsdaten die sofort aktuell sein müssen.
Gruß
Hubert
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: Logik im Netzwerk

Beitrag von AUGE_OHR »

hi,

wenn man ein SLEpic, wo man auch die PICTURE setzen kann, benutzt hat man dort ein VAILD.
dieses VALID benutze ich als "sofort" Logik Check ob z.b. eine Warengruppe existiert -> ASCAN() -> RETURN .T.

anders bei einer "neu" Anlage wo ein FOUND ja bedeutet : "da" ist schon "was" ...
das "was" erfahre ich erst wenn ich ein Browse öffne und es anzeige wobei ein Zugriff auf den Server erfolgt.

in beiden Fällen beziehe ich mich nur auf ein einzelnes SLEpic ( GET )

bei einem "Save" prüfe ich nun die "Logik" von dem gesamte Datensatz wobei es nicht immer alle Felder sein müssen.
das ist bei mir schon deshalb notwendig, z.b. bei einer Änderung, um die Email / Logbuch Daten zu generieren.

Beispiel : die Adresse habe ich mit Mappoint "überprüft". nun will ich wissen ob unter der selben Adresse schon ein Kunde in der DBF existiert.
ob eine solche Prüfung notwendig ist hängt (meistens) von den Usern ab ... :-"
gruss by OHR
Jimmy
Benutzeravatar
Werner_Bayern
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2120
Registriert: Sa, 30. Jan 2010 22:58
Wohnort: Niederbayern
Hat sich bedankt: 29 Mal
Danksagung erhalten: 70 Mal

Re: Logik im Netzwerk

Beitrag von Werner_Bayern »

AUGE_OHR hat geschrieben:dann frage ich mich warum du nicht die "native" PostgreSQL Class nimmst :-"
beide Class(en) von Hector "könnte" man auch zu einer zusammenfassen was z.b. die Navigation in einem Resultset angeht.
Servus Jimmy,

hätte mich damit jetzt mal befasst, aber das Sample läuft bei mir nicht.

Code: Alles auswählen

init proc load_the_libpq_dll()
local e
if nLoadLibrary("libpq.dll") == 0
   e := Error():New()
   e:severity  := 3
   e:subsystem := "libpq4xb"
   e:description := "Unable to load libpq.dll"
   Eval( ErrorBlock() , e )
end
return
führt bei mir immer zum Fehler, obwohl ich die 32-Bit-Version der DLL im Programmverzeichnis habe.

Wo finde ich eigentlich die Doku zu nLoadLibrary? Hab bei Paplo dirgends was gefunden, nur in einer alten .chm steht, dass die Funktion mit dabei ist.
es grüßt

Werner

<when the music is over, turn off the lights!>
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: Logik im Netzwerk

Beitrag von AUGE_OHR »

Werner_Bayern hat geschrieben: hätte mich damit jetzt mal befasst, aber das Sample läuft bei mir nicht.
...
führt bei mir immer zum Fehler, obwohl ich die 32-Bit-Version der DLL im Programmverzeichnis habe.
und was noch ... ?
bei der PostgreSQL v9.x Version habe ich diese DLL Daten von PostgreSQL 32bit genommen.

Code: Alles auswählen

10.05.2012  17:11         1.156.608 libeay32.dll
10.07.2012  12:17           919.040 libiconv.dll
30.05.2012  13:48           163.292 libintl.dll
20.09.2012  13:56           137.216 libpq.dll
14.08.2012  15:30         1.009.664 libxml2.dll
23.05.2012  09:24           171.008 libxslt.dll
23.04.2015  03:54         1.251.328 PGU.DLL                  // meine DLL
10.05.2012  17:11           265.216 ssleay32.dll
23.04.2015  03:54           253.952 XBPGSQL.DLL              // Wrapper
10.05.2012  16:52            66.048 zlib1.dll
Werner_Bayern hat geschrieben:Wo finde ich eigentlich die Doku zu nLoadLibrary? Hab bei Paplo dirgends was gefunden, nur in einer alten .chm steht, dass die Funktion mit dabei ist.
ist im Prinzip das selbe wie Dllload()
gruss by OHR
Jimmy
Benutzeravatar
Werner_Bayern
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2120
Registriert: Sa, 30. Jan 2010 22:58
Wohnort: Niederbayern
Hat sich bedankt: 29 Mal
Danksagung erhalten: 70 Mal

Re: Logik im Netzwerk

Beitrag von Werner_Bayern »

Hab einfach mal alle reinkopiert:

Code: Alles auswählen

29.03.2016  06:36            14.336 adminpack.dll
29.03.2016  06:36             8.704 ascii_and_mic.dll
29.03.2016  06:36             8.704 auth_delay.dll
29.03.2016  06:36            10.240 autoinc.dll
29.03.2016  06:36            12.288 auto_explain.dll
29.03.2016  06:36            19.968 btree_gin.dll
29.03.2016  06:36            53.248 btree_gist.dll
29.03.2016  06:36             9.728 chkpass.dll
29.03.2016  06:36            10.752 citext.dll
29.03.2016  06:36            39.936 cube.dll
29.03.2016  06:36            13.824 cyrillic_and_mic.dll
29.03.2016  06:36            35.840 dblink.dll
29.03.2016  06:36             9.216 dict_int.dll
29.03.2016  06:36           226.816 dict_snowball.dll
29.03.2016  06:36            10.752 dict_xsyn.dll
29.03.2016  06:36             9.216 earthdistance.dll
29.03.2016  06:36            10.240 euc2004_sjis2004.dll
29.03.2016  06:36             9.216 euc_cn_and_mic.dll
29.03.2016  06:36            14.848 euc_jp_and_sjis.dll
29.03.2016  06:36             9.216 euc_kr_and_mic.dll
29.03.2016  06:36            12.288 euc_tw_and_big5.dll
29.03.2016  06:36            16.384 file_fdw.dll
29.03.2016  06:36            24.576 fuzzystrmatch.dll
29.03.2016  06:36            44.032 hstore.dll
29.03.2016  06:36            11.264 hstore_plperl.dll
29.03.2016  06:36            10.240 hstore_plpython3.dll
29.03.2016  06:36             9.728 insert_username.dll
29.03.2016  06:36            47.616 isn.dll
29.03.2016  06:36            10.240 latin2_and_win1250.dll
29.03.2016  06:36             9.216 latin_and_mic.dll
29.03.2016  06:36            67.072 libecpg.dll
29.03.2016  06:36            15.360 libecpg_compat.dll
29.03.2016  06:36            64.000 libpgtypes.dll
29.03.2016  06:36           144.896 libpq.dll
29.03.2016  06:36            14.336 libpqwalreceiver.dll
29.03.2016  06:36             9.216 lo.dll
29.03.2016  06:36            45.056 ltree.dll
29.03.2016  06:36             8.704 ltree_plpython3.dll
29.03.2016  06:36            10.240 moddatetime.dll
29.03.2016  06:36            24.064 pageinspect.dll
29.03.2016  06:36             9.216 passwordcheck.dll
29.03.2016  06:36            95.232 pgcrypto.dll
29.03.2016  06:36            32.256 pgevent.dll
29.03.2016  06:36            11.776 pgrowlocks.dll
29.03.2016  06:36            21.504 pgstattuple.dll
29.03.2016  06:36            18.432 pgxml.dll
29.03.2016  06:36            10.240 pg_buffercache.dll
29.03.2016  06:36             9.216 pg_freespacemap.dll
29.03.2016  06:36            11.264 pg_prewarm.dll
29.03.2016  06:36            29.184 pg_stat_statements.dll
29.03.2016  06:36            31.232 pg_trgm.dll
29.03.2016  06:36            67.584 plperl.dll
29.03.2016  06:36           141.312 plpgsql.dll
29.03.2016  06:36            82.432 plpython3.dll
29.03.2016  06:36            29.696 pltcl.dll
29.03.2016  06:36            39.424 plugin_debugger.dll
29.03.2016  06:36            44.544 postgres_fdw.dll
29.03.2016  06:36            15.360 refint.dll
29.03.2016  06:36            49.152 regress.dll
29.03.2016  06:36            26.624 seg.dll
29.03.2016  06:36            12.288 sslinfo.dll
29.03.2016  06:36            19.968 tablefunc.dll
29.03.2016  06:36            10.752 tcn.dll
29.03.2016  06:36            13.824 timetravel.dll
29.03.2016  06:36            19.456 tsearch2.dll
29.03.2016  06:36            12.800 tsm_system_rows.dll
29.03.2016  06:36            12.800 tsm_system_time.dll
29.03.2016  06:36            12.288 unaccent.dll
29.03.2016  06:36             8.704 utf8_and_ascii.dll
29.03.2016  06:36           228.352 utf8_and_big5.dll
29.03.2016  06:36            13.312 utf8_and_cyrillic.dll
29.03.2016  06:36           192.512 utf8_and_euc2004.dll
29.03.2016  06:36           128.000 utf8_and_euc_cn.dll
29.03.2016  06:36           220.160 utf8_and_euc_jp.dll
29.03.2016  06:36           140.800 utf8_and_euc_kr.dll
29.03.2016  06:36           339.456 utf8_and_euc_tw.dll
29.03.2016  06:36           502.272 utf8_and_gb18030.dll
29.03.2016  06:36           357.888 utf8_and_gbk.dll
29.03.2016  06:36            35.328 utf8_and_iso8859.dll
29.03.2016  06:36             9.216 utf8_and_iso8859_1.dll
29.03.2016  06:36           281.600 utf8_and_johab.dll
29.03.2016  06:36           130.560 utf8_and_sjis.dll
29.03.2016  06:36           192.000 utf8_and_sjis2004.dll
29.03.2016  06:36           284.672 utf8_and_uhc.dll
29.03.2016  06:36            30.208 utf8_and_win.dll
29.03.2016  06:36            39.936 uuid-ossp.dll
29.03.2016  06:36            36.352 _int.dll
es grüßt

Werner

<when the music is over, turn off the lights!>
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: Logik im Netzwerk

Beitrag von AUGE_OHR »

Werner_Bayern hat geschrieben:Hab einfach mal alle reinkopiert:
so geht es auch ... :lol:

die API stellt dir ja nur die Verbindung zum PostgreSQL Server her und der macht die Arbeit bei der Ausführung deiner Query. du benötigst also nur die o.g. Dateien die für eine (verschlüsselte) Verbindung zuständig sind.

p.s. wenn du nicht das "UpsizeDbf.EXE" aus Xbase++ v2.x hast dann kannst du mein PGU Tool benutzen.
ähnlich UpsizeDbf.EXE kannst du damit eine DBF in eine PostgreSQL Table importieren.
http://www.xbaseforum.de/viewtopic.php?f=16&t=6322
gruss by OHR
Jimmy
Benutzeravatar
Werner_Bayern
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2120
Registriert: Sa, 30. Jan 2010 22:58
Wohnort: Niederbayern
Hat sich bedankt: 29 Mal
Danksagung erhalten: 70 Mal

Re: Logik im Netzwerk

Beitrag von Werner_Bayern »

Servus Jimmy,

wie geschrieben, ich kann die Klasse von Pablo nicht nutzen.
Hab mir inzwischen eine eigene SQL-Klasse geschrieben, hab ja die 2.0 prof. und nutze die native (?):

Code: Alles auswählen

   oStmt := DacSqlStatement(::oSession):FromChar(cBefehl)
   oStmt:Build():Query(USQL_RESULT_WORKAREA)
Also kein ISAM, ist einfach zu langsam.
es grüßt

Werner

<when the music is over, turn off the lights!>
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: Logik im Netzwerk

Beitrag von AUGE_OHR »

Werner_Bayern hat geschrieben:wie geschrieben, ich kann die Klasse von Pablo nicht nutzen.
bekommst du keinen Connect zum Server oder was meinst du ?
versuche doch mal mein PGU Tool http://www.xbaseforum.de/viewtopic.php?f=16&t=6322
ich habe es mit PostgreSQL v9.5.2.1 und 9.3.0.1 getestet und funktioniert ( Win7 / 10 32bit )
Werner_Bayern hat geschrieben:Also kein ISAM, ist einfach zu langsam.
... no Comment.
gruss by OHR
Jimmy
Benutzeravatar
Werner_Bayern
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2120
Registriert: Sa, 30. Jan 2010 22:58
Wohnort: Niederbayern
Hat sich bedankt: 29 Mal
Danksagung erhalten: 70 Mal

Re: Logik im Netzwerk

Beitrag von Werner_Bayern »

ich bekomme nur:
Unable to load libpq.dll
es grüßt

Werner

<when the music is over, turn off the lights!>
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: Logik im Netzwerk

Beitrag von AUGE_OHR »

Werner_Bayern hat geschrieben:ich bekomme nur:
Unable to load libpq.dll
hm ... und es ist sicher eine 32bit DLL ?
hast du es mit PGU probiert ?
gruss by OHR
Jimmy
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: Logik im Netzwerk

Beitrag von AUGE_OHR »

Werner_Bayern hat geschrieben:ich bekomme nur:
Unable to load libpq.dll
hm ... und es ist sicher eine 32bit DLL ? http://www.xbaseforum.de/viewtopic.php? ... dll#p85036
hast du es mit PGU probiert ?
gruss by OHR
Jimmy
Benutzeravatar
Werner_Bayern
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2120
Registriert: Sa, 30. Jan 2010 22:58
Wohnort: Niederbayern
Hat sich bedankt: 29 Mal
Danksagung erhalten: 70 Mal

Re: Logik im Netzwerk

Beitrag von Werner_Bayern »

Servus Jimmy,

habs aus der ZIP für die 32-Bit-Version von PostgreSQL kopiert.
es grüßt

Werner

<when the music is over, turn off the lights!>
Antworten