![]() |
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:
In den Parameters ist IDFolder eingetragen.
'SELECT Folder, Thumb, Name FROM Images WHERE (Folder =@IDFolder)'
Obwohl ich mit
Delphi-Quellcode:
den Wert übergebe, kommem statt ein Datensatz alle 5307, ganz so als wäre IDFolder nicht vorhanden bzw kein Wert zugewiesen worden.
ADODataSet.Parameters[0].Value := IDF;
Gleiches Spiel, andere Komponente ADOCommand.CommandText:
Delphi-Quellcode:
Hier lautet die Meldung: 'Parameter Folder hat keinen Standardwert'.
ADOCmd.CommandText := 'SELECT Folder, Thumb, Name FROM Images WHERE (Folder =' + IntToStr(ADODSPaint.FieldByName('Folder').AsInteger) + ')';
Woran könnte es liegen bzw. liegt es? Gruß |
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:
NAME ist bestimmt ein reserved word und muss bei Access eventuell in eckige Klammern eingeschlossen werden.
SELECT Folder, Thumb, [Name] FROM Images WHERE Folder = :IDFolder
Bei deinem zweiten Versuch ist der manuell angelegte Parameter noch vorhanden, aber nicht von dir belegt worden. Freundliche Grüße |
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. |
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 21:45 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz