Universal SQL [ERLEDIGT]

Zugriff, Engines, Konvertierung. Von ADS über DBF bis zu SQL.

Moderator: Moderatoren

Antworten
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 18151
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel

Universal SQL [ERLEDIGT]

Beitrag von Manfred » Do, 23. Aug 2018 9:12

Hi,
ich wollte gerade einmal das Beispiel von Steffen auf Youtube bzgl. dataobject im Zusammenhang mit SQl Befehlen ausprobieren. Muß man da eine zauberformel sprechen, oder irgendwas noch mit einbinden? Wenn ich diesen Befehl eintippe

Code: Alles auswählen

SELECT field1 AS name, field2 AS size FROM (Directory()) INTO objects adirectory 
und dann kompiliere, erscheint diese Fehlermeldung
[Fehler] : error ALK2102: unresolved external symbol USQLSTATEMENT
was mache ich falsch?
Gruß Manfred
Mitglied der XUG Leverkusen
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite

Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 13141
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Kontaktdaten:

Re: Universal SQL

Beitrag von Jan » Do, 23. Aug 2018 9:18

Manfred,

bindest Du die ADAC20B.lib ein?

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.

Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 18151
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel

Re: Universal SQL

Beitrag von Manfred » Do, 23. Aug 2018 9:24

:oops: Dachte ich mir doch, das da was fehlt.
Komisch, es klappt aber trotzdem nur, wenn man den Code fest verdrahtet. Auf der Eingabezeile in der WB klappt es trotzdem nicht.
Gruß Manfred
Mitglied der XUG Leverkusen
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite

Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 14594
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Kontaktdaten:

Re: Universal SQL [ERLEDIGT]

Beitrag von brandelh » Do, 23. Aug 2018 9:44

Aber der Befehl sieht ja sehr interessant aus ...
Gruß
Hubert

Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 7333
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Kontaktdaten:

Re: Universal SQL [ERLEDIGT]

Beitrag von Tom » Do, 23. Aug 2018 10:13

Ja, Hubert. Das ist sehr cool, ziemlich performant - und es spart eine irre Menge Code. Aber es ist wie mit vielen anderen Fortschritten: Man muss sich einmal die Zeit nehmen, das auszuprobieren und im eigenen Code zu reflektieren.

Als ich Boris' Xb2.Net gekauft habe, da gab es schon SQLexpress von ihm, habe ich sein "TimeClock"-Beispiel verwendet, um ein kleines Web-Frontend zu unserer App zu bauen. Schon damals stand im Code für die Aufbereitung/Anzeige von ISAM-Tabellen "This would be so much easier with SQL" als Kommentar von Boris. Ich habe diese Anwendung kürzlich aufgefrischt und hier und da umgestellt. Und Boris hatte schon damals recht. Ich weiß nicht, von wann der Kommentar ursprünglich stammt, nehme aber an, dass es so um 2005 herum gewesen sein wird.

Der Code für die Erhebung und Aufbereitung der Tabellendaten hat sich auf knapp 15% reduziert.
Herzlich,
Tom

Benutzeravatar
Werner_Bayern
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1549
Registriert: Sa, 30. Jan 2010 22:58
Wohnort: Niederbayern

Re: Universal SQL [ERLEDIGT]

Beitrag von Werner_Bayern » Do, 23. Aug 2018 13:28

Tom hat geschrieben:
Do, 23. Aug 2018 10:13
Der Code für die Erhebung und Aufbereitung der Tabellendaten hat sich auf knapp 15% reduziert.
Kann ich bestätigen. Jetzt nur noch ein select-Statement, was vorher teilweise viele Programmzeilen erforderte. Die Möglichkeiten mit LEFT JOIN etc. sind schon enorm. Und rasend schnell! Auswertungen, die früher mit dbf bis zu mehrere Minuten dauerten, sind mittels SQL innerhalb Sekunden fertig. Und das meist ohne extra SQL-Index. Wird's zu langsam, wird einfach an den PostgreSQL-Parametern geschraubt, oder ein Index drüber gelegt. Keine einzige Zeile Code muss dafür geändert werden.

Abgesehen von den offenen PDRs zur PGDBE (wir arbeiten dran :wink:) macht es Spass.
es grüßt euch

Werner

Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 18151
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel

