![]() |
Datenbank: MSAccess • Version: 97 • Zugriff über: ADO_Connection
Parameterübergabe in SQL Anweisung
Hallo,
ich habe wiedermal ein Problem. Mit BDS2006 habe ich ein älteres Programm aus Delphi7 aktualisiert und jetzt funktioniert meine SQL Abfrage nicht mehr. Es kommt aber keine Fehlermeldung, nur wird nichts angezeigt! Meine Abfrage lautet folgendermassen:
Delphi-Quellcode:
Also in Delphi 7 hat dies bis jetzt wunderbar geklappt, da hiess es allerdings:
WITH DaoQuery1 DO BEGIN
CLOSE; SQL.Clear; SQL.Add('SELECT * FROM [TafelName]'); SQL.Add('WHERE [FeldName] LIKE :parameter '); Parameters.ParambyName('parameter').Value:='*'; Open; end;
Delphi-Quellcode:
Kann es sein, dass etwas mit der Parameterabfrage nicht stimmt?
...
ParamByName('parameter').AsString:='*'; ... Meine Datenbank ist noch immer im Access97-Format. FÜr Hilfe, wÄr ich sehr dankbar. [edit=SirThornberry]Delphi-Tags gesetzt. Nächstes mal bitte selbst machen. Mfg, SirThornberry[/edit] |
Re: Parameterübergabe in SQL Anweisung
Der SQL-Platzhalter ist eigentlich '%' nicht '*'. Versuch es mal so.
|
Re: Parameterübergabe in SQL Anweisung
Funktioniert leider nicht. Irgendwie wird der Parameter nicht abgefragt.
Warum funktioniert es in Delphi 7 mit der selben Datenbank so gut? |
Re: Parameterübergabe in SQL Anweisung
Welchen Typ hat <Feldname>?
Hast du es schon mit .asString versucht? Ist .ParamCheck True? |
Re: Parameterübergabe in SQL Anweisung
@SCHUCla74: Könntest du bitte nächstes mal um deinen Quelltext Delphi-Tags setzen. Damit ist der Quelltext leichter lesbar. Ich habs diesmal für dich gesetzt. Beim nächsten mal bitte selbst machen. :)
|
Re: Parameterübergabe in SQL Anweisung
Danke für die Tags, aber ich bin ziemlich neu im Forum.
Der Feldname ist vom Typ string, wie in Delphi7 ParamCheck ist true. Parameters.ParamByName('Parameter').Value ist doch vom Typ Variant, oder? Das müsste doch klappen? |
Re: Parameterübergabe in SQL Anweisung
Zitat:
|
Re: Parameterübergabe in SQL Anweisung
Leider kann ich nirgends sehen wo ich .asString angeben kann, in Delphi 7 musste ich dies, aber in BDS2006 wirds mir nicht angeboten.
|
Re: Parameterübergabe in SQL Anweisung
Schreib statt .Value einfach .asString
|
Re: Parameterübergabe in SQL Anweisung
Herzlich willkommen in der Delphi-PRAXiS, Claude.
Ist das ein Schreibfehler von dir oder arbeitest du wirklich mit DAO? ADO wäre doch die bessere Wahl. Freundliche Grüße vom marabu |
Re: Parameterübergabe in SQL Anweisung
Sch..., ja, ein Schreibfehler. Es ist ADO.
In Delphi 7 hatte ich die Komponente von DIAMOND und die hieß DAO, daher vielleicht die Verwechslung. Will aber jetzt ohne Drittkomponenten auskommen. Entschuldige nochmals. |
Re: Parameterübergabe in SQL Anweisung
Zitat:
|
Re: Parameterübergabe in SQL Anweisung
Ich bin mit den Gepflogenheiten von BDS nicht vertraut, aber es könnte sich um ein syntaktisches Problem handeln, welches an ganz anderer Stelle verursacht wird. Kannst du dich nicht herantasten? Funktioniert denn das hier:
Delphi-Quellcode:
Vielleicht liegt es gar nicht an den Parametern.
with AdoQuery do
begin SQL.Text := 'SELECT * FROM [TafelName] WHERE [FeldName] LIKE ''%'''; Open; end; Grüße vom marabu |
Re: Parameterübergabe in SQL Anweisung
Grundsätzlich sollte es eigentlich über parameter funktionieren.
Zitat:
-Funktioniert der Zugriff ohne Parameter? (Siehe auch Achims Beitrag) -Welche Komponente ( TADOQuery, TADODataSet)? |
Re: Parameterübergabe in SQL Anweisung
Zitat:
Danke für die Idee! |
Re: Parameterübergabe in SQL Anweisung
Zitat:
Ich verwende jetzt die ganz normalen Komponenten: TAdoConnection, TAdoQuery, TDBGrid und TDataSource. Soweit glaub ich alles Ok? |
Re: Parameterübergabe in SQL Anweisung
Dank an alle; es funktioniert.
War wahrscheinlech das Zeichen '*' das ich durch '%' ersetzt habe. Access ist immer wieder speziell! Mein Tag ist gerettet. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:16 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 by Thomas Breitkreuz