![]() |
Datenbank: Access • Zugriff über: ADO
Standardwert bei ADO-Abfrage
Hi,
ich versuche grade über ADO auf eine Access-Datenbank zuzugreifen.
Delphi-Quellcode:
Jetzt kommt nach dem Open; aber immer die Fehlermeldung
procedure TDatenbank.DiscountExists(EAN: string);
begin if fConnection.Connected then with fQuery do begin Close; SQL.Clear; // Active := False; // fConnection.BeginTrans; SQL.Add('SELECT * FROM `Products`, `Discounts` WHERE (`Discounts`.ProduktFKID = `Products`.PKID) AND (EAN = ''0123456789'')'); try Open; // fConnection.CommitTrans; except // fConnection.RollbackTrans; end; end; end; Zitat:
mfg.Dominik |
Re: Standardwert bei ADO-Abfrage
Muss man bei Access nicht eckige Klammern statt der Backticks verwenden? Diese kenn ich nämlich eigentlich eher von MySQL.
|
Re: Standardwert bei ADO-Abfrage
schon mal so versucht?
SQL-Code:
SQL.Add('SELECT * FROM Products, Discounts WHERE (Discounts.ProduktFKID = Products.PKID) AND (EAN = ''0123456789'')');
|
Re: Standardwert bei ADO-Abfrage
Oder so?
Delphi-Quellcode:
procedure TDatenbank.DiscountExists(EAN: string);
begin if fConnection.Connected then with fQuery do begin Close; SQL.Clear; SQL.Add('SELECT [Products].*,[Discounts].* FROM [Products] '); SQL.Add('INNER JOIN [Discounts] ON [Discounts].ProduktFKID = [Products].PKID'); SQL.Add('WHERE EAN = :EAN'); Parameters.ParamByName('EAN').Value := EAN; try Open; // fConnection.CommitTrans; except // fConnection.RollbackTrans; end; end; end; |
Re: Standardwert bei ADO-Abfrage
Danke schon mal für eure Antworten.
Zitat:
Zitat:
Zitat:
Wenn ich
Delphi-Quellcode:
schreibe kommt wieder die Fehlermeldung mit dem Standardwert von oben.
SQL.Add('WHERE EAN = 0123456789');// oder
SQL.Add('WHERE EAN = ''0123456789'''); |
Re: Standardwert bei ADO-Abfrage
Lass Dir die Abfrage doch von Access selbst generieren, dann müsstest Du nur den Parameter einsetzen. Ich kenne leider die genaue Syntax nicht.
|
Re: Standardwert bei ADO-Abfrage
fehlt dann da nicht noch [], also so?
SQL-Code:
SQL.Add('WHERE [EAN] = :EAN');
|
Re: Standardwert bei ADO-Abfrage
Zitat:
Die korrekte Syntax lautet
Delphi-Quellcode:
Danke für eure Hilfe :cheers:
SQL.Add('SELECT Discounts.ProductFKID');
SQL.Add('FROM Products, Discounts'); SQL.Add('WHERE (([Discounts]![ProductFKID]=[Products]![PKID]) AND ([Products]![EAN]="' + EAN + '"));'); |
Re: Standardwert bei ADO-Abfrage
Trotzdem solltest Du die Abfrage besser parametrisieren wie oben gezeigt, sonst kann es zu dummen Fehlern oder gar zu SQL-Injection kommen.
|
Re: Standardwert bei ADO-Abfrage
bei dieser Syntax überkommt einen das Grausen:
SQL-Code:
Gruß
WHERE (([Discounts]![ProductFKID]=[Products]![PKID]) AND ([Products]![EAN]="' + EAN + '"));
K-H |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:55 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