AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi löschen von datensätzen
Thema durchsuchen
Ansicht
Themen-Optionen

löschen von datensätzen

Ein Thema von sancho1980 · begonnen am 30. Mär 2006 · letzter Beitrag vom 31. Mär 2006
Antwort Antwort
sancho1980

Registriert seit: 7. Feb 2006
429 Beiträge
 
#1

löschen von datensätzen

  Alt 30. Mär 2006, 15:24
Datenbank: interbase 6.5 • Zugriff über: ibx, ibexpert
hallo
ich habe eine ibdataset - komponente und will nun damit einen datensatz löschen
leider funktioniert das nicht wie ich's mir vorstelle

das delete-sql-statement lautet folgendermaßen:

delete from tabelle
where
ID = :ID

mein löschversuch sieht dann im code folgendermaßen aus:
SQL-Code:
DataSet.Edit();
DataSet.ParamByName('ID').AsInteger := Zahl;
DataSet.Delete();
Leider bekomm ich dann immer die Meldung: Not in edit mode.

Kann mir das einer erklären?

Danke,
Martin
Um Rekursion zu verstehen, muss man zunächst Rekursion verstehen.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.196 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: löschen von datensätzen

  Alt 30. Mär 2006, 15:26
Weil Delete nur sinnvoll ist wenn du eine Select-Anweisung hast.
Für eine DELETE...-Anweisung must du die SQL-Anweisung ausführen:
DataSet.Execute;
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
sancho1980

Registriert seit: 7. Feb 2006
429 Beiträge
 
#3

Re: löschen von datensätzen

  Alt 30. Mär 2006, 15:30
die TDataSet und Nachfahren davon haben aber gar keine Execute-Methode
Um Rekursion zu verstehen, muss man zunächst Rekursion verstehen.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: löschen von datensätzen

  Alt 30. Mär 2006, 15:38
Delphi-Quellcode:
DataSet.ParamByName('ID').AsInteger := Zahl;
DataSet.Edit();
DataSet.Delete();
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von dataspider
dataspider

Registriert seit: 9. Nov 2003
Ort: 04539 Groitzsch
1.351 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: löschen von datensätzen

  Alt 30. Mär 2006, 16:01
Zitat von mkinzler:
Delphi-Quellcode:
DataSet.ParamByName('ID').AsInteger := Zahl;
DataSet.Edit();
DataSet.Delete();
Hi,

man sollte sich schon entscheiden, ob man ändern oder löschen will.
Dann wäre dein SQL für Select und Delete noch interessant.
Normalerweise reicht ein Delete, sofern das DataSet offen ist.

Delphi-Quellcode:
DataSet.ParamByName('ID').AsInteger := Zahl;
// ich gehe davon aus, dass das DataSet geschlossen ist
// oder warum setzt du den Parameter hier im Code?
DataSet.Open;
if not DataSet.Eof then
  DataSet.Delete;
Cu, Frank
Frank Reim
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#6

Re: löschen von datensätzen

  Alt 30. Mär 2006, 22:37
SQL Befehle mittels Update liefern keine Ergebnismengen, und können, um anzufangen, schon mal garnicht editiert werden. Man hat lso 2 Möglîchkeiten:
a. entweder du verwendest den von Dir verwendeten SQL Befehl, und sendest den so einfach zum SQL Server. Das geht weder micht Edit, noch mit Delete, sondern einfach durch Übermitteln des Befehls mittels ExecSql.
b. Du öffnest einfach die Tabelle, also ohne den von dir benannten SQL Befehl, bewegst Dich zu dem entsprechendem Record, und löscht ihn mit "Delete".

Methode a. ist da zu bevorzugen, aber beide Methoden mischen kannst Du natürlich nicht.
  Mit Zitat antworten Zitat
sancho1980

Registriert seit: 7. Feb 2006
429 Beiträge
 
#7

Re: löschen von datensätzen

  Alt 31. Mär 2006, 12:43
ah ok
hatte mir das anders vorgestellt
Um Rekursion zu verstehen, muss man zunächst Rekursion verstehen.
  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 18:57 Uhr.
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