AGB  ·  Datenschutz  ·  Impressum  







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

Fehler in SQL-Syntax

Ein Thema von Delbor · begonnen am 19. Sep 2017 · letzter Beitrag vom 20. Sep 2017
Antwort Antwort
Seite 3 von 3     123   
Delbor

Registriert seit: 8. Okt 2006
Ort: St.Gallen/Schweiz
1.186 Beiträge
 
Delphi 11 Alexandria
 
#21

AW: Fehler in SQL-Syntax

  Alt 19. Sep 2017, 21:34
Hi TigerLilly

Zitat:
Im Attachten Log(?) ist die HTML-Tabelle NICHT zu finden.
Genau desshalb denke ich eigentlich, dass die Tabelle gar nicht erstellt wurde. Somit kann sie auch nicht gefunden werden. Mich irritiert aber, das die Connection nicht reklamiert...

Gruss
Delbor
Roger
Man muss und kann nicht alles wissen - man muss nur wissen, wo es steht.
Frei nach Albert Einstein
http://roase.ch
  Mit Zitat antworten Zitat
TigerLilly

Registriert seit: 24. Mai 2017
Ort: Wien, Österreich
1.205 Beiträge
 
Delphi 11 Alexandria
 
#22

AW: Fehler in SQL-Syntax

  Alt 19. Sep 2017, 21:48
Wie gesagt, gib ALLE Exceptions aus, nicht nur EDatabaseError.
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#23

AW: Fehler in SQL-Syntax

  Alt 19. Sep 2017, 22:22
Der Rückgabewert der Funktion ist nur False, wenn ein Datenbankfehler geworfen wird. In anderen Fällen ist Result entweder True oder undefiniert.
(Eigentlich müsste es eine entsprechende Compilermeldung geben - Rückgabewert könnte undefiniert sein. o. ä .)

