Entwickler-Ecke
Datenbanken - DBGrid einzelne felder...
Luncustaf - So 19.01.03 03:24
Titel: DBGrid einzelne felder...
...in verschiedenen spalten füllen.
hi ich bin irgendwie zu doof dazu hab nu alles ausprobiert und nichts geht :(
wie bekomm ich die datenaus ner datenbank in nen dbgrid? :(
hoffe auf hilfe.
thx.
gr€€tz
Luncustaf - So 19.01.03 10:41
hi grayfox,
vielen dank für die tuts haben mir sehr geholfen :) nur hab ich noch das problem das es bei den TColumns keine eigenschaft datafield gibt.
wo ich angeben kann welches feld angezeigt werden soll :( kannst du mir da vllt auch nochmal helfen :(
thx
gr€€tz
bis11 - So 19.01.03 10:45
Hi,
wenn Du die Komponente TQuery benutzt, kannst Du durch den SQL-Befehl
Quelltext
1:
| SELECT feld1,feld2,feld3 FROM Tabelle |
benutzen und so dir nur bestimmte Felder aus der Datenbank anzeigen lassen. Bei der Komponente TTable weiß ich das garnicht mehr, da ich die überhaupt nichtmehr benutze. 8)
Luncustaf - So 19.01.03 10:50
jo das mit dem sql weis ich mein code sieht so aus
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| sqlq.Sql.Clear; sqlq.Sql.Add('SELECT Name FROM user'); sqlq.Open; while not sqlq.Eof do begin [color=red]frmh_gridf.Columns[0].FieldName := sqlq.FieldByName('Name').AsVariant;[/color] sqlq.Next; end; sqlq.Close; |
die rote zeile ist mein problem - ich weis net wie ich die einzelnen der felder der columns füllen kann :(
gr€€tz
grayfox - So 19.01.03 10:53
bitte, bitte. gern geschehen! :)
aus der OH von Delphi:
| Zitat: |
Jede TDBGridColumns-Komponente enthält eine Kollektion von TColumn-Objekten in einem Datengitter (TDBGrid). TDBGridColumns verwaltet einen Index der Spalten im Array Items. Die Eigenschaft Count enthält die Anzahl der Spalten in der Kollektion. Während des Entwurfs können im Spalteneditor des Datengitters Spalten hinzugefügt, entfernt oder geändert werden.
|
einfach das TDBGrid doppelklicken, doppelklick auf Columns und du kannst schon die spalten anlegen und bearbeiten, die du im grid anzeigen willst
mfg, stefan
bis11 - So 19.01.03 10:56
Hi,
und wenn Du mal die while-Schleife ganz wegläßt ? Du mußt aber dazu das DBGrid mit der Datasource verbunden haben und die Datasource mit der TQuery, so wie es grayfox beschrieben hat.
grayfox - So 19.01.03 11:20
luncustaf, das grid übernimmt die namen aus der tabelle automatisch, dazu brauchst das
Quelltext
1:
| frmh_gridf.Columns[0].FieldName := sqlq.FieldByName('Name').AsVariant; |
nicht. ein
SELECT * from 'tabellenname' reicht vollkommen aus, um die tabelle anzuzeigen...
warum verwendest überhaupt 'variant'? ist dir der feldtyp nicht bekannt?
es geht doch schneller, wenn du gleich den richtigen typen angibst, als wenn delphi die typen erst umwandeln muss :wink:
mfg, stefan
Luncustaf - So 19.01.03 13:55
hi,
thx für eure antworten.
ich hab das variant genommen weil ich nen bissrl rumprobiert habe das hat aber net gefunkt stand halt gerade so da wo ich den post gemacht habe - wenn ich das mit dem stern mache funktioniert das auch net :(
ich weis auch net
Quelltext
1: 2: 3: 4:
| sqlq.Sql.Clear; sqlq.Sql.Add('SELECT * FROM user'); sqlq.Open; sqlq.Close; |
ich hab das nun so dastehen aber da regt sich nix - woher weis das grid in welche spalte es welche datensätze schreiben muss? :(
ich blick diese komponente net :(
gr€€tz
grayfox - So 19.01.03 14:15
hast in der TQuery den 'Databasename' ausgefüllt?
entweder einen alias oder den verzeichnisnamen?
dann deaktivier deinen code mal
und trag in der TQuery bei der eigenschaft 'SQL'
| Zitat: |
| SELECT * from den_namen_deiner_tabelle_ohne_punkt_endung |
wenn du nun das property active auf true stellst, dann sollte dein grid bereits im entwurfsmodus gefüllt werden.
hast du ganz sicher bei der TDataSource als 'dataset' den namen deiner query eingetragen? und beim grid steht auch als datasource der name deiner datasource?
das grid weiss deshalb welche felder es anzeigen soll, weil du es ihm sagst. '*' heisst 'alle felder'...
du kannst ja auch sagen 'SELECT zuname, vorname FROM adressen' zb...
mfg, stefan
ps: hast dir schon einige beiträge im forum über queries durchgelesen? vielleicht kommst so auf die lösung?
grayfox - So 19.01.03 14:35
komisch, bei mir tut sich was :)
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| procedure TForm1.AnzeigeBtnClick(Sender: TObject); begin Query1.Close; Query1.Sql.Clear; Query1.Sql.Add('SELECT * FROM tblKontakt'); Query1.Open; end;
procedure TForm1.EndeBtnClick(Sender: TObject); begin Query1.Close; close; end; |
ich befasse mich zwar erst seit heute 10 uhr vormittags mit SQL, vermute aber stark, dass dein
sqlq.Close die query schon wieder schliesst, bevor du sie noch sehen kannst ;) was meinst du?
mfg, stefan
Luncustaf - So 19.01.03 14:35
hmm jetzt gehts auf einmal
*komisch :()*
naja egal trotzdem nen dickes thx :) @ query's damit weis ich schon umzugehen hab schonmal ne db anwendung geschrieben nur das grid noch nie verwendet - trotzdem nen dickes thx an dich und bis11 :)
gr€€tz
grayfox - So 19.01.03 14:51
na gott sei dank, dass es endlich klappt :wink:
und wo lag jetzt der fehler? hattest nicht alle sources, pfade, etc eingetragen?
ich bin bis heute immer mit tables ausgekommen, aber jetzt weiss ich auch, wie man mit queries hantiert *gg*
mfg, stefan
Luncustaf - So 19.01.03 15:17
der fehler lag da das man das query bei active auf true machen muss - da reicht nen open close net aus :(
gr€€tz
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!