Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Data type unknown (https://www.delphipraxis.net/92215-data-type-unknown.html)

smudo 16. Mai 2007 09:55

Datenbank: Interbase • Version: 6.2 • Zugriff über: UIB

Data type unknown
 
Ich benötige folgende Query:
Code:
select :MyParam, myTable.*
from myTable...
bekomme dabei aber die Fehlermeldung "Data type unknown"

Logisch, er kennt also den Datentyp nicht. Hab jetzt versucht mit cast(:MyParam as varchar(255)) einen Datentyp vorzugeben (so funktionierts unter FB), aber die Fehlermeldung bleibt die gleiche.

Wie kann ich den Datentyp des Parameters im Select bekanntmachen?

Vielen Dank im Voraus
René

marabu 16. Mai 2007 09:58

Re: Data type unknown
 
Hallo René,

du kannst Parameter an Stelle von Feldwerten verwenden, aber nicht anstelle von Feld- oder Tabellennamen.

Freundliche Grüße

smudo 16. Mai 2007 10:01

Re: Data type unknown
 
Gleiches Problem tritt bei Verwendung einer UDF auf, also beispielsweise die UDF lower aus der IB_UDF.
Hier kann ich auch im Where-Abschnitt den Parameter nicht verwenden.

Außerdem, wie gesagt, unter Firebird funktioniert auch ein Parameter im Select

smudo 16. Mai 2007 10:15

Re: Data type unknown
 
Um dem Ganzen noch eins drauf zu setzen:
Was mit lower nicht funktioniert (lower(:myParam)) funktioniert mit upper bestens (upper(:myParam))
:shock: Why?

smudo 22. Mai 2007 15:09

Re: Data type unknown
 
Push :wall:
Es ist mir wirklich wichtig, vielleicht noch ein paar gute Tipps zu hören (außer steig auf Firebird um, oder das geht halt nicht)
Insbesondere bin ich bei der Verwendung von UDFs gehandycapt, wenn ich da keine Parameter verwenden kann.

Udontknow 22. Mai 2007 15:48

Re: Data type unknown
 
Hallo!

Vielleicht schreibst du einfach mal, was genau du damit erreichen möchtest. Ich persönlich bin bis jetzt ganz gut ohne Parameter für Feldnamen ausgekommen...

Cu,
Udontknow

smudo 22. Mai 2007 21:33

Re: Data type unknown
 
Wie schon gesagt, es geht mir weniger um die Parameter für die Feldnamen, sondern um Parameter für UDFs.
Ich habe mir eine UDF zur Anpassung von Strings geschrieben (wandelt Umlaute und bestimmte Buchstabenkombinationen um).

Folgendes funktioniert auch:
SQL-Code:
select Name
from Adressen
where reducechar(Name) = 'mueller'
Hier werden mir alle ausgegeben, welche Müller oder Mueller heißen.

Diese Abfrage möchte ich aber für eine Reihe von Adressen, welche mir in einer CSV-Datei vorliegen, ausführen. Klassischer Fall für Prepare und Parameter.

Ich müsste die Abfrage also dahingehend ändern:
SQL-Code:
select Name
from Adressen
where reducechar(Name) = reducechar(:ListName)
Dabei kommt es unter Interbase zur besagten Meldung: Data type unknown, Firebird machts.

Noch lieber wäre mir folgende Query:
SQL-Code:
select :ListName, Name
from Adressen
where reducechar(Name) = reducechar(:ListName)
Aber da krachts ja schon im select

mkinzler 22. Mai 2007 21:40

Re: Data type unknown
 
Wie hast du reducechar deklariert?

smudo 23. Mai 2007 07:28

Re: Data type unknown
 
SQL-Code:
/* ReduceChar */
DECLARE EXTERNAL FUNCTION ReduceChar
CSTRING(255), INTEGER, INTEGER
RETURNS CSTRING(255) FREE_IT
ENTRY_POINT 'ReduceChar' MODULE_NAME 'myUDFs.dll';
Wie zu sehen ist, habe ich der Einfachheit halber bei meinen SQL-Beispielen die beiden Integer-Übergabeparameter weggelassen.

daddy 23. Mai 2007 20:38

Re: Data type unknown
 
zu 1.:
Hast Du da evtl. ein Problem mit den Hochkommata?
Weise Deinem Parameter doch mal nicht einfach nur den Namen, sondern QuotedStr(SuchName) zu.

zu 2.:
Zitat:

Noch lieber wäre mir folgende Query: ...
Auch hier solltest Du "QuotedStr(SuchName)" zuweisen und dem Feld evtl. noch einen Feldnamen spendieren
SQL-Code:
select :ListName as Suchname, Name
from Adressen
where reducechar(Name) = reducechar(:ListName)


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:29 Uhr.
Seite 1 von 2  1 2      

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