Universal SQL [ERLEDIGT]

Alles zum SQL-Dialekt

Moderator: Moderatoren

Antworten
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

Universal SQL [ERLEDIGT]

Beitrag von Manfred »

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 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
Jan
Marvin
Marvin
Beiträge: 14641
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 87 Mal
Kontaktdaten:

Re: Universal SQL

Beitrag von Jan »

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: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: Universal SQL

Beitrag von Manfred »

: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 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
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: Universal SQL [ERLEDIGT]

Beitrag von brandelh »

Aber der Befehl sieht ja sehr interessant aus ...
Gruß
Hubert
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9345
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 100 Mal
Danksagung erhalten: 359 Mal
Kontaktdaten:

Re: Universal SQL [ERLEDIGT]

Beitrag von Tom »

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: 2120
Registriert: Sa, 30. Jan 2010 22:58
Wohnort: Niederbayern
Hat sich bedankt: 29 Mal
Danksagung erhalten: 70 Mal

Re: Universal SQL [ERLEDIGT]

Beitrag von Werner_Bayern »

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

Werner

<when the music is over, turn off the lights!>
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: Universal SQL [ERLEDIGT]

Beitrag von Manfred »

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) 14262 mal betrachtet
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
Lewi
1000 working lines a day
1000 working lines a day
Beiträge: 830
Registriert: Di, 07. Feb 2006 14:10
Wohnort: Hamburg
Danksagung erhalten: 2 Mal

Re: Universal SQL [ERLEDIGT]

Beitrag von Lewi »

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: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: Universal SQL [ERLEDIGT]

Beitrag von AUGE_OHR »

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: 21165
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 206 Mal
Danksagung erhalten: 67 Mal

Re: Universal SQL [ERLEDIGT]

Beitrag von Manfred »

USqlStatement():New():Select( {{"field1", "name"}} ):From( {{Directory(cDatei), "Directory(cDatei)"}} ):Build():Query( 4, @adirectory )
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: Universal SQL [ERLEDIGT]

Beitrag von Manfred »

PDR 7039
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: Universal SQL [ERLEDIGT]

Beitrag von Manfred »

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) 13562 mal betrachtet
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: Universal SQL [ERLEDIGT]

Beitrag von Manfred »

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

http://www.alaska-software.com/scripts/ ... PDRID=7053
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
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2932
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Hat sich bedankt: 13 Mal
Danksagung erhalten: 34 Mal
Kontaktdaten:

Re: Universal SQL [ERLEDIGT]

Beitrag von Wolfgang Ciriack »

.. aber wenigstens auch eine Lösung dafür :D
Viele Grüße
Wolfgang
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: Universal SQL [ERLEDIGT]

Beitrag von Manfred »

ja stimmt. Mit self klappt es
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: Universal SQL [ERLEDIGT]

Beitrag von Manfred »

und sowas klappt hier auch.

Code: Alles auswählen

LOCAL aJahre         := {}
       LOCAL aVerzeichnisse := {}
       LOCAL cVerzeichnis   := oSysPAra:doParaWs:datenbestand + "jahresabschluss\*"

       MEMVAR oSysPara

       aVerzeichnisse := Directory(cVerzeichnis,"D")                            // nur Directories der Jahre
       IF Len(aVerzeichnisse) > 0
          SELECT field1 AS name FROM (aVerzeichnisse) WHERE field1 <> "." .AND. field1 <> ".." INTO objects aJahre
       ENDIF
nur mal so erwähnt. Ich glaube langsam es wird Zeit sich mehr und näher damit zu beschäftigen....
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