AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi ist feldX ein gültiger link auf FeldY
Thema durchsuchen
Ansicht
Themen-Optionen

ist feldX ein gültiger link auf FeldY

Ein Thema von glkgereon · begonnen am 25. Apr 2005 · letzter Beitrag vom 25. Apr 2005
Antwort Antwort
Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#1

ist feldX ein gültiger link auf FeldY

  Alt 25. Apr 2005, 18:20
Datenbank: Access • Zugriff über: ADO
hi

sry für den Titel, aber ich hab keine kurze und bessere bezeichnung gefunden

also, ich hab in einer datenbank 2 spalten 'id' und 'parentid'.
nun will ich prüfen ob die zahl in parentid in irgendeinem anderen datensatz in id drinsteht, und alle datensätze wo parentid "ins leere geht" löschen.
also will ich einfach alle "falschen" parentids rausfinden...wie geht das?

Delphi-Quellcode:
while GetNextFalsePId do
  begin
  FQuery.SQL.Add('DELETE FROM '+FTable+' WHERE parentid='''+PId+'''');
  FQuery.Open;
  end;
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#2

Re: ist feldX ein gültiger link auf FeldY

  Alt 25. Apr 2005, 18:23
Eigentlich führt man das mit ExecSQL aus und nicht mit Open, da ja nichts zurückgegeben wird.

Desweiteren rate ich mit parametern zu arbeiten. Such hier ma. Gabs schon genug.
  Mit Zitat antworten Zitat
nieurig

Registriert seit: 26. Apr 2004
113 Beiträge
 
Delphi 6 Professional
 
#3

Re: ist feldX ein gültiger link auf FeldY

  Alt 25. Apr 2005, 18:29
Hi,
ohne auf die Effizienz zu achten, könnte man eine Unterabfrage in diesem Stil losschicken.

delete from Tabelle1 where NOT parendID in ( SELECT ID from Tabelle2) Schönen Abend noch.
Niels
Erspare Dir die Gedanken über ungelegte Eier !!!
  Mit Zitat antworten Zitat
Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#4

Re: ist feldX ein gültiger link auf FeldY

  Alt 25. Apr 2005, 18:32
ahh, genau das suchte ich.


(das man so einfach querys verschachteln kann )

@spider
warum ExecSQL und nicht open?
wo ist der unterschied?

was meinst du mit parametern?

stecke was db's mit delpgi angeht noch in den kinderschuhen, daher bin ich für jeden guten tipp dankbar....
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#5

Re: ist feldX ein gültiger link auf FeldY

  Alt 25. Apr 2005, 18:44
Zitat von glkgereon:
ahh, genau das suchte ich.


(das man so einfach querys verschachteln kann )

@spider
warum ExecSQL und nicht open?
wo ist der unterschied?

was meinst du mit parametern?
ExecSQL ruft man auf, wenn man DELETE, INSERT, UPDATE, etc. benutzt.
Open ruft man auf, wenn man SELECT etc. benutzt, überall wo Daten zurückgegeben werden halt.

Das mit den Parametern:

Delphi-Quellcode:
Query1.SQL.Text := 'SELECT * FROM :table WHERE id = :id';
Query1.ParamByName('table').AsString := 'Tabellenname';
Query1.ParamByName('id').AsInteger := ID;
Dadurch brauchst du dich nicht um die Hochkommas zu kümmern, da dies automatisch gemacht wird
  Mit Zitat antworten Zitat
Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#6

Re: ist feldX ein gültiger link auf FeldY

  Alt 25. Apr 2005, 18:46
ahhh....das mit den Parametern scheint ne extrem praktische sache zu sein...

aber was wird denn bei ExecSQL zurückgegeben.
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#7

Re: ist feldX ein gültiger link auf FeldY

  Alt 25. Apr 2005, 18:49
Zitat von glkgereon:
aber was wird denn bei ExecSQL zurückgegeben.
Nichts, das ist es ja . Es wird bloß was in der DB rumgemurkst.
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#8

Re: ist feldX ein gültiger link auf FeldY

  Alt 25. Apr 2005, 20:29
Zitat von Spider:
Zitat von glkgereon:
aber was wird denn bei ExecSQL zurückgegeben.
Nichts, das ist es ja . Es wird bloß was in der DB rumgemurkst.
Wird nicht die Anzahl der vom DML Statement betroffenen Datensätze zurückgegen? Oder habe ich noch ExecuteNonQuery im Kopf?
  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 02:40 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