Entwickler-Ecke

Datenbanken - Ich bin am verzeweifeln ...


Beacon - Di 30.11.10 22:34
Titel: Ich bin am verzeweifeln ...
Hallo,

Vielleicht kann mir ja jemand helfen. Ich habe jetzt meine MySQL DB COnnection soweit hinbekommen, dass die Daten schön im DBGrib ankommen (Setup siehe Screenshot).
Nun Frage ich mich allerdings, wie kann ich zB das initiale Statement des Datasets ändern? EGal, was ich mache, entweder bekomme ich irgendwelche dubiosen Fehlermeldungen, oder es passiert garnichts.

Ich würde gern einfach beim Buttonklick haben, dass statt "Select * from wp_terms", welches momentan im Dataset hinterlegt ist, ein "Select * from wp_posts" ausgeführt wird, und sich das grid dann auch ändert. Hab ich da den falschen Ansatz? Ich raffs einfach nicht :(


bummi - Di 30.11.10 23:02

Hast Du Feldkomponenten veröffentlicht...
Hast Du die Datasets vorher geschlossen...
Wie änderst Du den SQL...
Wie heißen die Fehler (man kann den Text im Fehlerfenster auch per STRG +C kopieren) ....


jasocul - Mi 01.12.10 09:33

user profile iconbummi hat folgendes geschrieben Zum zitierten Posting springen:
Hast Du die Datasets vorher geschlossen...

Und vor allem nach der Änderung des Statements wieder geöffnet. Die Änderung des Statements alleine hilft noch nicht.


Beacon - Mi 01.12.10 11:47

Hab ich so ausprobiert...

Dataset geschlossen, Statment geändert, wieder geöffnet. Sogar Datagrid refreshed, aber es hatte keinerlei auswirkung.
Habs jetzt mal mit SQLQuery gemacht, und da gings auf anhieb, ohne gross was schliessen zu müssen, etc


jaevencooler - Mi 01.12.10 12:27

Moin,

also folgende Reihenfolge solltest Du einhalten:

Dataset.DisableControls; // Schneller bei datensensitiven elementen

Dataset.close;
Dataset.sql.clear; !!
Dataset.sql.add(Neues SQL Statement)
Dataset.open;

Dataset.EnableControls; // Nur anwenden wenn Du vorher DisableControls benutzt hast

So sollte es funtionieren.


Cu Michael


jaenicke - Mi 01.12.10 12:53

user profile iconjaevencooler hat folgendes geschrieben Zum zitierten Posting springen:
Dataset.sql.clear; !!
Dataset.sql.add(Neues SQL Statement)
Besser gleich:

Delphi-Quelltext
1:
DataSet.SQL.Text := 'Neues SQL Statement';                    
Denn es wird AFAIR beim stückweisen Hinzufügen mit Add z.B. bereits ausgewertet, ob Parameter enthalten sind. Deshalb geht es schneller und vor allem sicherer, wenn man das komplette Statement direkt zuweist.


jaevencooler - Mi 01.12.10 14:27

Moin,

user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
user profile iconjaevencooler hat folgendes geschrieben Zum zitierten Posting springen:
Dataset.sql.clear; !!
Dataset.sql.add(Neues SQL Statement)
Besser gleich:

Delphi-Quelltext
1:
DataSet.SQL.Text := 'Neues SQL Statement';                    
Denn es wird AFAIR beim stückweisen Hinzufügen mit Add z.B. bereits ausgewertet, ob Parameter enthalten sind. Deshalb geht es schneller und vor allem sicherer, wenn man das komplette Statement direkt zuweist.



und was macht Dataset.sql.clear :roll:

Cu Michael


zuma - Mi 01.12.10 14:41

user profile iconjaevencooler hat folgendes geschrieben Zum zitierten Posting springen:


und was macht Dataset.sql.clear :roll:

Cu Michael


Es macht den Sourcecode länger ;)


jaenicke - Mi 01.12.10 16:48

user profile iconjaevencooler hat folgendes geschrieben Zum zitierten Posting springen:
und was macht Dataset.sql.clear :roll:
Es löscht den bisherigen Inhalt, woraufhin das erste Mal die (zugegebenermaßen kurze) Analyse gestartet wird, und dann beim Add wird diese erneut gestartet.


Narses - Mi 01.12.10 18:34

Moin!

Bitte ändere den Titel des Topics, da er wenig über das eigentlich Thema verrät. Hier der entsprechende Absatz aus den Richtlinien [http://www.entwickler-ecke.de/richtlinien.html]:
1.2 Beiträge:
Bitte formuliere den Betreff Deiner Beiträge so, dass andere Mitglieder anhand dieser bereits das eigentliche Thema festmachen können. Beiträge wie etwa "Eine Anfängerfrage" oder "Weiß jemand, wie das geht?" lassen den Leser im Unklaren darüber, was das Thema der Diskussion ist.[...]
Einfach oben bei Deinem ersten Beitrag auf user defined image oder user defined image klicken und den Titel ändern. Danke Dir!

cu
Narses