Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi ADOQuery.Parameters werden nicht übernommen? (https://www.delphipraxis.net/146834-adoquery-parameters-werden-nicht-uebernommen.html)

p80286 27. Jan 2010 17:25

Datenbank: Oracle • Zugriff über: TADOquery / odbc

ADOQuery.Parameters werden nicht übernommen?
 
Hallo zusammen,

ich habe im Augenblick eine Abfrage nach diesem Prinzip:
SQL-Code:
select tab1.title from tab1,tab2 
where tab1.id=tab2.id and tab1.cod=:_cod
union
select tab1.title from tab1,tab3 
where tab1.id=tab3.id and tab1.cod=:_cod
die Parameterwerte übergebe ich mit:

Delphi-Quellcode:
  Meinwert:='titel';
  MyQuery.Parameters.ParamByName('_cod').value:=Meinwert;
Ergebnis: kein Datensatz gefunden.

füge ich den Wert in die Abfrage direkt ein
SQL-Code:
select tab1.title from tab1,tab2 
where tab1.id=tab2.id and tab1.cod='titel'
union
select tab1.title from tab1,tab3 
where tab1.id=tab3.id and tab1.cod='titel'
Dann gibt es wie erwartet mehrere Datensätze.

Im ODBC-Trace ist an der stelle _cod leider auch nur ein ? zu erkennen.
wie bekomme ich heraus welcher Wert für dem Parameter wirklich übergeben wird.
(die üblichen Fehler wie GroßKleinschreibung oder Leerzeichen kann ich ausschließen)

Habt Ihr eine Idee?

Gruß
K-H

khh 27. Jan 2010 17:39

Re: ADOQuery.Parameters werden nicht übernommen?
 
Zitat:

Zitat von p80286
Meinwert:='titel';
MyQuery.Parameters.ParamByName('_cod').value:=Mein wert;




und was macht

MyQuery.ParamByName('_cod').AsString:= Meinwert;

Gruss
kh

Bernhard Geyer 27. Jan 2010 18:11

Re: ADOQuery.Parameters werden nicht übernommen?
 
Wieso wird nicht über den Oracle Provider gegangen? So hast du einige Fehlerquellen mehr welche bei direkter verwendung des Oracle-Providers nich vorhanden sind.

sx2008 27. Jan 2010 23:31

Re: ADOQuery.Parameters werden nicht übernommen?
 
Jeder Parameter braucht einen eigenen Namen! Zwar nicht schön, ist aber leider so.
SQL-Code:
select tab1.title from tab1,tab2
where tab1.id=tab2.id and tab1.cod=:cod1
union
select tab1.title from tab1,tab3
where tab1.id=tab3.id and tab1.cod=:cod2
Delphi-Quellcode:
Meinwert:='titel';
MyQuery.Close; // Zur Sicherheit, falls die Query noch aktiv ist
MyQuery.Parameters.ParamValues['cod1']:=Meinwert;
MyQuery.Parameters.ParamValues['cod2']:=Meinwert;
MyQuery.Open;

p80286 28. Jan 2010 09:49

Re: ADOQuery.Parameters werden nicht übernommen?
 
@SX2008

DANKE das war's!

@Bernhard

Mein "Kunde" verlangt's so als muß ich es halt machen, da gibt's keine Diskussion.

@khh
Zitat:

die Parameterwerte übergebe ich mit:

Delphi-Quellcode: markieren
Meinwert:='titel';
MyQuery.Parameters.ParamByName('_cod').value:=Mein wert;
Ist da etwas unklar?

vielen Dank nochmal!

K-H


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:32 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