SQL - universal SQL - wie geht das ?

Alles zum SQL-Dialekt

Moderator: Moderatoren

Antworten
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:

SQL - universal SQL - wie geht das ?

Beitrag von brandelh »

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: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: SQL - universal SQL - wie geht das ?

Beitrag von brandelh »

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: 15688
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Re: SQL - universal SQL - wie geht das ?

Beitrag von brandelh »

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