Das Forentreffen 2018 findet am 20./21. April in Dresden statt. Weitere Infos hier
Zur Homepage des Deutschsprachige Xbase-Entwickler e. V.
Xbase++-Wiki des Deutschsprachige Xbase-Entwickler e. V.

Xbase++ ALASKA SQL ... wie geht das mit SELECT auf DBF ?

Alles zum SQL-Dialekt

Moderator: Moderatoren

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

Xbase++ ALASKA SQL ... wie geht das mit SELECT auf DBF ?

Beitrag von brandelh » Mo, 27. Apr 2015 13:36

Hi,

ich bekomme das nicht zum Laufen und finde in den vielen Verzeichnissen auch kein Beispiel.

WAS WILL ICH ?

SELECT * FROM ... auf eine DBF Datei, es ist MIR egal ob die schon offen oder noch geschlossen ist, hauptsache ich bekomme mal Ergebnisse ...

angeblich soll das auch auf ein Array als Datengrundlage funktionieren, hat das schon jemand gesehen ?
Gruß
Hubert

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

Re: Xbase++ ALASKA SQL ... wie geht das mit SELECT auf DBF ?

Beitrag von Tom » Mo, 27. Apr 2015 14:33

Die Tabelle muss geöffnet sein, aber nicht selektiert. "FROM" erwartet den Alias als Parameter. Wenn kein Alias angegeben wurde, sollte der Tabellenname der Alias (Vorsicht bei ADS!) sein. Der Tabellenname kann nicht verwendet werden. Ein "Auto-Open" gibt es m.E. nicht.
Herzlich,
Tom

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

Re: Xbase++ ALASKA SQL ... wie geht das mit SELECT auf DBF ?

Beitrag von brandelh » Mo, 27. Apr 2015 16:55

danke für die Info, so konnte ich meine Fehler eingrenzen und beseitigen.
Dass das Select in einem neuen Selectbereich ausgeführt wird und auf ein ALIAS einer offenen DBF zugreift ist nachvollziehbar, wenn auch etwas umständlich ... (ich will ja das Array of DataObjects aus dem aktuellen Bereich ...)
So hat das mit dem normalen Suchen funktioniert ... bei meiner zweiten Testdatei ...
Die große bringt immer internal Error, offensichtlich stößt da die interne Verwaltung an Grenzen ...

Mein SELECT mit Variablen bringt immer 0 Treffer, erst die Verwendung von PPO zeigt einen Weg ...

Code: Alles auswählen

   SELECT * FROM DB WHERE dru_aktiv="X" INTO ARRAY aData // so geht es, aber ich will variabel suchen

   // so sollte es auch gehen ... aber es tut es nicht: Kein Fehler aber 0 Treffer statt 1
   cSuche := "X"
   SELECT * FROM DB WHERE dru_aktiv=&(cSuche) INTO ARRAY aData // so nicht, 0 Treffer
   SELECT * FROM DB WHERE ("dru_aktiv='"+cSuche+"'") INTO ARRAY aData // so auch nicht
   
   //  so geht es ...
   USqlStatement():New():Select( {{ 1 }} ):From( {{"DB"}} ):Where( &("{|| dru_aktiv='"+cSuche+"'}") ):Limit( 20 ):Build():Query( 2, @aData )
Ich denke ich werde noch etwas mit USqlStatement() experimentieren ...
Gruß
Hubert

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

Re: Xbase++ ALASKA SQL ... wie geht das mit SELECT auf DBF ?

Beitrag von brandelh » Mo, 27. Apr 2015 16:58

so sieht übrigens die Auswahl von 2 Feldern aus:

Code: Alles auswählen

:Select( {{"dru_aktiv"}, {"dru_name"}} )
warum die Felder jeweils in einem eigenen Array stehen ?
Gruß
Hubert

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

Re: Xbase++ ALASKA SQL ... wie geht das mit SELECT auf DBF ?

Beitrag von brandelh » Di, 28. Apr 2015 8:17

das mit dem "nicht selektiert" kann nicht stimmen, ein Beispiel von Till:

