Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi ADODataSet /ADOCmd und Parameter (https://www.delphipraxis.net/112991-adodataset-adocmd-und-parameter.html)

Alter Mann 30. Apr 2008 18:41

Datenbank: z.Z MS-Access • Version: 2003 • Zugriff über: ADO (D7)

ADODataSet /ADOCmd und Parameter
 
Hi

ich habe ein ADODataSet mit folgenden CommandText:
Delphi-Quellcode:
'SELECT Folder, Thumb, Name FROM Images WHERE (Folder =@IDFolder)'
In den Parameters ist IDFolder eingetragen.

Obwohl ich mit
Delphi-Quellcode:
ADODataSet.Parameters[0].Value := IDF;
den Wert übergebe, kommem statt ein Datensatz alle 5307, ganz so als wäre IDFolder nicht vorhanden bzw kein Wert zugewiesen worden.

Gleiches Spiel, andere Komponente ADOCommand.CommandText:
Delphi-Quellcode:
  ADOCmd.CommandText := 'SELECT Folder, Thumb, Name FROM Images WHERE (Folder =' + IntToStr(ADODSPaint.FieldByName('Folder').AsInteger) + ')';
Hier lautet die Meldung: 'Parameter Folder hat keinen Standardwert'.

Woran könnte es liegen bzw. liegt es?

Gruß

marabu 30. Apr 2008 18:57

Re: ADODataSet /ADOCmd und Parameter
 
Hallo,

den Parameter hast wohl du selbst angelegt? Tue es nicht - ParamCheck auf True setzen und Parameter durch das Metazeichen Colon (:) kennzeichnen:

SQL-Code:
SELECT Folder, Thumb, [Name] FROM Images WHERE Folder = :IDFolder
NAME ist bestimmt ein reserved word und muss bei Access eventuell in eckige Klammern eingeschlossen werden.

Bei deinem zweiten Versuch ist der manuell angelegte Parameter noch vorhanden, aber nicht von dir belegt worden.

Freundliche Grüße

Alter Mann 1. Mai 2008 11:48

Re: ADODataSet /ADOCmd und Parameter
 
Erst einmal Danke.

Daran liegt es nicht. Und [Name] ist klar(stellt hier nur eine Verkürzung da).

Der Parameter wird angelegt, sobald der SQL-String im OI zugewiesen wurde
und auch ParamCheck ist True.

Scheinbar wird der Wert nicht gesetzt. Egal ob ich per Hand im OI den Wert
setze, oder im Code, die Meldung: 'Für mindestens einen erforderlichen Parameter wurde kein Wert angegeben'
kommt immer.

alzaimar 1. Mai 2008 11:59

Re: ADODataSet /ADOCmd und Parameter
 
Eine Sache noch: Es ist sinnvoll, den Datentyp des Parameters einzustellen. Dann solltest du nicht per Index darauf zugreifen, sondern über den Namen, also so:
Delphi-Quellcode:
ADODataSet.Parameters.ParamValues['MyParameter'] := SomeValue;


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