Wenn FDSQLiteConnection.ExecSQL(ASQL) ausgeführt wird und keine Exception fliegt, ist der Rückgabewert der Funktion true, unabhängig davon, ob das erwartete erledigt wurde oder nicht.
Delphi-Quellcode:
function TDMLSQLite.ExecuteSQL(ASQL : String) : Boolean;
begin
  Result := False;
  try
    FDSQLiteConnection.ExecSQL(ASQL);
    // Hier sollte man noch prüfen, ob das, was in ASQL gemacht werden
    // soll, auch wirklich gemacht wurde.
    // Bei Insert, Update und Delete findet man die Anzahl der
    // Änderungen in RowsAffected.
    // Bei 'ner Tabelle, die erstellt werden sollte, könnte man noch ein
    // select * from tabelle
    // hier ausführen und nur, wenn das erfolgreich ist folgt:
    Result := True;
  except
    on E: EDatabaseError do begin
      ShowMessage('Fehler beim Ausführen des Statements:' + #13#13 + ASQL + #13#13 + E.Message);
    end;
  end;
end;
  Mit Zitat antworten Zitat
Delbor

Registriert seit: 8. Okt 2006
Ort: St.Gallen/Schweiz
1.186 Beiträge
 
Delphi 11 Alexandria
 
#24

AW: Fehler in SQL-Syntax

  Alt 19. Sep 2017, 23:04
Hi zusammen

Ich hab mal folgendes versucht:
Delphi-Quellcode:
  function TDMLSQLite.ExecuteSQL(ASQL : String) : Boolean;
    var ReportList: TStringlist;
  begin
    ReportList := TStringlist.Create;
    try
    try
      FDSQLiteConnection.ExecSQL(ASQL);
      FDSQLiteConnection.GetInfoReport(ReportList);
      if FileExists('M:\SQLite-DB Corner\ContentmasterData\GetInfoReport') then
        SQLiteTestMain.Memo1.Lines.LoadFromFile('M:\SQLite-DB Corner\ContentmasterData\GetInfoReport');

      SQLiteTestMain.Memo1.Lines.Add('********************');
      SQLiteTestMain.Memo1.Lines.AddStrings(ReportList);
      SQLiteTestMain.Memo1.Lines.SaveToFile('M:\SQLite-DB Corner\ContentmasterData\GetInfoReport');
      Result := True;
    except
      on E: EDatabaseError do
      begin
        ShowMessage('Fehler beim Ausführen des Statements:' + #13#13 + ASQL + #13#13 + E.Message);
        Result := False;
      end;
    end;
    finally
      Reportlist.Free;
    end;
  end;
Das Resultat ist im Anhang ersichtlich - zum Ziel führts leider nicht.
Ich werde mal die Sache mit dem Select testen.
Miniaturansicht angehängter Grafiken
reportinfo-1.jpg  
Roger
Man muss und kann nicht alles wissen - man muss nur wissen, wo es steht.
Frei nach Albert Einstein
http://roase.ch
  Mit Zitat antworten Zitat
TigerLilly

Registriert seit: 24. Mai 2017
Ort: Wien, Österreich
1.205 Beiträge
 
Delphi 11 Alexandria
 
#25

AW: Fehler in SQL-Syntax

  Alt 20. Sep 2017, 07:53
Die genaue Fehlermeldung lautet: Unknown DATABASE(!) tbl_Html.

Das heisst, die Tabelle wird angelegt, sonst hättest du eine Fehlermeldung bekommen, aber dort, wo du auf die Tabelle zugreifst ist das Problem. Dort wird der Tabellenname als Datenbankname verstanden.

Zeig mal das SQL-Statement, in dem du das erste mal auf die Tabelle zugreifen möchtest.
  Mit Zitat antworten Zitat
Delbor

Registriert seit: 8. Okt 2006
Ort: St.Gallen/Schweiz
1.186 Beiträge
 
Delphi 11 Alexandria
 
#26

AW: Fehler in SQL-Syntax

  Alt 20. Sep 2017, 08:55
Guten Morgen, TigerLilly

Das ist das Statement:
Delphi-Quellcode:
function TDMLSQLite.CreateIndexTbl_Html_Tbl_CSS1 :String; // Index tbl_Html-tbl_CSS1 ContentMasterData.
  var SQLString: String;
begin
  SQLString := 'CREATE INDEX tbl_Html.fk_tbl_Html_tbl_CSS1_idx'+
               ' ON tbl_Html (tbl_CSS_idCSS)';
  Result := SQLString;
end;
Zu den auskommentierten Zeilen:
Der erste Ausdruck diente mir dazu, den Überblick beim Aufteilen des Scripts in einzelne Funktionen zu behalten
Der zweite Ausdruck: anfänglich hatte ich die DB explizit adressiert, was aber SQLite offenbar nicht akzeptiert.

Heute morgen fiel mir ein: Als ich in den letzten Tagen in der Embarcadero-Help u.a. durch die Themen zu TFDScripts blätterte, fiel mir auf, dass nach dem Aufruf von TFDScripts.executeall immer auch TFDScripts.validateall aufgerufen wurde. Dementsprechend bin ich jetzt dabei, in dieser Richtung zu recherchieren.

Gruss
Delbor
Roger
Man muss und kann nicht alles wissen - man muss nur wissen, wo es steht.
Frei nach Albert Einstein
http://roase.ch

Geändert von Delbor (20. Sep 2017 um 09:00 Uhr)
  Mit Zitat antworten Zitat
TigerLilly

Registriert seit: 24. Mai 2017
Ort: Wien, Österreich
1.205 Beiträge
 
Delphi 11 Alexandria
 
#27

AW: Fehler in SQL-Syntax

  Alt 20. Sep 2017, 09:12
Das sollte besser so lauten:

CREATE INDEX fk_tbl_Html_tbl_CSS1_idx ON tbl_Html (tbl_CSS_idCSS)

Siehe hier:
https://sqlite.org/lang_createindex.html

Das, was in der Grafik als Schema-Name bezeichnet wird, ist NICHT der Datenbankname.
https://sqlite.org/lang_naming.html
  Mit Zitat antworten Zitat
Delbor

Registriert seit: 8. Okt 2006
Ort: St.Gallen/Schweiz
1.186 Beiträge
 
Delphi 11 Alexandria
 
#28

AW: Fehler in SQL-Syntax

  Alt 20. Sep 2017, 11:55
Hi TigerLilly

Vielen Dank! Nachdem ich dies korrigiert hatte, wurde zwar noch einiges angemeckert, immer so im Stil "in der Nähe von".
Nebst zuwenigen waren dies auch zuviele Leerzeichen etc.

Gruss
Delbor
Roger
Man muss und kann nicht alles wissen - man muss nur wissen, wo es steht.
Frei nach Albert Einstein
http://roase.ch

Geändert von Delbor (20. Sep 2017 um 12:02 Uhr)
  Mit Zitat antworten Zitat
TigerLilly

Registriert seit: 24. Mai 2017
Ort: Wien, Österreich
1.205 Beiträge
 
Delphi 11 Alexandria
 
#29

AW: Fehler in SQL-Syntax

  Alt 20. Sep 2017, 11:56
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 3     123   


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 19:01 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz