![]() |
Einen bestimmten Datenfeld in einer Datenbank auswählen?
Hallo,
wie kann man mit Hilfe eines editfeldes und einer if-bedingung ein bestimmtest datenfeld in einer datenbank finden und dann wenn man die Zeile gefunden hat den gesamten datenstatz löschen--- |
Re: Einen bestimmten Datenfeld in einer Datenbank auswählen?
Hallo rainman51 !
Benutze die TQuery Komponente und baue deine Bedingung in einen SQL-Befehl ein, also etwa so:
Delphi-Quellcode:
Im Edit steht nur deine Bedingung 'Feldname=Wert".
Query1.SQL.Clear;
Query1.SQL.Add('SELECT * FROM "DeineDatenbank.DB" WHERE '+Edit.Text); Query1.Open; Du musst jetzt natürlich noch überprüfen, ob Query überhaupt Datensätze enthält oder vielleicht mehrere Datensätze Deine Bedingung erfüllen, dann musst Du deine Auswahl noch genauer machen. Mit
Delphi-Quellcode:
löschst Du dann den aktuell ausgewählten Datensatz. Ich hoffe, dass ist das was Du suchst.
Query1.Delete;
Gruss TOmega |
Re: Einen bestimmten Datenfeld in einer Datenbank auswählen?
Ist das Feld, in dem du suchst UNIQUE ? Wenn nicht, werden unter Umständen mit TOmega's Lösung der falsche Datensatz gelöscht.
Um alle Datensätze zu löschen, die dem Suchkriterium entsprechen, brauchts kein Select und anschliessendes Löschen aus Delphi heraus, sondern ich würde direkt die SQL Syntax anpassen:
Delphi-Quellcode:
Merke auch, dass ich den Suchtext über die Funktion QuotedStr übergebe. Täte ich das nicht, gibts ne Fehlermeldung, wenn der Suchtext selbst Hochkommata ' enthalten
Query1.SQL.Clear;
Query1.SQL.Add('Delete FROM "DeineDatenbank.DB" WHERE Feldname = '+ QuotedStr(Edit.Text)); Query1.ExecSQL; |
Re: Einen bestimmten Datenfeld in einer Datenbank auswählen?
was bedeutetb das?
--->DeineDatenbank.DB Ich denk mal ... meien db(Inventarverwaltung). --< was steht hinter dem punkt? |
Re: Einen bestimmten Datenfeld in einer Datenbank auswählen?
Also wenn z.b meine Suchabfrage nach der der Datensatz gelöscht werden soll imm er in der ersten Spalte steht....geht das damit auch>?
|
Re: Einen bestimmten Datenfeld in einer Datenbank auswählen?
Zitat:
|
Re: Einen bestimmten Datenfeld in einer Datenbank auswählen?
Zitat:
Tabelle.Spalte? |
Re: Einen bestimmten Datenfeld in einer Datenbank auswählen?
Zitat:
Ich denk mal, ein bischen SQL Litteratur würde nichts schaden. |
DP-Maintenance
Dieses Thema wurde von "Jelly" von "Programmieren allgemein" nach "Datenbanken" verschoben.
|
Re: Einen bestimmten Datenfeld in einer Datenbank auswählen?
Adoqueryauswahl.SQL.Clear;
Adoqueryauswahl.SQL.Add('Delete FROM "Anlagegut" WHERE Anlagegut.Inventarnummer = '+ {1QuotedStr}(Editeingabe.text)); Adoqueryauswahl.Open; so lautet jetzt mein Text.....es kommt aber unvollständige anweisung |
Re: Einen bestimmten Datenfeld in einer Datenbank auswählen?
Zitat:
|
Re: Einen bestimmten Datenfeld in einer Datenbank auswählen?
Vielleicht solltest du doch mal Jelly's Tip mit dem Erlernen der Grundlagen mal ernstnehmen
![]() |
Re: Einen bestimmten Datenfeld in einer Datenbank auswählen?
Text in geschweiften Klammern ist ein Kommentar, QuotedStr ist eine Funktion.
So ist's richtig:
Delphi-Quellcode:
Ausserdem hast Du den Stern hinter dem Delete vergessen, der bedeutet, dass Du alle Datenfelder sehen willst. Ansonsten stehen dort die selektierten Datenfeldbezeichnungen. Deine Datenbankdatei hat sicher auch eine Endung *.db für Paradox oder *.dbf für dBase.
Adoqueryauswahl.SQL.Clear;
Adoqueryauswahl.SQL.Add('Delete * FROM "Anlagegut.db" WHERE Anlagegut.Inventarnummer = '+ QuotedStr(Editeingabe.text)); Adoqueryauswahl.Open; |
Re: Einen bestimmten Datenfeld in einer Datenbank auswählen?
Zitat:
|
Re: Einen bestimmten Datenfeld in einer Datenbank auswählen?
Zitat:
|
Re: Einen bestimmten Datenfeld in einer Datenbank auswählen?
Adoqueryauswahl.SQL.Clear;
Adoqueryauswahl.SQL.Add('Delete FROM "Inventarverwaltung" WHERE --->datenbank Anlagegut.Inventarnummer = '+ --->Tabelle -->spalte QuotedStr(Editeingabe.text)); <---- Hier steht die Zahl drinn die in der spalte stehen soll(jede Zahl kommt dabei nur einmal vor) Adoqueryauswahl.ExecSQL; es kommt aber immer unvollständuge anweisung ich weiß nicht was fehlt... |
Re: Einen bestimmten Datenfeld in einer Datenbank auswählen?
Zitat:
|
Re: Einen bestimmten Datenfeld in einer Datenbank auswählen?
Zeig mal deinen orginalen Code, so kann man ja nicht erkennen, was du wirklich geschrieben hast.
|
Re: Einen bestimmten Datenfeld in einer Datenbank auswählen?
Liste der Anhänge anzeigen (Anzahl: 1)
Delphi-Quellcode:
Unten ein Bild von dem Programm
procedure TFormloch.ButtondeletClick(Sender: TObject);
begin if (editeingabe.Text <> '') then begin if MessageBox(0, 'Soll der Datensatz gelöscht werden?', 'Datensatzlöschen',MB_YESNO) = 6 then begin Adoqueryauswahl.SQL.Clear; Adoqueryauswahl.SQL.Add('Delete FROM "Inventarverwaltung" WHERE Anlagegut.Inventarnummer = '+ QuotedStr(Editeingabe.text)); Adoqueryauswahl.ExecSQL; showmessage('Ok'); end else MessageBox(0, 'Datensatz ist noch vorhanden', 'Vorgang abgebrochen',MB_Ok) end else showmessage ('Bitte Inventarnummer eingeben!'); end; end. [edit=Jelly]Delphi Tags bitt einpflegen. Mfg, Jelly[/edit] |
Re: Einen bestimmten Datenfeld in einer Datenbank auswählen?
1. Statt .Clear + .Add besser gleich .Text nehmen.
SQL-Code:
??
Delete FROM "Inventarverwaltung" WHERE Anlagegut.Inventarnummer
wie heißt die Tabelle nun? Ich vermute mal Anlagegut, dann muß es:
SQL-Code:
heißen.
Delete FROM Anlagegut WHERE Inventarnummer= ...
|
Re: Einen bestimmten Datenfeld in einer Datenbank auswählen?
Delphi-Quellcode:
irgentwie geht es einfach nicht ...schaut mal auf das Bild ob alle Einstellungen stimmenAdoqueryauswahl.SQL.Text('Delete FROM Anlagegut WHERE Inventarnummer = '+ QuotedStr(Editeingabe.text)); Adoqueryauswahl.ExecSQL; |
Re: Einen bestimmten Datenfeld in einer Datenbank auswählen?
Lese dir mal das Tut durch. Die OH würde aber auch schon reichen, daß man erkennt das .Text keine Methode sondern eine Eigenschaft ist!
Delphi-Quellcode:
Adoqueryauswahl.SQL.Text := 'Delete FROM Anlagegut WHERE Inventarnummer = '+
QuotedStr(Editeingabe.text); |
Re: Einen bestimmten Datenfeld in einer Datenbank auswählen?
Zitat:
|
Re: Einen bestimmten Datenfeld in einer Datenbank auswählen?
Es geht....Danke Leute
|
Re: Einen bestimmten Datenfeld in einer Datenbank auswählen?
Es geht....Danke Leute
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:39 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