AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Firebird mehrere where-Bedingungen
Thema durchsuchen
Ansicht
Themen-Optionen

Firebird mehrere where-Bedingungen

Ein Thema von harfes · begonnen am 27. Sep 2021 · letzter Beitrag vom 30. Sep 2021
Antwort Antwort
harfes

Registriert seit: 25. Jun 2006
Ort: Rand der Scheibe
205 Beiträge
 
Delphi 12 Athens
 
#1

Firebird mehrere where-Bedingungen

  Alt 27. Sep 2021, 11:06
Datenbank: Firebird • Version: 3.07 • Zugriff über: Delphi
Ich versuche in eine (Firebird-)Tabelle Daten zurückzuschreiben, dazu nutze ich in Delphi (mit den Devart-Komponenten IBDAC):

with DM1.DataModule1.IBCVATNQuery do
begin
SQL.Clear;
SQL.Add('update VATN set ');
SQL.Add('RECHNUNG = :RECHNUNG, RENR = : RENR ');
SQL.Add('where TEILNEHMERID = :OLD_TEILNEHMERID and VATNID = :OLD_VATNID');
Params[0].Value := 'T';
Params[1].Value := NewID;
Params[2].Value := TNVAID;
Params[3].Value := ReErstVAID;
ExecSQL;
Close;
end;

Da bekomme ich aber immer "Argument ausserhalb des Bereichs"???? Ich habe schon versucht, um die where-Klausel Klammern zu setzen, aber das war's wohl auch nicht...die Werte in den Parametern sind ok.

Weiss jemand Rat?

Hartmut
Hartmut
  Mit Zitat antworten Zitat
braunbaer

Registriert seit: 15. Okt 2008
Ort: Vorarlberg
118 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Firebird mehrere where-Bedingungen

  Alt 27. Sep 2021, 11:08
Da ist dir ein Leerschlag dazwischen gekommen (RENR = : RENR)
SQL.Add('RECHNUNG = :RECHNUNG, RENR = : RENR ');
Gebhard Blank
  Mit Zitat antworten Zitat
harfes

Registriert seit: 25. Jun 2006
Ort: Rand der Scheibe
205 Beiträge
 
Delphi 12 Athens
 
#3

AW: Firebird mehrere where-Bedingungen

  Alt 27. Sep 2021, 11:37
Danke braunbaer!!! Grrrr, manchmal sieht man einfach den Wald vor lauter Bäumen nicht...

Hartmut
Hartmut
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.437 Beiträge
 
Delphi 12 Athens
 
#4

AW: Firebird mehrere where-Bedingungen

  Alt 27. Sep 2021, 12:06
Hallöle...
Zitat:
manchmal sieht man einfach den Wald vor lauter Bäumen nicht...
..das hättest du bestimmt im Debugger gesehen (SQL.Text) ...ach nein, der Debugger zeigt das durch das WITH nichts an.

Besser:
Delphi-Quellcode:
var
  Query: TIBQuery;
begin
  Query := DM1.DataModule1.IBCVATNQuery;
  
  Query.SQL.Text := 'update VATN set ';
  Query.SQL.Add('RECHNUNG = :RECHNUNG, RENR = :RENR ');
  Query.SQL.Add('where TEILNEHMERID = :OLD_TEILNEHMERID and VATNID = :OLD_VATNID');
  Query.ParamsByName('RECHNUNG').AsString := 'T';
  Query.ParamsByName('RENR').AsInteger := NewID;
  Query.ParamsByName('OLD_TEILNEHMERID').AsInteger := TNVAID;
  Query.ParamsByName('OLD_VATNID').AsInteger := ReErstVAID;
  Query.ExecSQL;
end;
Unterschied:
1. Der Debugger zeigt Werte an
2. AsXXXX kein cast nötig durch richtige Typen

Geändert von haentschman (27. Sep 2021 um 12:10 Uhr)
  Mit Zitat antworten Zitat
harfes

Registriert seit: 25. Jun 2006
Ort: Rand der Scheibe
205 Beiträge
 
Delphi 12 Athens
 
#5

AW: Firebird mehrere where-Bedingungen

  Alt 27. Sep 2021, 12:38
Hallo haentschman,

ich nutze gerne die von mir verwendete Schreibweise, da für mich übersichtlicher (oder auch Gewohnheit...) - was mich aber erstaunt: dann zeigt mir der Debugger Fehler innerhalb des SQL an? Wenn dem so ist, dann ist mir das neu. Werde ich mal testen...

Hartmut
Hartmut
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.437 Beiträge
 
Delphi 12 Athens
 
#6

AW: Firebird mehrere where-Bedingungen

  Alt 27. Sep 2021, 13:10
Zitat:
dann zeigt mir der Debugger Fehler innerhalb des SQL
Der Debugger zeigt dir den SQL.Text oder den Parameterinhalt an wenn du mit der Maus darübergehst. Logische SQL Fehler kann der gar nicht wissen...
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:23 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