AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Automatiach erstellte Syntax
Thema durchsuchen
Ansicht
Themen-Optionen

Automatiach erstellte Syntax

Ein Thema von Delbor · begonnen am 5. Sep 2017 · letzter Beitrag vom 9. Sep 2017
Antwort Antwort
nahpets
(Gast)

n/a Beiträge
 
#1

AW: Automatiach erstellte Syntax

  Alt 8. Sep 2017, 12:59
Bei Deinem 2. ExecSQL führst Du irgendwas aus, was aus mehreren Strings zusammengesetzt ist.

Da uns der Inhalt nicht bekannt ist, ist es annähernd unmöglich, hier irgendwie brauchbare Hilfestellung zu geben.

Normalerweise kann ExecSQL (wie oben schon angemerkt) nur ein Statement, also z. B. das Create von einer Tabelle, ein einzelnes Insert, ein einzelnes Update ..., aber keine Abfolge von mehr oder weniger Statments: Sprich: (höchstwahrscheinlich) keine Scripte.
Zitat:
"...("CSS-Tabelle_idCSS");''CREATE TABLE "ContentMasterData..."
Da ist mit vollkommen unklar, welches " jetzt am Anfang eines Statements, eines Wertes ... steht und welches am Ende. Wenn man sich das dann auch nochmal per Copy&Paste in 'nen Editor holt, erkennt man, dass dort einfach und doppelte Hochkommata schön gemischt sind.

Wenn die Anzahl der " beim Zusammenbau des SQLString aus einer Vielzahl weiterer Strings nicht so ganz zusammen passt, kann das zu diversen Fehlern führen, die man anhand der Fehlermeldung allein niemals finden und beheben kann.
Dann werden da mehrere String hintereinander gehängt, ist jeder ein vollständiges Statement, bei dem auch sichergestellt ist, dass es mit ; endet?

Meine Regel ist: Ein Statement ein ExecSQL (auch dann, wenn ich es anders lösen könnte). Dadurch weiß ich im Fehlerfalle immer, welches Statement den Fehler auslöste und muss nicht ggfls. tausende von Zeilen durchsuchen, um irgendwo einen Fehler zu finden.

Möchte man z. B. im Zusammenhang mit einer Firebird-Datenbank mehrere Statements als Script per ExecSQL ausführen, muss man es in dieser Art machen:
SQL-Code:
EXECUTE BLOCK AS BEGIN
  Statement_1;
...
  Statement_n;
END
Andernfalls erntet man bestenfalls nur 'ne Fehlermeldung.
Ob SQLite sowas unterstützt, weiß ich nicht.
  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 13:45 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