Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   SQLite3_prepare_v2 und "'Where'\" = Exception (https://www.delphipraxis.net/153324-sqlite3_prepare_v2-und-where%5C-%3D-exception.html)

Alter Mann 29. Jul 2010 10:26

SQLite3_prepare_v2 und "'Where'\" = Exception
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,

ich speichere die Pfade von Dateien in einer SQLite3-DB, jedoch bekomme ich immer Exceptions, wenn
der Pfad so aussieht wie im Anhang(Spezial.txt).

Code:
C:\Programme\Microsoft Visual Studio 9.0\VB\Snippets\1031\data\LINQ Queries\Query - Filter with 'Where'\qFilt.snippet
SQLite_prepare_v2 wirft hier ein Exception wegen dem letzten '\'-Zeichen. Ein anfügen eines weiteren '\' = " ''Where''\\ " hilft da auch nicht.

Kennt jemmand die Lösung oder hat einen Tipp.

Danke

mkinzler 29. Jul 2010 10:28

AW: SQLite3_prepare_v2 und "'Where'\" = Exception
 
Was für Exceptions?
Werden die Pfad gequoted?

Alter Mann 29. Jul 2010 12:47

AW: SQLite3_prepare_v2 und "'Where'\" = Exception
 
Hallo,

Ich benutzen die 'DISQLite3'-Komponenten.
Beim einlesen eines dieser Pfadbezeichnungen kommt diese Exception:
Code:
...ESQLite3 mit der Meldung 'SQLite Error 1 - unrecognized token: ''\''...
Lass ich den letzten Backslash weg, kommt er mit einem Syntax-Fehler in der Nähe von ''Where''.

Viele Grüße

DeddyH 29. Jul 2010 12:49

AW: SQLite3_prepare_v2 und "'Where'\" = Exception
 
Zeig uns doch mal die "Speichern"-Methode.

Alter Mann 29. Jul 2010 13:23

AW: SQLite3_prepare_v2 und "'Where'\" = Exception
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hi,

siehe Anhang
Delphi-Quellcode:
procedure TMainForm.LoadFile(aFileType : TFileType; aFileName : String);
.

DeddyH 29. Jul 2010 14:17

AW: SQLite3_prepare_v2 und "'Where'\" = Exception
 
Hast Du es mal in der Art
Delphi-Quellcode:
FS := AnsiQuotedStr(Copy(RS, POS(';', RS) + 1, Length(RS)));
versucht?

madas 30. Jul 2010 06:55

AW: SQLite3_prepare_v2 und "'Where'\" = Exception
 
Versuche mal vor den beiden ' noch ein ' (Also ein doppeltes Hochkomma). Wichtig ist, das es kein Anführungszeichen ( " ) ist.

Den String über z.B. SQlite Analyzer in ein VarChar Feld eingefügt, funktioniert.

Haste Dir mal SQ vor dem Execute anzeigen lassen?

BTW: Deine Variablen haste ja ganz tolle Namen gegeben.

Delphi-Quellcode:
  FN : String;
  RS : String;
  FS : String;
  FE : String;
  FP : String;
  SQ : String;
Würde nicht zufällig im SQL String stehen, was damit gemeint wäre, müsste man schon sehr rumraten. :)

Alter Mann 30. Jul 2010 08:06

AW: SQLite3_prepare_v2 und "'Where'\" = Exception
 
Moin, Moin

Das ganz ist ja auch nur eine Test-App um zu sehen was ich mit den Kompos machen kann.
Und die Variablennamen sind da eh nicht wichtig, aber mit ein wenig gespühr, kann man erkennen was gemeint ist; FP = FilePath usw.

So nun zum Thema:
Zitat:

Versuche mal vor den beiden ' noch ein ' (Also ein doppeltes Hochkomma). Wichtig ist, das es kein Anführungszeichen ( " ) ist.
Dafür gibt es ja die Funktion FixChar39, die genau das macht.

Zitat:

Den String über z.B. SQlite Analyzer in ein VarChar Feld eingefügt, funktioniert.
So sollte es ja auch sein.

Der Inhalt von SQ vor dem Execute16 steht im ersten Posting.

Wenn ich wie vorgeschlagen
Zitat:

FS := AnsiQuotedStr(Copy(RS, POS(';', RS) + 1, Length(RS)));
verwende, kommt es auch zu einer Exception SQLite Error 1 - near "C":syntax error.
Die ist ja auch nachvollziehbar da der String jetzt mit einem doppelten '' anfängt.

Ich vermute mal, das der Fehler im SQLite_prepare_v2 liegt.

Vielleicht hat ja hier jemand von der unit 'DISQLite3API' den Code und kann mal schauen
was da schief geht.

Viele Grüße


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:15 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