SQL - universal SQL - wie geht das ?

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

Moderator: Moderatoren

SQL - universal SQL - wie geht das ?

Beitragvon brandelh » Fr, 02. Sep 2016 6: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/23a ... ftware.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: 13267
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim

Re: SQL - universal SQL - wie geht das ?

Beitragvon brandelh » Fr, 02. Sep 2016 7: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: 13267
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim

Re: SQL - universal SQL - wie geht das ?

Beitragvon brandelh » Fr, 02. Sep 2016 7: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
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
 
Beiträge: 13267
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim


Zurück zu Daten und Tabellen

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast