Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Parameter bei TADODataset (https://www.delphipraxis.net/165966-parameter-bei-tadodataset.html)

gelöschterBenutzer 24. Jan 2012 09:11

Parameter bei TADODataset
 
Hallo zusammen,

ich habe ein TADODataset. Dort habe ich ein Parameter einen Wert zugewiesen und habe den Wert in einer anderen Codezeile wieder ausgelesen.

Wenn ich nun den Parameter nochmal befüllen oder auslesen möchte, bekomm ich eine Exception, dass der Parameter nicht gefunden werden kann.

Was habe ich falsch gemacht?

DeddyH 24. Jan 2012 09:17

AW: Parameter bei TADODataset
 
Du hast Deinen Code nicht gepostet, das ist der erste Fehler :)

gelöschterBenutzer 24. Jan 2012 09:26

AW: Parameter bei TADODataset
 
qDetail ist mein TADODataset


Delphi-Quellcode:
…
qDetail.Parameters.ParameterByName('ID').Value := 'test';
qDeatil.Active := False;
qDetails.Commandtext:= 'SELECT * FROM KUNDE WHERE KUNDEN_NAME = ' +  qDetail.Parameters.ParameterByName('ID').Value;
qDetail.Active := True;
…

…
qDetail.Parameters.ParameterByName('ID').Value := 'test123';   <--hierbei kommt die Fehlermeldung
&#8230;
Edit:
Folgende Einstellungen hat der Parameter:
NUllable = True
Typ = ftString
Precision = 0
Size = -1
Direction = Input

DeddyH 24. Jan 2012 09:35

AW: Parameter bei TADODataset
 
Der Parameter war ja auch nicht definiert.
Delphi-Quellcode:
qDeatil.Active := False;
qDetails.Commandtext:= 'SELECT * FROM KUNDE WHERE KUNDEN_NAME = :ID';
qDetail.Parameters.ParameterByName('ID').Value := 'test';
qDetail.Active := True;

gelöschterBenutzer 24. Jan 2012 09:39

AW: Parameter bei TADODataset
 
Den Parameter habe ich in ADO Dataset definiert und sonst nirgends im QuellCode. 1x Beschreiben und Auslesen kann ich den Parameter ja. Aber nicht mehrmals

Gollum 24. Jan 2012 09:43

AW: Parameter bei TADODataset
 
Hallo,

Du musst das Dataset vor der Zuweisung des Parameters schließen. Ausserdem wird der Parameter nirgends richtig benutzt.

Delphi-Quellcode:
 qDetail.Active := False;
 qDetail.Commandtext:= 'SELECT * FROM KUNDE WHERE KUNDEN_NAME = :ID';
 qDetail.Parameters.ParameterByName('ID').Value := 'test';
 qDetail.Active := True;

 ... Daten lesen oder was auch immer

 qDetail.Active := False;
 qDetail.Parameters.ParameterByName('ID').Value := 'test';
 qDetail.Active := True;

DeddyH 24. Jan 2012 09:44

AW: Parameter bei TADODataset
 
Dann lass die Neuzuweisung des CommandText doch mal weg. Klappt es dann?

gelöschterBenutzer 24. Jan 2012 10:02

AW: Parameter bei TADODataset
 
Uuuupppss
Hatte vor der Neuzuweisung des Parameters kein Active := False

Danke für eure Hilfe :)


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