![]() |
Datenbank: Paradox • Zugriff über: ODBC
SQL In DBGrid markierten Datensatz löschen/ändern
Hallo,
ich habe wieder mal ein Problem mit SQL. Ich möchte einen in einem DBGrid selektierten Datensatz löschen (DELETE) oder aber ändern (UPDATE). Hierbei steht mir aber nur die Record-Nummer der Query zur Verfügung, das heißt, ich selektiere den Datensatz und möchte ihn auf Tastendruck mit SQL DELETE löschen. Eine WHERE-Abfrage der Felder ist nicht möglich, da es auch mehrere identische Datensätze geben kann. Gibt es dennoch eine Möglichkeit, nur mit SQL dieses Problem zu lösen?? Für Vorschläge gerne mit Beispielcode wäre ich sehr froh. Vielen Dank. |
Re: SQL In DBGrid markierten Datensatz löschen/ändern
Hallo,
Zitat:
Wenn ja, meiner Meinung nach chancenlos :-( Ansonsten, alle Spalten in die Wherebedingung reinpacken, dann reicht ein beliebiges Zeichen Unterschied irgendwo. Sind die Sätze wirklich 100% identisch [OT](eigentlich ja ein blöde Formulierung, identisch ist 100% sonst ist's nicht identisch)[/OT], dann nachträglich einen technischen Schlüssel einbauen (AutoInc, Satzzähler, GUID...) und dann damit arbeiten, damit's den Anwender nicht stört, kann man diese Spalte im DBGrid ja unsichtbar machen. |
Re: SQL In DBGrid markierten Datensatz löschen/ändern
Zitat:
zumindest eine eindeutige ID sollte jeder satz haben. Bist du dir sicher dass es die nicht gibt? Gruss KH |
Re: SQL In DBGrid markierten Datensatz löschen/ändern
Hallo und vielen Dank.
Das völlig gleiche Datensätze vorhanden sind, ist sehr unwahrscheinlich, aber nicht unmöglich. Es handelt sich um ein Haushaltsbuch, indem ohne weiteres an einem Tag der gleiche Artikel 2 mal eingegeben werden könnte. Dann sind alle Spalten gleich vom Datum über KontoID usw. Über eine Auto-Increment-Spalte habe ich auch schon nachgedacht, aber es erst einmal verworfen, da ich ja die RecNo bestimmen kann. Nur bin ich erst ein paar Wochen mit Delphi beschäftigt und habe mich in SQL "verliebt". Deshalb wäre es mir lieber gewesen, über die Selektierung des Datensatzes zu einer Identifikation des Datensatzes zu kommen. Sollte keine "einfache" Lösung möglich sein, werde ich eine Spalte für die eindeutige ID hinzu fügen. Vielleicht könnt ihr mir sofort sagen, ob der AutoInc-Zähler in Paradoxtabellen abfragbar ist oder programmiert werden muß. Besten Dank, Peter |
Re: SQL In DBGrid markierten Datensatz löschen/ändern
Zitat:
Muss es denn paradox sein ?? Gruss KH |
Re: SQL In DBGrid markierten Datensatz löschen/ändern
Man kann über die Selektierung auf den Datensatz kommen, wenn dieser einen Primärschlüssel besitzt
|
Re: SQL In DBGrid markierten Datensatz löschen/ändern
Zitat:
Gruss KH |
Re: SQL In DBGrid markierten Datensatz löschen/ändern
Ja, das ist der dreh und Angelpunkt
|
Re: SQL In DBGrid markierten Datensatz löschen/ändern
Hallo,
es musste nicht paradox sein, aber aus Büchern, die mir z.Zt. zur Verfügung stehen, war die Alternative dBase. Ich habe paradox genommen, da die Beispiele in den Büchern eben diese Datenbank benutzten. In der betroffenen Datenbank habe ich keinen Index vergeben, da eben bei absolut gleichen Datensätzen immer eine Fehlermeldung käme. In der Datenbankoberfläche haben alle DBs eine Spalte mir einem Zähler. Ist diese Spalte nicht abfragbar?? Ich hoffe, ich nerve niemanden, aber ich bin halt nicht ruhig, bevor ein Problem gelöst ist. Also nochmals Danke, Peter |
Re: SQL In DBGrid markierten Datensatz löschen/ändern
Zitat:
was istdas für eine anwendung? Lohnt es sich nicht ne "richtige" DB zu nehmen? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:26 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