![]() |
AW: Incompatilbe column/host variable data type
inzwischen kam der rote Kasten. Aber trotzdem zur Erläuterung..
Das Problem mit den Parameter habe ich auch schon gehabt. Firebird versucht der Parameter :tmp_tabellen_name zu interpretieren. Es kommt zu dem Schluss ein '*' die Länge von 1 Zeichen hat. Für der Parameter :tmp_tabellen_name wird also der entsprechende Platz bereitgestellt. Wenn jetzt mit f_lrtrim8(f_upper(:tmp_tabellen_name)) ein String mit der Länge > 1 an den Parameter übergeben wird, gibt es ein "string right truncation". Man muss also Firebird mit cast() oder einer anderen Formulierung der Bedingung überreden entsprechen Platz zu Verfügung zu stellen. ich nehme mal ein einfacheres Beispiel. Es sollen nur die passenden oder alle Personen zurückgegeben werden. Für alle übergibt man * oder *** oder NULL je nach Variante
SQL-Code:
select
P.* from PERSON P where -- :NACHNAME = '' OR (P.NACHNAME = :NACHNAME) -- geht nicht :NACHNAME = '*' OR (P.NACHNAME = :NACHNAME) -- geht mit max 1 Zeichen -- :NACHNAME = '***' OR (P.NACHNAME = :NACHNAME) -- geht bis max 3 Zeichen -- (:NACHNAME = cast('*' as VARCHAR(10))) OR (P.NACHNAME = :NACHNAME) -- geht bis 10 Zeichen -- (cast(:NACHNAME as type of COLUMN PERSON.NACHNAME) = '*') OR (P.NACHNAME = :NACHNAME) -- geht bis Länge PERSON.NACHNAME -- (:NACHNAME = cast('*' as type of COLUMN PERSON.NACHNAME)) OR (P.NACHNAME = :NACHNAME) -- geht bis Länge PERSON.NACHNAME -- (:NACHNAME is null) or (P.NACHNAME = :NACHNAME) -- geht auch ohne cast() |
AW: Incompatilbe column/host variable data type
Ich hätte da noch einen Vorschlag aus der hinteren Ecke
SQL-Code:
select
lt.id, lt.date_time, lt.operation, lt.user_name from ibe$log_tables lt where lt.Tabellenname like '%'||:tablename||'%' Zitat:
Gruß K-H |
AW: Incompatilbe column/host variable data type
@hoika
ich habe die 8191 aus Anzeige im Eingabedialog für Parameter von IBExpert. War es nicht so, dass für ein varchar immer noch ein Zeichen hinzu kommt - also 8190 Zeichen für die Funktion aber der varchar hat 8191 Länge .. da muss ich selbst nochmals suchen. @p80286 probiere ich später nochmals @alex517 das muss es sein! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:26 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