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

Alles zum SQL-Dialekt

Moderator: Moderatoren

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

Beitragvon brandelh » Mo, 27. Apr 2015 12: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
brandelh
Foren-Moderator
Foren-Moderator
 
Beiträge: 13319
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim

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

Beitragvon Tom » Mo, 27. Apr 2015 13: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
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
 
Beiträge: 6692
Registriert: Do, 22. Sep 2005 22:11
Wohnort: Berlin

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

Beitragvon brandelh » Mo, 27. Apr 2015 15: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: 13319
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim

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

Beitragvon brandelh » Mo, 27. Apr 2015 15: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: 13319
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim

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

Beitragvon brandelh » Di, 28. Apr 2015 7: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: 13319
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim

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

Beitragvon brandelh » Di, 28. Apr 2015 7: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
brandelh
Foren-Moderator
Foren-Moderator
 
Beiträge: 13319
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim

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

Beitragvon Martin Altmann » Di, 28. Apr 2015 7: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
Martin Altmann
Foren-Administrator
Foren-Administrator
 
Beiträge: 12834
Registriert: Fr, 23. Sep 2005 3:58
Wohnort: Berlin

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

Beitragvon brandelh » Di, 28. Apr 2015 7: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
brandelh
Foren-Moderator
Foren-Moderator
 
Beiträge: 13319
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim

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

Beitragvon 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
Benutzeravatar
Werner_Bayern
Programmier-Gott
Programmier-Gott
 
Beiträge: 1215
Registriert: Sa, 30. Jan 2010 22:58
Wohnort: Niederbayern


Zurück zu SQL (Sprache)

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast