AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Data type unknown

Ein Thema von smudo · begonnen am 16. Mai 2007 · letzter Beitrag vom 25. Mai 2007
Antwort Antwort
Seite 1 von 2  1 2      
smudo

Registriert seit: 6. Sep 2005
Ort: Cottbus
362 Beiträge
 
Delphi XE2 Professional
 
#1

Data type unknown

  Alt 16. Mai 2007, 09:55
Datenbank: Interbase • Version: 6.2 • Zugriff über: UIB
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é
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: Data type unknown

  Alt 16. Mai 2007, 09:58
Hallo René,

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

Freundliche Grüße
  Mit Zitat antworten Zitat
smudo

Registriert seit: 6. Sep 2005
Ort: Cottbus
362 Beiträge
 
Delphi XE2 Professional
 
#3

Re: Data type unknown

  Alt 16. Mai 2007, 10:01
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
  Mit Zitat antworten Zitat
smudo

Registriert seit: 6. Sep 2005
Ort: Cottbus
362 Beiträge
 
Delphi XE2 Professional
 
#4

Re: Data type unknown

  Alt 16. Mai 2007, 10:15
Um dem Ganzen noch eins drauf zu setzen:
Was mit lower nicht funktioniert (lower(:myParam)) funktioniert mit upper bestens (upper(:myParam))
Why?
  Mit Zitat antworten Zitat
smudo

Registriert seit: 6. Sep 2005
Ort: Cottbus
362 Beiträge
 
Delphi XE2 Professional
 
#5

Re: Data type unknown

  Alt 22. Mai 2007, 15:09
Push
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.
  Mit Zitat antworten Zitat
Udontknow

Registriert seit: 17. Jun 2002
223 Beiträge
 
#6

Re: Data type unknown

  Alt 22. Mai 2007, 15:48
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
  Mit Zitat antworten Zitat
smudo

Registriert seit: 6. Sep 2005
Ort: Cottbus
362 Beiträge
 
Delphi XE2 Professional
 
#7

Re: Data type unknown

  Alt 22. Mai 2007, 21:33
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
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: Data type unknown

  Alt 22. Mai 2007, 21:40
Wie hast du reducechar deklariert?
Markus Kinzler
  Mit Zitat antworten Zitat
smudo

Registriert seit: 6. Sep 2005
Ort: Cottbus
362 Beiträge
 
Delphi XE2 Professional
 
#9

Re: Data type unknown

  Alt 23. Mai 2007, 07:28
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.
  Mit Zitat antworten Zitat
daddy

Registriert seit: 9. Sep 2005
Ort: Köln
124 Beiträge
 
Delphi 7 Enterprise
 
#10

Re: Data type unknown

  Alt 23. Mai 2007, 20:38
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)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:13 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