Code: Alles auswählen

SET DEFAULT TO ...\Xbase++\source\samples\data\misc
USE parts
// Ermitteln der Menge als Array von DataObjekten
SELECT partno, partname, sellprice FROM parts WHERE sellprice < 200 INTO OBJECTs aObjs
das Beispiel funktioniert so ... nun suche ich nach einem Wort das in der DBF enthalten ist:

SELECT partno, partname, sellprice FROM parts WHERE partname = 'Icebear' INTO OBJECTs aObjs => 1 Treffer, richtig
SELECT partno, partname, sellprice FROM parts WHERE partname = 'icebear' INTO OBJECTs aObjs => KEIN Treffer, NUR mit genau gleicher Schreibweise wird gefunden ...

auf mit Teilbegriff kein Treffer ... für SQL sollte das doch so stimmen oder ?

SELECT partno, partname, sellprice FROM parts WHERE partname LIKE 'Ice%' INTO OBJECTs aObjs

In der Hilfe heist es lapidar:
<FieldName1> is the name of a field in a table, <cFieldName2> is the name of a field in another table, and <comparison> is one of the comparison operators.
und was sind diese "operators" die in Alaska USQL gelten ?
Gruß
Hubert

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

Re: Xbase++ ALASKA SQL ... wie geht das mit SELECT auf DBF ?

Beitrag von brandelh » Di, 28. Apr 2015 8:25

das geht:

SELECT partno, partname, sellprice FROM parts WHERE lower(partname) = 'icebear' INTO OBJECTs aObjs // 1 Treffer, OK
SELECT partno, partname, sellprice FROM parts WHERE lower(partname) = "icebear" INTO OBJECTs aObjs // 1 Treffer, OK

also ist der Vergleich selbst noch Xbase Angelegenheit, somit sollte das doch einen Teilstring finden ...

SELECT partno, partname, sellprice FROM parts WHERE lower(partname) = "ice" INTO OBJECTs aObjs // Kein Treffer
SELECT partno, partname, sellprice FROM parts WHERE left(lower(partname),3) = "ice" INTO OBJECTs aObjs // Kein Treffer

ich sehe da nichts was mir das Leben LEICHTER macht :badgrin:
Gruß
Hubert

Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 13531
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Kontaktdaten:

Re: Xbase++ ALASKA SQL ... wie geht das mit SELECT auf DBF ?

Beitrag von Martin Altmann » Di, 28. Apr 2015 8:53

Versuch es mal mit like statt = - kann auch sein, dass du dann das Feld vor das like ziehen musst.
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: http://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: http://meldungen.altem.de/

Mitglied der XUG Osnabrück
stellv. Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.

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

Re: Xbase++ ALASKA SQL ... wie geht das mit SELECT auf DBF ?

Beitrag von brandelh » Di, 28. Apr 2015 8:58

das habe ich in der Message davor schon probiert:
auf mit Teilbegriff kein Treffer ... für SQL sollte das doch so stimmen oder ?

SELECT partno, partname, sellprice FROM parts WHERE partname LIKE 'Ice%' INTO OBJECTs aObjs
Ich habe mal JANs Anfrage nach Suche mit Variablen zugestimmt und um diese Frage erweitert ... es geht ja um das Gleiche ... wie sollen wir es nutzen.
Gruß
Hubert

Benutzeravatar
Werner_Bayern
Programmier-Gott
Programmier-Gott
Beiträge: 1280
Registriert: Sa, 30. Jan 2010 22:58
Wohnort: Niederbayern

Re: Xbase++ ALASKA SQL ... wie geht das mit SELECT auf DBF ?

Beitrag von Werner_Bayern » Sa, 23. Jan 2016 16:51

brandelh hat geschrieben:SELECT partno, partname, sellprice FROM parts WHERE partname LIKE 'Ice%' INTO OBJECTs aObjs
So sollte es gehen:

Code: Alles auswählen

SELECT partno, partname, sellprice FROM parts WHERE upper(partname) LIKE 'ICE%' INTO OBJECTs aObjs
es grüßt euch

Werner

Antworten