suchen und anhängen

Alles zum SQL-Dialekt

Moderator: Moderatoren

Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: suchen und anhängen

Beitrag von Manfred »

ich kann Dir mal wieder nicht folgen. Was muß ich da tun?
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Marcus Herz
1000 working lines a day
1000 working lines a day
Beiträge: 851
Registriert: Mo, 16. Jan 2006 8:13
Wohnort: Allgäu
Hat sich bedankt: 39 Mal
Danksagung erhalten: 192 Mal
Kontaktdaten:

Re: suchen und anhängen

Beitrag von Marcus Herz »

Du musst zudem temporäre Dateien nicht dem Dic hinzufügen:

Code: Alles auswählen

select * from "\\myserver\myshare\mydir\temp.cdx" temp
so kannst du freie Tabellen verwenden, auch für JOINs etc.
Di können dann auch in einem anderen Verzeichnis stehen, nur der gleiche Server muss es sein
Gruß Marcus

Erkenne, was du findest, dann weißt du, wonach du gesucht hast
Benutzeravatar
Marcus Herz
1000 working lines a day
1000 working lines a day
Beiträge: 851
Registriert: Mo, 16. Jan 2006 8:13
Wohnort: Allgäu
Hat sich bedankt: 39 Mal
Danksagung erhalten: 192 Mal
Kontaktdaten:

Re: suchen und anhängen

Beitrag von Marcus Herz »

Da haben sich unsere Antworten überschnitten...

Code: Alles auswählen

           TEXT INTO cSQLSTmt WRAP Chr(13) TRIMMED
                 MERGE tankbuch tb USING (select * from "e:\tauschverzeichnis\fuhrparkverwaltung\webdienst\tbuch1_kopie.dbf" tbk ) tbk
                 ON (tbk.kfznr=tb.kfznr AND tbk.tankdatum=tb.tankdatum AND tbk.tankzeit=tb.tankzeit)
                 WHEN NOT MATCHED THEN INSERT (art, kfznr, kmstand, menge, persnr, tankdatum, tankzeit, terminalnr) VALUES(tbk.art, tbk.kfznr, tbk.kmstand,tbk.menge, tbk.persnr,tbk.tankdatum, tbk.tankzeit, tbk.terminalnr)
            ENDTEXT
Gruß Marcus

Erkenne, was du findest, dann weißt du, wonach du gesucht hast
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: suchen und anhängen

Beitrag von Manfred »

ah, es kann mit Laufwerksbuchstaben gearbeitet werden.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: suchen und anhängen

Beitrag von Manfred »

löst aber mein Problem nicht. Die Datei bleibt offen und kann am Ende nicht gelöscht werden. Oder sagen wir mal anders, sie bleibt für den Löschzugriff gesperrt. Wenn ich Workspacelist() aufrufe steht sie nicht drin, aber im ARC wird sie ale geöffnet angezeigt.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Marcus Herz
1000 working lines a day
1000 working lines a day
Beiträge: 851
Registriert: Mo, 16. Jan 2006 8:13
Wohnort: Allgäu
Hat sich bedankt: 39 Mal
Danksagung erhalten: 192 Mal
Kontaktdaten:

Re: suchen und anhängen

Beitrag von Marcus Herz »

- Besser ist UNC, hab nur den Pfad kopiert
- Laufwerksbuchstabe muss für den Server gültig sein
Gruß Marcus

Erkenne, was du findest, dann weißt du, wonach du gesucht hast
Benutzeravatar
Marcus Herz
1000 working lines a day
1000 working lines a day
Beiträge: 851
Registriert: Mo, 16. Jan 2006 8:13
Wohnort: Allgäu
Hat sich bedankt: 39 Mal
Danksagung erhalten: 192 Mal
Kontaktdaten:

Re: suchen und anhängen

Beitrag von Marcus Herz »

JA, der ADS cached die letzten 20 Tabellen. Aus Performance Gründen, Ist auch so richtig.
Es gibt die

Code: Alles auswählen

AdsCloseCachedTables( ADSHANDLE hConnection )
Funktion, wie die du mit deiner Umgebung aufrufen kannst weiß ich nicht.
Der Hendle kann von DacSession ausgelesen werden, find aber auf die Schenlle nicht wo
Gruß Marcus

Erkenne, was du findest, dann weißt du, wonach du gesucht hast
ramses
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2513
Registriert: Mi, 28. Jul 2010 17:16
Hat sich bedankt: 12 Mal
Danksagung erhalten: 77 Mal

Re: suchen und anhängen

Beitrag von ramses »

Den Handle bekommst du mit dieser Funktion

Code: Alles auswählen

static FUNCTION AdsExtGetConnectHandle( cServerPath )
   LOCAL nConnectHandle := 0
   LOCAL rc
   DEFAULT cServerPath TO SET(_SET_DEFAULT)
   rc := DllCall( "ACE32.DLL", DLL_STDCALL, "AdsFindConnection", @cServerPath, @nConnectHandle )
   AdsExtErrorCheck( rc )
return nConnectHandle
Valar Morghulis

Gruss Carlo
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: suchen und anhängen

Beitrag von Manfred »

Sorry,
aber es fällt mir schwer zu glauben, das es als Cache offen gehalten wird. Die DBF, aus der übernommen wird, bleibt so lange auf, bis das Programm einmal geschlossen wird ( mehr als 8 Stunden). Dann wird sie auch sofort geschlossen. Bzw. dann ist sie aus der Liste "open Files" im Architekten verschwunden.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Marcus Herz
1000 working lines a day
1000 working lines a day
Beiträge: 851
Registriert: Mo, 16. Jan 2006 8:13
Wohnort: Allgäu
Hat sich bedankt: 39 Mal
Danksagung erhalten: 192 Mal
Kontaktdaten:

Re: suchen und anhängen

Beitrag von Marcus Herz »

Ich habe gestern beim Stöbern in PDR einen Eintrag gefunden, vielleicht trifft der ja für dich zu:

https://www.alaska-software.com/scripts ... PDRID=7290
Gruß Marcus

Erkenne, was du findest, dann weißt du, wonach du gesucht hast
Benutzeravatar
Marcus Herz
1000 working lines a day
1000 working lines a day
Beiträge: 851
Registriert: Mo, 16. Jan 2006 8:13
Wohnort: Allgäu
Hat sich bedankt: 39 Mal
Danksagung erhalten: 192 Mal
Kontaktdaten:

Re: suchen und anhängen

Beitrag von Marcus Herz »

dann ist sie aus der Liste "open Files" im Architekten verschwunden
das ist dann auch definitiv kein AdsCacheProblem, weil die siehst du von außen nicht als geöffnet.
Gruß Marcus

Erkenne, was du findest, dann weißt du, wonach du gesucht hast
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: suchen und anhängen

Beitrag von Manfred »

Also, das hier klappt ja.

Code: Alles auswählen

MERGE tankbuch tb USING (SELECT * FROM "e:\tauschverzeichnis\fuhrparkverwaltung\webdienst\tbuch1_kopie.dbf" tbk ) tbk
                 ON (tbk.kfznr=tb.kfznr AND tbk.tankdatum=tb.tankdatum AND tbk.tankzeit=tb.tankzeit)
                 WHEN NOT MATCHED THEN INSERT (art, kfznr, kmstand, menge, persnr, tankdatum, tankzeit, terminalnr) VALUES(tbk.art, tbk.kfznr, tbk.kmstand,tbk.menge, tbk.persnr,tbk.tankdatum, tbk.tankzeit, tbk.terminalnr)
Jetzt würde ich aber gerne noch im gleichen Zug über "kfznr" in einer anderen Tabelle einen Satz suchen und dem dann den kmstand übergeben. Aber nur, wenn der neue höher ist als der, der dort eingetragen ist. Natürlich nur, wenn der Satz auch im Tankbuch angehängt wird.
Geht das in einem Rutsch, oder wie müßte man sowas lösen? Hat wer einen Vorschlag?
Es würde auch genügen, wenn die Sätze, die neu angehängt wurden in eine temporäre Tabelle geschrieben würden und ich dann am Ende diese durchlaufe und damit Suche und update.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Marcus Herz
1000 working lines a day
1000 working lines a day
Beiträge: 851
Registriert: Mo, 16. Jan 2006 8:13
Wohnort: Allgäu
Hat sich bedankt: 39 Mal
Danksagung erhalten: 192 Mal
Kontaktdaten:

Re: suchen und anhängen

Beitrag von Marcus Herz »

in einer anderen Tabelle einen Satz suchen und dem dann den kmstand übergeben
Das geht nicht im gleichen SQL, merge (update oder insert) kann nur in eine Datei schreiben.
Du könntest vor dem Merge (ich nehme an du hats keine LOG Felder, an denen du die neuen hinterher erkannen kannst)
den KM Stand schreiben:

Code: Alles auswählen

UPDATE <tabkmstand>
  SET kmstand = tbk.kmstand
  from <tabkmstand>
    left join "e:\tauschverzeichnis\fuhrparkverwaltung\webdienst\tbuch1_kopie.dbf" tbk ) tbk on tbk.kfznr = <tabkmstand>.kfznr
  WHERE kmstand < tbk.kmstand
  and not eixsts (
  SELECT *
    FROM tankbuch tb
    WHERE tbk.kfznr=tb.kfznr AND tbk.tankdatum=tb.tankdatum AND tbk.tankzeit=tb.tankzeit)
Ist ein wenig (zu) verschachtelt. Eine Tmp Tabelle erstellst du so:

Code: Alles auswählen

TRY drop table #tmp; CATCH ALL END TRY;

// neue Sätze ermitteln, das was ja im Merge auch passiert
SELECT * into #tmp
  FROM "e:\tauschverzeichnis\fuhrparkverwaltung\webdienst\tbuch1_kopie.dbf" tbk
  and not eixts (
  SELECT *
    FROM tankbuch tb
    WHERE tbk.kfznr=tb.kfznr AND tbk.tankdatum=tb.tankdatum AND tbk.tankzeit=tb.tankzeit)
    ;
// die neuen Sätze schreiben    
INSERT INTO tankbuch
         (art, kfznr, kmstand, menge, persnr, tankdatum, tankzeit, terminalnr)
  SELECT tbk.art, tbk.kfznr, tbk.kmstand,tbk.menge, tbk.persnr,tbk.tankdatum, tbk.tankzeit, tbk.terminalnr
  FROM #tmp tbk
  :
// kmstand aus den neuen Sätzen abfragen
UPDATE <tabkmstand>
  SET kmstand = tbk.kmstand
  from <tabkmstand>
    left join #tmp tbk on tbk.kfznr = <tabkmstand>.kfznr
  WHERE kmstand < tbk.kmstand
  ;
drop table #tmp;
Wie immer, mangels Tabellen, ungetestet
Zuletzt geändert von Marcus Herz am Mo, 26. Jul 2021 12:39, insgesamt 3-mal geändert.
Gruß Marcus

Erkenne, was du findest, dann weißt du, wonach du gesucht hast
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: suchen und anhängen

Beitrag von Manfred »

auh backe, das hatte ich befürchtet.
Ich glaube ich muß dann doch anders herangehen. Das soll ja auch nocht später von mir durchschaubar sein und bleiben.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: suchen und anhängen

Beitrag von Manfred »

aber andersherum gefragt, die Ursprungsdaten sind ja sequentiell angeordnet. Wenn ich jetzt bei dem MERGEN ermitteln könnte, ab welchem Satz gemerged wird, dann wäre das evtl. auch eine Möglichkeit dann später ab dem entsprechenden Satz die restlichen paar nochmal zu durchlaufen und dann die KM Stände zu übertragen. Es kommen ja nicht so viele täglich dazu. Es ist blos die gesamte Samllung, die die Tabelle so groß werden läßt-
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Marcus Herz
1000 working lines a day
1000 working lines a day
Beiträge: 851
Registriert: Mo, 16. Jan 2006 8:13
Wohnort: Allgäu
Hat sich bedankt: 39 Mal
Danksagung erhalten: 192 Mal
Kontaktdaten:

Re: suchen und anhängen

Beitrag von Marcus Herz »

Ich hab in den Code mit Temp Tabelle noch Kommentare eingefügt. Hat den Vorteil, dass so immer auch bei Paralell Verarbetung das stimmt. Sich die letzte RowID zu merken, funktioniert auch, aber nur wenn nur von einer Anbwendung geschrieben wird
Gruß Marcus

Erkenne, was du findest, dann weißt du, wonach du gesucht hast
Benutzeravatar
Marcus Herz
1000 working lines a day
1000 working lines a day
Beiträge: 851
Registriert: Mo, 16. Jan 2006 8:13
Wohnort: Allgäu
Hat sich bedankt: 39 Mal
Danksagung erhalten: 192 Mal
Kontaktdaten:

Re: suchen und anhängen

Beitrag von Marcus Herz »

die Ursprungsdaten sind ja sequentiell angeordnet.

Das gilt nciht mehr, ist zwar meistens so, aber keine Definition
Gruß Marcus

Erkenne, was du findest, dann weißt du, wonach du gesucht hast
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: suchen und anhängen

Beitrag von Manfred »

halt, evtl. falsch verstanden.
Ich habe ja eine DBF in die immer nur angehängt wird. Diese wird durchlaufen und dann eben die neuen Sätze gemerged. Es wäre halt gut, wenn man wüßte ab welchem Satz aus der DBF in die neue Datei übertragen wird. Dann weiß ich das ich beim 2.Durchlauf in der DBF dahin springen muß um dann zu sagen:"mache den Rest und date up"
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: suchen und anhängen

Beitrag von Manfred »

das ist alles Kappes, ich glaube ich löse das anders. Das läuft ja nur 1x in der Nacht und dann dauert es halt ein paar Sekunden länger. Ich durchlaufe danach die Fahrzeuge und prüfe nach, was ich an letzten Einträgen im Tankbuch habe und vergleiche das dann mit dem KMStand. Das sollte gnügen.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Marcus Herz
1000 working lines a day
1000 working lines a day
Beiträge: 851
Registriert: Mo, 16. Jan 2006 8:13
Wohnort: Allgäu
Hat sich bedankt: 39 Mal
Danksagung erhalten: 192 Mal
Kontaktdaten:

Re: suchen und anhängen

Beitrag von Marcus Herz »

für so Aufgaben, suche einen Satz etc. ist die SQL Engine zuständig. Das mache ich nicht mehr 'per Hand'. Der PRG Code wird viel schlanker und überischtlicher.
Es gibt eine Regel, wie upgedatet wird, und die muss abgearbeitet werden. Optimierungen gehören in die SQL Engine. (Ausnahmen bestätigen die Regel, aber mir scheint das hier keine zu sein)
Gruß Marcus

Erkenne, was du findest, dann weißt du, wonach du gesucht hast
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: suchen und anhängen

Beitrag von Manfred »

verstehe ich zwar sprachlich, aber nicht technisch.
Ich würde jetzt die Fahrzeuge ermitteln und dann das Ergebnis durchlaufen und mir zu jedem Fahrzeug die Einträge im Tankbuch anzeigen lassen. Datumsortiert, aber das letzte an den Anfang. So brauche ich nur einen Satz zu vergleichen. Dann schaue ich nach wie der KMStand ist und tausche halt aus, wenn er höher ist als bisher im Fahrzeug steht.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Marcus Herz
1000 working lines a day
1000 working lines a day
Beiträge: 851
Registriert: Mo, 16. Jan 2006 8:13
Wohnort: Allgäu
Hat sich bedankt: 39 Mal
Danksagung erhalten: 192 Mal
Kontaktdaten:

Re: suchen und anhängen

Beitrag von Marcus Herz »

Für mich wars ein langer Weg weg von der Satz Denkweise, wahrscheinlich bin ich nicht der einzige, dem es so ging, aber wenn es mal klick gemacht hat, wird vieles so viel einfacher.
So wie ich es verstehe, ist in einer 2. Tabelle immer der letzte KM Stand gespeichert:

Code: Alles auswählen

update <kmstandtabelle>  set kmstand = t.kmstand
from <kmstandtabelle>
left join (select kfznr, max(kmstand) as kmstand from tankbuch group by 1) t on t.kfznr = <kmstandtabelle>.kfznr
where kmstand <> t.kmstand
Eigentlich ist es nicht relevant, ob sich der Wert geändert hat. Er muss übereinstimmen
Gruß Marcus

Erkenne, was du findest, dann weißt du, wonach du gesucht hast
Benutzeravatar
Marcus Herz
1000 working lines a day
1000 working lines a day
Beiträge: 851
Registriert: Mo, 16. Jan 2006 8:13
Wohnort: Allgäu
Hat sich bedankt: 39 Mal
Danksagung erhalten: 192 Mal
Kontaktdaten:

Re: suchen und anhängen

Beitrag von Marcus Herz »

Manfred, was machst du eigentlich, wenn ein Auto ausgetauscht wird, aber wieder das gleiche Kennzeichen bekommt?
Gruß Marcus

Erkenne, was du findest, dann weißt du, wonach du gesucht hast
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: suchen und anhängen

Beitrag von Manfred »

sagen wir mal so, es ist immer der letzte Eintrag zu dem Fahrzeug. Davor stehen unbegrenzt viele ältere. Und größer muß er sein, weil zwischendurch evtl. noch von woanders ein KM Stand herkommen kann, der dann evtl. höher ist als der letzte Tankstand. Oder falls mal jemand den KMStand falsch eingegeben hat. Wobei ich das nicht weiß, ob das händisch gemacht wird, oder ausgelesen wird.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: suchen und anhängen

Beitrag von Manfred »

Die Fahrzeuge werden intern nummeriert und haben einen QR-Code mit dem sie gescannt werden. Was das evtl. für Probleme noch geben kann wird die Zukunft zeigen. Noch ist das System erst in der Mache.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Antworten