AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi DBX meldet Syntaxfehler wo keine sind
Thema durchsuchen
Ansicht
Themen-Optionen

DBX meldet Syntaxfehler wo keine sind

Ein Thema von Der schöne Günther · begonnen am 24. Jun 2013 · letzter Beitrag vom 24. Jun 2013
Antwort Antwort
Der schöne Günther

Registriert seit: 6. Mär 2013
6.201 Beiträge
 
Delphi 10 Seattle Enterprise
 
#1

AW: DBX meldet Syntaxfehler wo keine sind

  Alt 24. Jun 2013, 14:07
Ich wollte eigentlich nichts weiter als eine lokale Konfiguration aus einem paar KB großen SQLite-File einlesen.

Muss ich mir jetzt wieder irgendwelche Enterprise-Lösungen herunterladen und installieren nur um ein halbes Dutzend Zeilen aus einer SQLite-DB zu lesen?
  Mit Zitat antworten Zitat
Benutzerbild von baumina
baumina

Registriert seit: 5. Mai 2008
Ort: Oberschwaben
1.275 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: DBX meldet Syntaxfehler wo keine sind

  Alt 24. Jun 2013, 14:12
Du kannst auch versuchen den select "einfacher" zu formulieren, daraus mehrere selects zu machen und die "Union"-Syntax programmtechnisch lösen.
Hinter dir gehts abwärts und vor dir steil bergauf ! (Wolfgang Ambros)
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#3

AW: DBX meldet Syntaxfehler wo keine sind

  Alt 24. Jun 2013, 14:33
Bei einfachen Treibern oder Backend Engines hilft oft:
- Alias für Tables und Columns prüfen und konsistent einsetzen
(ich meine mich dunkel zu erinnern, dass es hier bei sqLite sogar ne besondere Besonderheit gab..)
- Bei Union mindestens im ersten SQL auf Spaltenalias bei "berechneten " Feldern achten
- ggF helfende, äußere Selects um die inneren, komplexen.

Spezialisierte Thirdparty Tools verhalten sich idR schlauer als stanard Komponenten. Ein fehlender oder kryptischer (weil aus der Feld-Oeration selbst gebildet~Spalte nennt sich dann wie die sie erzeugende Funktion) Feldalias kommt ggF. im Spezialtool harmlos rüber, ist aber nicht gut für DBX, ...

Tja und wichtig wäre ggF das Statement selbst hier zu posten.
Gruß, Jo
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.201 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

AW: DBX meldet Syntaxfehler wo keine sind

  Alt 24. Jun 2013, 14:41
Spalten mit bösen Namen sind ein guter Hinweis.

Aber daran lag es nicht: Die Syntaxfehler habe ich in den Griff bekommen, er kam mit den Tab-Charakteren die noch im (formatierten) String gesteckt haben nicht zurecht. In der Exception wurden die nicht angezeigt. Das Problem liegt jetzt weiter eindeutig darin, dass er in der inneren Abfrage nichts von der äußeren weiß und hier mit Exception rausfliegt.

Mit FireDac habe ich jetzt ein paar Minuten probiert, bekomme es aber auf die Schnelle nicht hin. Eine Exe-Größe die dann auch auf 27MB anschwillt hat dabei auch einen gewissen Unterhaltungswert
Insgesamt ist mir meine Zeit für so etwas auch zu schade, ich fummele es mir dann lieber über Applikationslogik zurecht.

Für benutzerdefinierte SQLite-Geschichten die unter XE4 noch funktionieren gehe ich euch dann wohl ein anderes mal auf den Senkel. Danke bis hierhin.
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#5

AW: DBX meldet Syntaxfehler wo keine sind

  Alt 24. Jun 2013, 14:44
Schnellgooglen ergab, das sqlite scheinbar zwingend SpaltenAlias bei brechneten Spalten braucht, aber die Info ist ohne Gewehr, HandinsFeuer usw. irgendwas war da jedenfalls...
Du machst es ja eh anders.
Gruß, Jo
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.201 Beiträge
 
Delphi 10 Seattle Enterprise
 
#6

AW: DBX meldet Syntaxfehler wo keine sind

  Alt 24. Jun 2013, 14:50
Mich an Datenbanken zu lassen ist sowieso wie einen Schimpansen ein atomar bewaffnetes Kampfflugzeug fliegen zu lassen, aber solange ich darunter nichts falsch verstehe, hätte ich behauptet, keine Spalten dynamisch zu erzeugen:

Code:
SELECT [spaltenmenge] FROM (tab1 JOIN tab2 ON [...])
WHERE
NOT EXISTS
   (SELECT [...])

UNION

SELECT [spaltenmenge] FROM
   tabx JOIN taby ON [...]
;
So sah es aus, zwei Freeware-Tools bekamen es problemlos hin, mein Delphi-Duo aus TSQLConnection und TDataSet nicht.
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#7

AW: DBX meldet Syntaxfehler wo keine sind

  Alt 24. Jun 2013, 15:05
Ne, das sieht schon ok aus. Es sei denn in Wirklichkeit ersetzt Du [Spaltenmenge] durch ein '*'. Keine Ahnung wie sqLite/dbx das mit Union schluckt.
Wie sieht es denn aus mit
Delphi-Quellcode:
Select [Spaltenmenge] from
(
Voriges Union Statement
)
?
Gruß, Jo
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.687 Beiträge
 
Delphi 12 Athens
 
#8

AW: DBX meldet Syntaxfehler wo keine sind

  Alt 24. Jun 2013, 15:35
Muss ich mir jetzt wieder irgendwelche Enterprise-Lösungen herunterladen und installieren nur um ein halbes Dutzend Zeilen aus einer SQLite-DB zu lesen?
Dein Profil sagt aber doch XE4 Enterprise. Daher bin ich davon ausgegangen, daß FireDAC bei dir installiert ist.

FireDAC ist erstmal nichts weiter als eine Alternative zu dbExpress. Natürlich muss man bei jeder verwendeten Technologie mit einem Lernaufwand rechnen. Nach meiner Erfahrung ist der bei FireDAC aber geringer als bei dbExpress.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.201 Beiträge
 
Delphi 10 Seattle Enterprise
 
#9

AW: DBX meldet Syntaxfehler wo keine sind

  Alt 24. Jun 2013, 15:44
Ja, für die Installation musste ich mir zum Glück doch kein Bein ausreißen. Auf Dauer lohnt es sich bestimmt, sich in das Teil einzuarbeiten. Nur im Moment lohnt es sich für mich nicht, das dürfte für die nächsten Monate meine einzige Berührung mit Datenbanken gewesen sein

Ich habe vielleicht auch etwas ungehalten reagiert da ich mit der Zeit etwas aggressiv wurde, so einen Kleinkram nicht mit Bordmitteln hinzubekommen. Es in Anwendungslogik zusammenzubasteln hat keine 120 Sekunden gedauert, aber unschön ist es trotzdem.
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#10

AW: DBX meldet Syntaxfehler wo keine sind

  Alt 24. Jun 2013, 17:14
Hallo,

zeig' uns doch bitte mal das SQL-Statement, eventuell sind ja nur ein paar Besonderheiten vorhanden, die nur beim Absenden des SQL aus Delphi heraus zu beachten sind (QuotedStr oder sowas...).
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:57 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz