![]() |
AW: Löschen von Datenbankeinträgen
Ja, das mag ja sein. Sobald Du aber auf andere Tabellen joinst, kann der Server aus Deinem Select Statement nicht mehr ermitteln, was die Basistabelle ist und was nur angereicherte Daten darstellen.
Ich hab nicht so ne Ahnung von MSSQL, was aber technisch notwendig wäre, um aus Serversicht trotz join die Pk Spalten des SQL Statements bestimmen zu können, wäre ein Select, dass in jedem fall alle PK Felder der Haupttabelle (hier scheinbar: Rechnereingabe, die Zwischentabelle) zurückliefert. Sowie keine weiteren Schlüsselfelder anderer Tabellen. Eigentlich sieht Dein Statement unten so aus, als ob es dem entspricht. Wenn der Server das nicht schluckt, musst Du wie beschrieben etwas mehr Aufwand treiben und ein separates Löschstatement einbauen. Je nach Kompos, kann man das gleich als Delete oder Update Clause mitangeben, da hab ich aber aktuell keinen Überblick. |
AW: Löschen von Datenbankeinträgen
Wenn es an den joins liegt, wäre halt die Frage wie ich die Berechnung mache ohne die joins.
|
AW: Löschen von Datenbankeinträgen
Nein, die Frage ist, wie Du auf Basis der Berechnung (also Deinem Dataset mit dem Berechnungsergebnis) eine Löschung durchführst.
Man kann natürlich sagen, das sind 2 vollkommen unterschiedliche Aufgaben. 1. Die Visualisierung einer Berechnung (eine Maske/ Form, ein Dataset) 2. Das Löschen einer Rechnerzuordnung, die nicht mehr berechnet werden soll (eine andere Maske, nur für Auf- und Abbau einer Rechnerzuordnung. |
AW: Löschen von Datenbankeinträgen
Liste der Anhänge anzeigen (Anzahl: 1)
in dieser speziellen Zuordnung ist ja in der Tabelle noch die Anzahl der Module drin mit der Gesamtspeicher berechnet wird, es soll einfach der komplette tabellen eintrag gelöscht werden.
|
AW: Löschen von Datenbankeinträgen
Das passt aber nicht zu dem, was Du von Deinem Dataset erzählst:
Zitat:
und es passt nicht dazu, dass Du schreibst, die Zwischentabelle hätte nur 2 Spalten. (aber das ist hier auch egal) a) Wenn du auf diesem Dataset (aus Zitat oben) ein Delete machen willst, musst Du eben etwas filigraner vorgehen. b) Wenn Du auf der Tabelle aus dem Screenshot ein Delete machen willst, dann reicht ein simples Delete. (Hast Du ja selber schon bemerkt) Wir sind also bei a) oder? |
AW: Löschen von Datenbankeinträgen
die meisten Verknüpungstabellen die ich benutze habe 2 Spalten und ich dachte das ich das Problem allgemein habe, was sich dann später als Falsch herrausstellte.
sieht so aus also ob ich ein spezielles delete für diese Tabelle/dataset benötige. |
AW: Löschen von Datenbankeinträgen
Ja, vermutlich gibt es ja auch irgendwo analog das spezielle Insert.
|
AW: Löschen von Datenbankeinträgen
Das Insert mache ich über den DBGrid.
|
AW: Löschen von Datenbankeinträgen
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) |
AW: Löschen von Datenbankeinträgen
Hallo,
nimm eine 2. ADOQuery, lösche dort den Eintrag, denn eine DBGrid.DataSet.Close; DBGrid.DataSet.Open; Heiko |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:17 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