Re: Universal SQL [ERLEDIGT]

Beitrag von Manfred » Mo, 03. Sep 2018 19:11

Hm,
da klappt aber was nicht richtig. Wenn man den Select Befehl auf ein Verzeichnis macht, in dem es die Dateien nicht gibt und man ein leeres Array zurückbekommt, dann knallt es im Karton.
fehler.PNG
fehler.PNG (30.28 KiB) 1175 mal betrachtet
Gruß Manfred
Mitglied der XUG Leverkusen
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite

Benutzeravatar
Lewi
1000 working lines a day
1000 working lines a day
Beiträge: 786
Registriert: Di, 07. Feb 2006 14:10
Wohnort: Hamburg

Re: Universal SQL [ERLEDIGT]

Beitrag von Lewi » Mo, 03. Sep 2018 22:36

Das es "knallt" ist doch logisch. "From" erwartet ein Litaral und bei Bedarf zuzüglich den Alias-Namen der Tabelle. Einzelne Tabellen werden durch Kommatas getrennt.

Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 11515
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg

Re: Universal SQL [ERLEDIGT]

Beitrag von AUGE_OHR » Di, 04. Sep 2018 0:12

Manfred hat geschrieben:
Mo, 03. Sep 2018 19:11
... auf ein Verzeichnis macht, in dem es die Dateien nicht gibt und man ein leeres Array zurückbekommt, dann knallt es im
es gibt kein Unterschied zur "alten" Methode

Code: Alles auswählen

LOCAL aDir := DIRECTORY("Gib_es_nicht_File.DBF")

   oQB := XbpQuickBrowse():new(oDlg:drawingArea,,{2,2}, aSize)
   oQB:dataLink := DacPagedDataStore():new( aDir, {1,2,3,4} )
   oQB:create()
wenn das File nicht vorhanden ist und ein leeres Array als Resultat übergeben wird dann knallt das auch in meinem Beispiel.

DIRECTORY() als Beispiel ist natürlich sehr simple aber es erstaunt mich auch denn es ist ja eine Xbase++ Function "inside". üblicherweise kann man in einem SELECT nur "interne" Function nutzen die der entsprechende SQL Server hat.

p.s. wie sieht so ein Universal SQL Code als PPO aus :?:
gruss by OHR
Jimmy

Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 18151
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel

Re: Universal SQL [ERLEDIGT]

Beitrag von Manfred » Di, 04. Sep 2018 8:38

USqlStatement():New():Select( {{"field1", "name"}} ):From( {{Directory(cDatei), "Directory(cDatei)"}} ):Build():Query( 4, @adirectory )
Gruß Manfred
Mitglied der XUG Leverkusen
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite

Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 18151
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel

Re: Universal SQL [ERLEDIGT]

Beitrag von Manfred » Mi, 05. Sep 2018 7:52

PDR 7039
Gruß Manfred
Mitglied der XUG Leverkusen
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite

Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 18151
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel

Re: Universal SQL [ERLEDIGT]

Beitrag von Manfred » Mo, 08. Okt 2018 15:14

wenn man das Ergebnis in eine Membervar schreiben will, dann meckert schon der Compiler.

Code: Alles auswählen

SELECT field1 AS name FROM (Directory(cDatei)) INTO objects ::aPdf
fehler.PNG
fehler.PNG (2.9 KiB) 462 mal betrachtet
Gruß Manfred
Mitglied der XUG Leverkusen
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite

Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 18151
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel

Re: Universal SQL [ERLEDIGT]

Beitrag von Manfred » Di, 09. Okt 2018 14:11

ich habe derzeit wohl ein Händchen dafür.

http://www.alaska-software.com/scripts/ ... PDRID=7053
Gruß Manfred
Mitglied der XUG Leverkusen
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite

Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2434
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Kontaktdaten:

Re: Universal SQL [ERLEDIGT]

Beitrag von Wolfgang Ciriack » Di, 09. Okt 2018 22:08

.. aber wenigstens auch eine Lösung dafür :D
Viele Grüße
Wolfgang

Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 18151
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel

Re: Universal SQL [ERLEDIGT]

Beitrag von Manfred » Mi, 10. Okt 2018 7:30

ja stimmt. Mit self klappt es
Gruß Manfred
Mitglied der XUG Leverkusen
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite

Antworten