Entwickler-Ecke

Datenbanken - DBGrid + Mysql


dkx - Mi 29.09.04 16:37
Titel: DBGrid + Mysql
Ich versuche jetzt schon seit Stunden meine MySQL-Tabellen über ein DBGrid anzeigen zu lassen - ohne Erfolg.
Also, mit einer SQLConnection baue ich die Verbindung auf und mit SQLQuery sende ich SQL-Anfragen.
Nun habe ich die Komponenten DBGrid1 und DataSource1 hinzugefügt und folgende Eigenschaften gesetzt:
---
DataSource1:
Dataset = SQLQuery
---
DBGrid1:
DataSource = DataSource1

Wenn ich nun eine SELECT-Anfrage mit SQLQuery sende (also während der Programmlaufzeit), dann kommt eine Fehlermeldung:
"Diese Operation ist bei einer unidirektionalen Datenmenge nicht gestattet."

Ich schaffe es einfach nicht die Daten im DBGrid anzuzeigen :-(
Was mache ich nun falsch?

Anton


jasocul - Mi 29.09.04 16:46

Ich vermute eine "fehlerhafte" SQL-Anweisung. Versuche mal ein ganz einfaches Select (select * from Tabelle).
Sollte der Fehler bleiben, dann zeig doch mal ein bisschen Source.


dkx - Mi 29.09.04 20:34

Also die SQL-Anweisung ist eigentlich schon so simpel wie irgendwie möglich...:


Delphi-Quelltext
1:
SQLQuery1.SQL.Text:='Select * from `anton`;';                    



Liegt das Problem evt. daran, dass die SQLQuery Komponente nicht mit DataSource zusammenarbeitet?
Weil in einigen Beispielen wurde die normale TQuery-Komponente verwendet.
Anton


jasocul - Mi 29.09.04 20:40

Ich gestehe ein, dass ich die SQLQuery-Komponente nicht kenne.

Ändere mal das Statement wie folgt:

Quelltext
1:
SQLQuery1.SQL.Text:='Select * from anton;';                    


Wenn das nicht funktioniert, lass auch noch das Semikolon in der Anweisung weg.
Ich benutze überwiegend Oracle. Dort wird der Delimiter in einfachen SQL-Abfragen nicht verwendet.


dkx - Mi 29.09.04 22:39

das ändert leider auch nichts.
ich hab wie gesagt schon mit der SQLQuery Komponente und SQLConnection gearbeitet, allerdings habe ich die Daten immer nur im StringGrid anzeigen lassen. Jetzt plane ich jedoch ein Projekt, bei dem ich mir das DBGrid besser vorstellen könnte, da mir dies nicht nur als eleganter erscheint, sondern man bei dieser Komponente auch in einzelnen Zellen einfach die Werte ändern kann - gibt es sonst eine StringGridähnliche Komponente die das kann?


jasocul - Do 30.09.04 08:19

Ich bin ja so ein Idiot.
Setz doch mal unidirectional in der SQLQuery-Komponente auf False.


dkx - Do 30.09.04 14:25

da finde ich leider keine Einstellung im Objekt-Inspektor wo ich das einstellen könnte. Wo macht man das?


jasocul - Do 30.09.04 14:30

Ich habe hier die Komponente SQLQuery nicht zur Hand, aber verwende zwei andere Query-Komponenten. Bei denen geht das im OI.
Kannst du das vielleicht direkt im Source einstellen (vor dem Open)?
Kennt hier sonst noch jemand die Komponente ??? :?!?: