Hinweise zum neuen Forum
Zur Homepage des Deutschsprachige Xbase-Entwickler e. V.
Xbase++-Wiki des Deutschsprachige Xbase-Entwickler e. V.

SQL - universal SQL - wie geht das ?

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

Moderator: Moderatoren

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

SQL - universal SQL - wie geht das ?

Beitrag von brandelh » Fr, 02. Sep 2016 7:44

Hallo,

ich stochere immer noch mit den neuen Möglichkeiten der 2.0 in Bezug auf SQL auf DBF und ARRAYs rum.
Hier ein Post in den news:

:arrow: news://news.alaska-software.com:119/23af2e90$490bbd92$170de7@news.alaska-software.com

Andreas Gehrs-Pahl hat geantwortet, aber aus dem was ich da lese, ist das alles komplizierter als es einfach so zu machen wie gewohnt ...
Oder die normale SQL Syntax anzuwenden, wenn es ein SQL Server ist.

Wie seht Ihr das ?
Gruß
Hubert

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

Re: SQL - universal SQL - wie geht das ?

Beitrag von brandelh » Fr, 02. Sep 2016 8:17

Also das funktioniert, aber nur ohne where, da ein normales Array keine Feldnamen hat:

Code: Alles auswählen

   aFiles := directory("d:\test\*.prg")
   SELECT * FROM (aFiles) INTO ARRAY aData
damit ist das aber auch ziemlich sinnfrei - zumindest kann ich keinen erkennen.
Gruß
Hubert

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

Re: SQL - universal SQL - wie geht das ?

Beitrag von brandelh » Fr, 02. Sep 2016 8:31

und hier der Versuch mit eine meiner großen DBF (schließlich will ich mit dem internen SQL ja schneller abfragen ...)

Code: Alles auswählen

   use Test1 alias DB
   IF neterr()
      msgbox("DBF konnte nicht geöffnet werden")
      quit
   ENDIF

   DbeInfo(DBFDBE_LOCKOFFSET, 0x7FFFFFFF )

   ? "DBF USED()",used(),"NETERR()",neterr(),"Alias()",padr(alias(),8),"Select()",ntrim(SELECT()), "LastRec()",lastrec()
   aData := NIL
   ? "Select start"
   nDauer := seconds()
   // this is line 70, and the next will cause the problem
   SELECT * FROM DB WHERE meja = 2015  INTO ARRAY aData
   nDauer := seconds() - nDauer

   ? "Sekunden: ",nDauer,len(aData)
   inkey(10)
   AEval( aData, {|o|QOut(o)} )
   ?
   ? "Treffer:",len(aData)
ergibt einen internal error ...
: oError:description : Interne Datenstrukturen besch„digt
(312): USQLSTATEMENT:CREATEVIRTUALTABLEFROMWORKAREA
(358): USQLSTATEMENT:REWRITETABLE
(295): ABSTRACTSQLSTATEMENTBUILDER:FROM
main.prg(71): MAIN
Gruß
Hubert

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast