Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Incompatilbe column/host variable data type (https://www.delphipraxis.net/194323-incompatilbe-column-host-variable-data-type.html)

ZOD 9. Nov 2017 08:42

Datenbank: Firebird • Version: 2.5 • Zugriff über: IBExpert

Incompatilbe column/host variable data type
 
Guten Morgen,

ich bekomme bei folgendem Statement

SQL-Code:
select
lt.id,
lt.date_time,
lt.operation
from ibe$log_tables lt
where
(
  (:tmp_tabellen_name = '*')
  or
  ((not (:tmp_tabellen_name = '*')) and (lt.table_name = f_lrtrim8(f_upper(:tmp_tabellen_name))))
)
and
(
  (:tmp_db_operation = '*')
  or
  ((not (:tmp_db_operation = '')) and (lt.operation = f_lrtrim8(f_upper(:tmp_db_operation))))
)
order by
lt.date_time desc
rows 1
den Fehler
Code:
Incompatilbe column/host variable data type.
Dynamic SQL Error.
SQL error code = -303
arithmetic exception, numeric overflow or string truncation.
string right truncation.
als Parameter belege ich
tmp_tabellen_name = '*'
tmp_db_operation = '*'

Beide Parameter werden laut IBExpert mit CHAR(8191) übergeben.

Die Funktionsbibliothekt "FreeAdhocUDF" kennt die Funktionen
f_lrtrim8 mit dem Argument CSTRING(8191)
und
f_upper mit dem Argument CSTRING(8191)

Was mache ich falsch?

DeddyH 9. Nov 2017 08:50

AW: Incompatilbe column/host variable data type
 
AFAIK kann man keine Tabellen-/View-/Prozedurnamen parametrisieren, sondern lediglich Werte.

Jumpy 9. Nov 2017 08:54

AW: Incompatilbe column/host variable data type
 
Ich glaub entscheidend in DeddyHs Liste fehlt für diesen Fall auch noch Feld/Spalten-Namen, die man nicht parametrisieren kann.

ZOD 9. Nov 2017 08:58

AW: Incompatilbe column/host variable data type
 
sorry - ich verstehe nicht.
ich vergleiche Werte einer Tabelle mit einem Parameter

Code:
lt.table_name = f_lrtrim8(f_upper(:tmp_tabellen_name)))

DeddyH 9. Nov 2017 09:01

AW: Incompatilbe column/host variable data type
 
Zitat:

(:tmp_tabellen_name = '*')
Hier wird wohl versucht, ein Feld zu parametrisieren, und das geht nicht.

Jumpy 9. Nov 2017 09:02

AW: Incompatilbe column/host variable data type
 
z.B.:
SQL-Code:
where
(
  (:tmp_tabellen_name = '*')

ZOD 9. Nov 2017 09:09

AW: Incompatilbe column/host variable data type
 
mhm - das geht aber:

Code:
select
cast(:parameter as integer)
from rdb$database

DeddyH 9. Nov 2017 09:15

AW: Incompatilbe column/host variable data type
 
Das ist ja auch ein Wert.

ZOD 9. Nov 2017 09:17

AW: Incompatilbe column/host variable data type
 
das geht auch:

Code:
select
cast(:parameter as integer)
from rdb$database
where
:parameter = 1
irgendwie verstehe ich es nicht..

mkinzler 9. Nov 2017 09:39

AW: Incompatilbe column/host variable data type
 
Auch das ist eine Spaltenname und kein Tabellenname.
Man kann keine Tabellennamen parametrisieren.


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:35 Uhr.
Seite 1 von 3  1 23      

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