AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Löschen von Datenbankeinträgen
Thema durchsuchen
Ansicht
Themen-Optionen

Löschen von Datenbankeinträgen

Ein Thema von Flash68 · begonnen am 27. Jan 2012 · letzter Beitrag vom 30. Jan 2012
Antwort Antwort
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#1

AW: Löschen von Datenbankeinträgen

  Alt 27. Jan 2012, 13:26
Egal, die (Grid)Aussage ist nutzlos. Das ist nur der Visualisierungsteil.
Es geht immer um die Datenmenge, die unter dem Grid liegt:
DBGRID< Dataset < Query Statement

Wie gesagt, ich hab keine Ahnung, wie genial MSSQL Server bei der Auflösung solcher Statements bzw. der Bestimmung der Schlüsselinformationen arbeitet, aber egal ob insert, delete oder update, er hat immer das gleiche Problem. (Also könnte er sich auch in jedem Fall gleich Verhalten)

Wenn also ein Insert auf einem Dataset funktioniert, das Delete auf dem gleichen Dataset aber fehlschlägt, ist entweder die Servermechanik etwas schusselig oder Du machst einen Unterschied im Code, der aus Deinen bisherigen Äußerungen nicht hervorgeht (und Dir vielleicht auch nicht mal bewusst ist)
Gruß, Jo
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Löschen von Datenbankeinträgen

  Alt 27. Jan 2012, 19:00
Hallo,

nimm eine 2. ADOQuery, lösche dort den Eintrag,
denn eine

DBGrid.DataSet.Close;
DBGrid.DataSet.Open;


Heiko
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 15. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#3

AW: Löschen von Datenbankeinträgen

  Alt 29. Jan 2012, 01:56
Folgende Abfrage benützt die alte Join-Syntax:
Code:
select RS.Rechner_ID, RS.Speicher_ID, S.Bezeichnung, RS.Anzahl, S.Größe, S.Größe*Rs.Anzahl As Gesamt from Rechnerspeicher RS, Speicher S where RS.Rechner_ID =:ID and RS. Speicher_ID = S.ID
Man sollte aber grundsätzlich nur noch die neue Syntax benützen:
Code:
select RS.Rechner_ID, RS.Speicher_ID, S.Bezeichnung, RS.Anzahl, S.Größe, S.Größe*Rs.Anzahl As Gesamt from
Rechnerspeicher RS INNER JOIN Speicher S ON RS.Speicher_ID = S.ID
where RS.Rechner_ID =:ID
Falls entsprechende Beziehungen zwischen den Tabellen eingerichtet sind, kann der SQL-Server in der Regel auch bei JOINS entscheiden in welcher Tabelle gelöscht werden soll.
Der SQL-Server weiss dann welches die Master und welches die Detailtabelle ist.
Beziehungen kann man auf dem SQL Server am Einfachsten herstellen, wenn man die Tabellen auf einem Diagramm platziert und die Verküpfung dann durch Drag&Drop der Schlüsselfelder aufbaut.
  Mit Zitat antworten Zitat
Flash68

Registriert seit: 24. Apr 2006
102 Beiträge
 
Delphi XE2 Architect
 
#4

AW: Löschen von Datenbankeinträgen

  Alt 30. Jan 2012, 08:19
Die Beziehungen sind eingerichtet, aber auch mit der neuen Abfrage kommt die gleiche Fehlermeldung:

Nicht genügend Schlüsselinformationen zum Aktualisieren.
  Mit Zitat antworten Zitat
Flash68

Registriert seit: 24. Apr 2006
102 Beiträge
 
Delphi XE2 Architect
 
#5

AW: Löschen von Datenbankeinträgen

  Alt 30. Jan 2012, 11:15
Mit der Lösung von Hoika( 2. Dataset und so) hat es funktioniert.
  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 06:21 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