![]() |
Hi, ich habe, wenn ich das Prog. jetzt compiliere, folgende Fehlermeldungen:
Undefinierter Bezeichner: 'ParamByName' Undefinierter Bezeichner: 'KundenNr' Undefinierter Bezeichner: 'ExexSQL' Undefinierter Bezeichner: 'RowsEffected' Wenn ich anstelle von ParamByName - FieldByName eingebe, dann kommt zwar die 1. Fehlermeldung nicht mehr, aber alle anderen sehr wohl. Was hab ich da vergessen? |
Hallo m-werk,
nein, FieldByName ist was anderes. Du musst schon ParamByName verwenden. Kannst du bitte mal den Code posten? Ich habe D5, so dass ich nicht mit ADO Komoponenten arbeite, sondern mit der Standard TQuery Kompo, aber die sollten sich eigentlich nicht so drastisch voneinander unterscheiden. Ich vermute eher einen Fehler im Code (with - Anweisung oder so...) |
Ich poste den Code heute am abend!
|
Hi, so sieht der Code bei mir aus:
Code:
Noch eine fehlermeldung habe ich
procedure TDM.ADOSHauptAfterDelete(DataSet: TDataSet);
begin DM.DelQry.ParamByName('KNr').AsString := KundenNr; DM.DelQry.ExexSQL; ShowMessage(IntToStr(DM.DelQry.RowsEffected)+' Datensätze gelöscht.'); end; 'Operator oder Semikolon fehlt' Diese erscheint nach dem AsString Muß ich bei der DelQry eine DataSource angeben? wenn ja, welche? Muß ich für jede Tabelle eine eigene ADOQuery erstellen? Die Fehlermeldung bei ExexSQL kommt jetzt nicht mehr. Wenn ich jetzt z.B. DM.DelQry. eingebe, kommt immer ein Infofenster, wo ich dann gewisse sachen auswählen kann. Es steht dort aber kein ParamByName Ich habe in der Hilfe auch gesehen, dass ParamByName nicht für ADO ist. Gibts da nen anderen Befehl? Das gleiche ist bei RowsEffected. Zu RowsEffected habe ich nicht einmal eine Hilfe gefunden. Mir scheint, diesen Befehl giebt es gar nicht. Ich habe aber RowsAffected gefunden. Dies müßte funktionieren (Ich verwende Delphi6) Das mit der Fehlermeldung KundenNr habe ich glaube ich auch gefunden. Ich habe die KundenNr unter '' gesetzt. |
Hallo m-werk,
ja, da hab ich mich tatsächlich verschrieben. Es muss RowsAffected heißen. Wenn ParamByName nicht für ADO Komponenten gilt, weiß ich leider nicht, wie man dort auf Parameter zugreift. Vielleicht findest du unter ADOQuery irgendein Hinweis, wie man auf Parameter zugreifen kann. KundenNr darfst du auf keinen Fall in '' setzen, da du ja den Wert dieser Variablen haben willst. Du musst KundenNr als String deklarieren, z.B. im DatenModul. Du kannst für jede Tabelle eine Query einsetzen oder du setzt den Tabellennamen in eine eigene Zeile:
Code:
Dann kannst du einfach in einer Schleife jeweils DelQry.SQL.Strings[1]den Tabellen Namen der Tabelle zuweisen, in der du die Einträge löschen willst.
DELETE FROM
Tabelle2 WHERE KNr = :KNr DataSource muss nicht gesetzt werden, sondern nur DatabaseName. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:26 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