AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi [mySQL]: Fehler in der Abfrage, aber wo?
Thema durchsuchen
Ansicht
Themen-Optionen

[mySQL]: Fehler in der Abfrage, aber wo?

Ein Thema von yankee · begonnen am 9. Mai 2004 · letzter Beitrag vom 11. Mai 2004
Antwort Antwort
Seite 2 von 3     12 3      
Robert_G
(Gast)

n/a Beiträge
 
#11

Re: [mySQL]: Fehler in der Abfrage, aber wo?

  Alt 9. Mai 2004, 17:56
Außerdem sollte es knallen, wenn sich dein DBGrid aktualisiert.
Schließlich liefert dein DELETE-Statement keine Ergebnismenge zurück, aber du lässt dieses Statement in der Query.

Ich habe wenig Erfahrung mit den DB Aware Kompos, aber das sollte IMHO gehen:
Delphi-Quellcode:
Var
  ActiveID :integer;
Begin
  ActiveID := ZQuery2.FieldByName ('id').AsInteger;

  With [DeineQueryKlasse].Create(self) Do
  Try
    Session := ZQuery2.Session; //kA wie das bei dem ZEOS-Zeugs heißt
    SQL.Text :=
      'DELETE FROM Bestellungen' + #10 +
      'WHERE DeinPrimKey = :i_PrimKey';
    // Werte an Query Parameter übergeben...
    ParamByName('i_PrimKey').AsInteger := ActiveID;
    ExecSQL;
  Finally
    free;
  End;
End;
  Mit Zitat antworten Zitat
Benutzerbild von yankee
yankee

Registriert seit: 10. Mär 2004
1.134 Beiträge
 
Lazarus
 
#12

Re: [mySQL]: Fehler in der Abfrage, aber wo?

  Alt 9. Mai 2004, 20:11
So funzt es:
Delphi-Quellcode:
var ITitel, ILehrer, IVerlag, IBestellnr:string;
    IPreis: Double;
    IAnzahl: Integer;
begin
    ITitel :=ZQuery2.fieldbyname('Titel').AsString;
    IAnzahl :=ZQuery2.fieldbyname('Anzahl').AsInteger;
    ILehrer :=ZQuery2.fieldbyname('Lehrer').AsString;
    IVerlag :=ZQuery2.fieldbyname('Verlag').AsString;
    IBestellnr :=ZQuery2.fieldbyname('Bestellnr').AsString;
    IPreis :=ZQuery2.fieldbyname('Preis').AsFloat;

    ZQuery2.SQL.Text :='DELETE FROM `bestellungen` WHERE `Titel` = :ITitel AND `Anzahl` =:IAnzahl AND `Lehrer` =:ILehrer AND `Verlag` =:IVerlag AND `Bestellnr` =:IBestellnr AND CONCAT( `Preis` ) =:IPreis LIMIT 1';
    ZQuery2.ParamByName('ITitel').Value :=ITitel;
    ZQuery2.ParamByName('IAnzahl').Value :=IAnzahl;
    ZQuery2.ParamByName('ILehrer').Value :=ILehrer;
    ZQuery2.ParamByName('IVerlag').Value :=IVerlag;
    ZQuery2.ParamByName('IBestellnr').Value :=IBestellnr;
    ZQuery2.ParamByName('IPreis').Value :=IPreis;
    ZQuery2.ExecSQL;
    LoadAlreadyOrdered;
Die Procedure LoadAlreadyOrdered läd einfach das DBGrid neu. Thx für eure Hilfe!!
Letzter Tipp: Drogen. Machen zwar nicht glücklich, geben einem aber wenigstens das Gefühl glücklich zu sein.

Have a lot of fun!
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#13

Re: [mySQL]: Fehler in der Abfrage, aber wo?

  Alt 10. Mai 2004, 06:32
Hai yankee,

warum machst Du es denn nicht über den Primärschlüssel (ID) der Tabelle
Bitte nicht falsch verstehen aber so wirst Du keine Freude an der DB-Programmierung haben
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Benutzerbild von yankee
yankee

Registriert seit: 10. Mär 2004
1.134 Beiträge
 
Lazarus
 
#14

Re: [mySQL]: Fehler in der Abfrage, aber wo?

  Alt 10. Mai 2004, 07:07
