![]() |
Datenbank: Firebird • Version: 2.5 • Zugriff über: FireDAC
FireDAC Exception, wenn String länger als Feldlänge beim select
Hallo,
ich frage in einer Firebird-DB mit einer TFDQuery ein VarChar-Feld (Länge 7, UTF8) wie folgt ab:
Code:
Dabei wird die folgende Exception ausgelößt:
select Bezeichnung from MyTable where Code = '12345678'
Code:
Das ist so, weil der String '12345678' mit 8 Zeichen Länge genau 1 Zeichen länger ist, als die Feldlänge vom Feld "Code".
[FireDAC][Phys][FB]Dynamic SQL Error
SQL error code = -303 arithmetic exception, numeric overflow, or string truncation string right truncation. Gibt es in den FireDAC-Komponenten ein Einstellung, mit der ich die Längenprüfung deaktiveren kann? Andere DB-Komponenten wie z.B. von DEVAR IBDAC haben dieses Verhalten ja z.B. auch nicht. Da der SQL-Ausdruck dynamisch erzeugt wird und viele verschiedene Felder, Tabellen, Queries genutzt werden, möche ich auch nicht im Code den String vorher auf die maximale Länge zuschneiden. |
AW: FireDAC Exception, wenn String länger als Feldlänge beim select
Zitat:
|
AW: FireDAC Exception, wenn String länger als Feldlänge beim select
Zitat:
|
AW: FireDAC Exception, wenn String länger als Feldlänge beim select
Ich habe das hier mal gerade probiert und bekomme den von dir beschriebenen Fehler hier nicht. Die Datenmenge ist einfach nur leer.
|
AW: FireDAC Exception, wenn String länger als Feldlänge beim select
Zitat:
|
AW: FireDAC Exception, wenn String länger als Feldlänge beim select
Zitat:
|
AW: FireDAC Exception, wenn String länger als Feldlänge beim select
Bei mir liefert die DB egal welchen Character Set ich einstelle ein leere Menge als Ergebnis. Was wäre denn der DB Character Set, den habe ich nicht gesetzt.
Zitat:
|
AW: FireDAC Exception, wenn String länger als Feldlänge beim select
Geht es vielleicht mit
Delphi-Quellcode:
?
DeineQuery.FormatOptions.StrsTrim2Len := true;
|
AW: FireDAC Exception, wenn String länger als Feldlänge beim select
Oder man beschränkt das Editfeld, in dem der User eintippen kann, auf die Länge des DB-Feldes.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:59 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 by Thomas Breitkreuz