![]() |
Datenbank: Mybase • Zugriff über: DbGrid
Liste in ein DBGrid schreiben
Hallo,
ich benutze Mybase und habe bei mir im Programm einmal ClientDataSet, DataSource und DBGrid. Speichern und laden funktioniert einwandfrei. Manuell (im DBGrid) kann ich ja auch schreiben. Ich habe jedoch einen Extra-Liste, die ich auch so in einzelne Strings teilen kann, jedoch will ich diese Daten in das DBGrid schreiben um es dann ganz normal zu speichern. Ich habe jedoch überhaupt keine Ahnung wie ich die einzelnen Felder ansteuern kann. Es gibt solche Eigenschaften Fields, wenn ich jedoch folgendes Schreibe dbgrid1.fields[2]:='hallo'; dann erscheint als Fehlermeldung: [Fehler] Unit1.pas(49): Einer Nur-Lesen Eigenschaft kann kein Wert zugewiesen werden. Wie kann ich da jetzt etwas in das DB-Grid schreiben, so dass ich auf einen Knopf drücke und es sich dann füllt. Danke im Voraus. :) |
Re: Liste in ein DBGrid schreiben
Ich editiere zwar nie in DBGrids, aber geht es evtl. so?
Delphi-Quellcode:
[edit] Das setzt aber voraus, dass das DataSet zuvor in den Edit-Modus versetzt wurde. [/edit]
dbgrid1.DataSource.DataSet.fields[2]:='hallo';
|
Re: Liste in ein DBGrid schreiben
Ich glaube, hier liegt eher ein grundlegendes Verständnisproblem zum Umgang mit Datenbanken vor :zwinker:
Schau Dir einfach mal entsprechende ![]() |
Re: Liste in ein DBGrid schreiben
Zitat:
Wenn ich diese Zeile nehme erscheint folgende Fehlermeldung: [Fehler] Unit1.pas(49): Inkompatible Typen: 'TField' und 'String' Und was ist mit dem letzten Satz gemeint? :?: Zitat:
|
Re: Liste in ein DBGrid schreiben
Sorry, mein Versäumnis.
Delphi-Quellcode:
Achja, schau auch mal
dbgrid1.DataSource.DataSet.fields[2].AsString:='hallo';
![]() |
Re: Liste in ein DBGrid schreiben
Zitat:
Anbei wie kann man eigentlich die Zeilenanzahl des DBGrids erhöhen? Ich kann nur die Spalten einstellen, aber "Rows" finde ich nirgendwo. |
Re: Liste in ein DBGrid schreiben
Ein DBGrid dient lediglich der Darstellung einer Ergebnismenge, die ihm zugewiesen wurde. Die Schnittstelle zwischen dieser Ergebnismenge (z.B. einer TTable oder einer TQuery etc.) bildet eine DataSource. Wenn sich nun also die Darstellung ändern soll, musst Du die zugrundeliegenden Daten ändern.
|
Re: Liste in ein DBGrid schreiben
Ähm, ich kann doch die Daten durch eintippen in das DBGrid ändern, also wenn ich etwas in das DBGrid schreibe und es dann speichere sind die Daten geändert, oder? Oder wie war das jetzt gemeint? :?:
|
Re: Liste in ein DBGrid schreiben
Das war nur als Veranschaulichung der Zusammenhänge gemeint. Aber wie die zitierte Fehlermeldung bereits sagt (und ich in meiner ersten Antwort schon angemerkt hatte) musst Du erst in den Editiermodus wechseln. Versuch es mal so:
Delphi-Quellcode:
dbgrid1.DataSource.DataSet.Edit; //in den Editiermodus wechseln
dbgrid1.DataSource.DataSet.fields[2].AsString:='hallo'; //Daten ändern dbgrid1.DataSource.DataSet.Post; //Änderungen speichern |
Re: Liste in ein DBGrid schreiben
Ah, es klappt. Vielen Dank.
Doch eine Frage bleibt noch. Wie bekomme ich mehr Zeilen hin? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:07 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