Das Problem dabei ist, dass ich die Daten IMMER nach Titeln sortiert ausgeben will. Und da fand ich esa ganz sinnig, alles dierekt richtig abzuspeichern, da ich so den Server ja auch Arbeit erspare...
Grundsätzlich könntest du aber recht haben.
Habe aber bis jetzt außer in Feinheiten (kürzere Abfragebefehle) noch keinen Vorteil gesehen...
Letzter Tipp: Drogen. Machen zwar nicht glücklich, geben einem aber wenigstens das Gefühl glücklich zu sein.

Have a lot of fun!
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#15

Re: [mySQL]: Fehler in der Abfrage, aber wo?

  Alt 10. Mai 2004, 07:30
Du speicherst ja nichts sonder möchtest einen Eintrag löschen. Und über einen Primärschlüssel ist es am sichersten dies zu machen. Denn der Server stellt sicher das jeder Datensatz eine eindeutigen ID hat. Somit ist es unmöglich versehentlich etwas falsches zu löschen.
Mit der Sortierung hat das ja nichts zu tun.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Benutzerbild von yankee
yankee

Registriert seit: 10. Mär 2004
1.134 Beiträge
 
Lazarus
 
#16

Re: [mySQL]: Fehler in der Abfrage, aber wo?

  Alt 10. Mai 2004, 10:32
Aber wenn ich ein Feld mit allem anspreche, ist das doch auch eindeutig, oder? Selbst wenn es zwei Felder gibt, die exakt gleich sind, dann löscht der Punkt LIMIT 1 nur eins...
Letzter Tipp: Drogen. Machen zwar nicht glücklich, geben einem aber wenigstens das Gefühl glücklich zu sein.

Have a lot of fun!
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#17

Re: [mySQL]: Fehler in der Abfrage, aber wo?

  Alt 10. Mai 2004, 10:51
Zitat von yankee:
...Selbst wenn es zwei Felder gibt, die exakt gleich sind, dann löscht der Punkt LIMIT 1 nur eins...
Und welches von beiden?
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
grayfox

Registriert seit: 22. Jan 2003
Ort: Litschau
173 Beiträge
 
Delphi 4 Standard
 
#18

Re: [mySQL]: Fehler in der Abfrage, aber wo?

  Alt 10. Mai 2004, 10:53
Zitat:
Selbst wenn es zwei Felder gibt, die exakt gleich sind
falls du mit 'feld' datensatz meinst, dann hast du ein ernstes design-problem

es gibt nichts eindeutigeres, um einen datensatz zu kennzeichnen, als einen primary key.
somit ersparst du dir den ganzen wust an unnötigen parametern.

mfg, stefan
  Mit Zitat antworten Zitat
Benutzerbild von yankee
yankee

Registriert seit: 10. Mär 2004
1.134 Beiträge
 
Lazarus
 
#19

Re: [mySQL]: Fehler in der Abfrage, aber wo?

  Alt 10. Mai 2004, 11:03
Ich habe diese Datensätze:

Bezeichnung User Ort

Baum DAU Dorf-Wald
Baum DAU Dorf-Wald

Wenn ich von den beiden Datensätzen nun den falsch lösche, würde doch keinem was auffallen, oder?

Aber im Grunde habt ihr Recht, mit 'ner ID wird's wohl leichter sein. Das mache ich das nächste mal machen...
Letzter Tipp: Drogen. Machen zwar nicht glücklich, geben einem aber wenigstens das Gefühl glücklich zu sein.

Have a lot of fun!
  Mit Zitat antworten Zitat
grayfox

Registriert seit: 22. Jan 2003
Ort: Litschau
173 Beiträge
 
Delphi 4 Standard
 
#20

Re: [mySQL]: Fehler in der Abfrage, aber wo?

  Alt 10. Mai 2004, 16:05
Zitat:
Ich habe diese Datensätze:

Bezeichnung User Ort
Baum DAU Dorf-Wald
Baum DAU Dorf-Wald
doch ein designproblem?
falls es sich um eine tabelle der registrierten user handelt schon.
bei einer anderen tabelle braucht man nur ein feld mit einem fremdindex einrichten, welches auf den eindeutigen eintrag in der usertabelle verweist.
na stell dir vor, der user Dau (ihr habt auch einen Dau? unserer heisst 'Leonhard Dau'. kein witz ) übersiedelt von Dorf-Wald nach Ackerstadt. das gibt jede menge aktualisierungen

mfg, stefan
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 15:54 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