AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi SQL In DBGrid markierten Datensatz löschen/ändern
Thema durchsuchen
Ansicht
Themen-Optionen

SQL In DBGrid markierten Datensatz löschen/ändern

Ein Thema von germanos · begonnen am 16. Apr 2009 · letzter Beitrag vom 14. Jul 2009
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    
germanos

Registriert seit: 3. Apr 2009
Ort: Xanten
16 Beiträge
 
#1

SQL In DBGrid markierten Datensatz löschen/ändern

  Alt 16. Apr 2009, 17:32
Datenbank: Paradox • Zugriff über: ODBC
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.
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#2

Re: SQL In DBGrid markierten Datensatz löschen/ändern

  Alt 16. Apr 2009, 17:41
Hallo,
Zitat von germanos:
Eine WHERE-Abfrage der Felder ist nicht möglich, da es auch mehrere identische Datensätze geben kann.
heißt das: 100% identisch, über alle Spalten?
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.
  Mit Zitat antworten Zitat
khh

Registriert seit: 18. Apr 2008
Ort: Südbaden
1.929 Beiträge
 
FreePascal / Lazarus
 
#3

Re: SQL In DBGrid markierten Datensatz löschen/ändern

  Alt 16. Apr 2009, 17:52
Zitat von germanos:
Eine WHERE-Abfrage der Felder ist nicht möglich, da es auch mehrere identische Datensätze geben kann.
da stimmt was mit dem db-design nicht.

zumindest eine eindeutige ID sollte jeder satz haben.
Bist du dir sicher dass es die nicht gibt?



Gruss KH
Karl-Heinz
  Mit Zitat antworten Zitat
germanos

Registriert seit: 3. Apr 2009
Ort: Xanten
16 Beiträge
 
#4

Re: SQL In DBGrid markierten Datensatz löschen/ändern

  Alt 16. Apr 2009, 18:15
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
  Mit Zitat antworten Zitat
khh

Registriert seit: 18. Apr 2008
Ort: Südbaden
1.929 Beiträge
 
FreePascal / Lazarus
 
#5

Re: SQL In DBGrid markierten Datensatz löschen/ändern

  Alt 16. Apr 2009, 18:33
Zitat von germanos:

Vielleicht könnt ihr mir sofort sagen, ob der AutoInc-Zähler in Paradoxtabellen abfragbar ist oder programmiert werden muß.

Besten Dank, Peter
eindeutige id ist in einer db eigentlich immer Pflicht.
Muss es denn paradox sein ??

Gruss KH
Karl-Heinz
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: SQL In DBGrid markierten Datensatz löschen/ändern

  Alt 16. Apr 2009, 18:35
Man kann über die Selektierung auf den Datensatz kommen, wenn dieser einen Primärschlüssel besitzt
Markus Kinzler
  Mit Zitat antworten Zitat
khh

Registriert seit: 18. Apr 2008
Ort: Südbaden
1.929 Beiträge
 
FreePascal / Lazarus
 
#7

Re: SQL In DBGrid markierten Datensatz löschen/ändern

  Alt 16. Apr 2009, 18:39
Zitat von mkinzler:
Man kann über die Selektierung auf den Datensatz kommen, wenn dieser einen Primärschlüssel besitzt
und dabei sind wir wieder bei einem eindeutigen Feld

Gruss KH
Karl-Heinz
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: SQL In DBGrid markierten Datensatz löschen/ändern

  Alt 16. Apr 2009, 18:41
Ja, das ist der dreh und Angelpunkt
Markus Kinzler
  Mit Zitat antworten Zitat
germanos

Registriert seit: 3. Apr 2009
Ort: Xanten
16 Beiträge
 
#9

Re: SQL In DBGrid markierten Datensatz löschen/ändern

  Alt 16. Apr 2009, 18:47
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
  Mit Zitat antworten Zitat
khh

Registriert seit: 18. Apr 2008
Ort: Südbaden
1.929 Beiträge
 
FreePascal / Lazarus
 
#10

Re: SQL In DBGrid markierten Datensatz löschen/ändern

  Alt 16. Apr 2009, 18:52
Zitat von germanos:
Hallo,


In der betroffenen Datenbank habe ich keinen Index vergeben, da eben bei absolut gleichen Datensätzen immer eine Fehlermeldung käme.



Peter
dazu ist halt das id feld von Nutzen




was istdas für eine anwendung?
Lohnt es sich nicht ne "richtige" DB zu nehmen?
Karl-Heinz
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 4  1 23     Letzte »    


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 16:48 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