Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Löschabfrage (https://www.delphipraxis.net/77765-loeschabfrage.html)

norbert3 24. Sep 2006 16:33

Datenbank: ABS • Version: 5.05 • Zugriff über: DataSet

Löschabfrage
 
Hey Leute,
ich komme wieder mal nicht weiter. Mein Problem: Ich möchte nach Auswahl eines Datums Datensätze löschen. Nach der Fehlermeldung "Error creating table handling - Native error 20001" löscht er exakt die Datensätze die er auch soll. Was mach ich den da falsch?? :gruebel:

Delphi-Quellcode:
procedure TMainForm.Stundenlschen1Click(Sender: TObject);
begin
   with ABSQuery1 do
   begin
   sql.Text := 'Delete from tblBstAZ '
              +'WHERE Datum BETWEEN :von and :bis ';
    ParamByName('von').asString := InputBox('InputBox','Erstes Datum angeben!','Anfangswert');
    ParamByName('bis').asString := InputBox('InputBox','Zweites Datum angeben!','Endwert');
   open;
   end;
    MessageDlg('Daten gelöscht!', mtInformation,[mbOk], 0);
end;
Danke für eure Mühe im voraus.
mfg Norbert

mkinzler 24. Sep 2006 16:35

Re: Löschabfrage
 
Hast du schon versucht die parameter als TDatetime zu setzen?

enricoffo 24. Sep 2006 17:05

Re: Löschabfrage
 
Es kann aus sein, das du die eingegebenen Datum erst in SQL-Datum wandeln mußt. Das Problem hatte ich oft.
Da ist dann 13.12.2006 nicht möglich, sondern 12/13/2006.

norbert3 24. Sep 2006 17:08

Re: Löschabfrage
 
Hey,
Delphi-Quellcode:
procedure TMainForm.Stundenlschen1Click(Sender: TObject);
begin
   with ABSQuery1 do
   begin
   sql.Text := 'Delete from tblBstAZ '
              +'WHERE Datum BETWEEN :von and :bis ';
    ParamByName('von').AsDateTime := StrToDateTime(InputBox('InputBox','Erstes Datum angeben!','Anfangswert'));
    ParamByName('bis').AsDateTime := StrToDateTime(InputBox('InputBox','Zweites Datum angeben!','Endwert'));
   open;
   end;
    MessageDlg('Daten gelöscht!', mtInformation,[mbOk], 0);
end;
Das Problem ist leider immer noch.

mfg Norbert

norbert3 24. Sep 2006 17:09

Re: Löschabfrage
 
Hey enricoffo

mit dem Datum anpassen könnte ich ei paar erklärende Worte brauchen. Bitte.

mfg Norbert

mkinzler 24. Sep 2006 17:13

Re: Löschabfrage
 
Zitat:

Zitat von norbert3
Hey enricoffo

mit dem Datum anpassen könnte ich ei paar erklärende Worte brauchen. Bitte.

mfg Norbert

Dieses Problem umgehst du schon durch den Einsatz von Parametern.

hast du mal in der ABS Doku nachgeschaut was der fehler im Detail bedeutet?

norbert3 24. Sep 2006 17:25

Re: Löschabfrage
 
Hey mkinzler,
in der Doku habe ich nur das gefunden:
Zitat:

5. Running the following code I get the following exception message:
"Error creating table handle - Native error: 2001"
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Query->SQL->Text = "INSERT INTO friends(name) VALUES ('Joseph') " ;
Query->Open();
}

INSERT, UPDATE, and other queries which don't return any data must be called by
TABSQuery->ExecSQL() method instead of TABSQuery->Open().


mfg Norbert

mkinzler 24. Sep 2006 17:31

Re: Löschabfrage
 
Sagt doch alles DML-Abfragen liefern keine ergebnismenge zurück und müßen mit .ExecSQL ausgeführt werden.

norbert3 24. Sep 2006 18:10

Re: Löschabfrage
 
wie rufe ich den diese Function auf?

mkinzler 24. Sep 2006 18:12

Re: Löschabfrage
 
Statt
Delphi-Quellcode:
Open;
Delphi-Quellcode:
ExecSQL;


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:23 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz