![]() |
Datenbank: xml auslesen • Zugriff über: das ist mein problem
Strings aus dbgrid auslesen
hi
hab da n kleines problem und zwar hab ich bei meinem prog im hintergrund eine dbgrid in die werte eingetragen werden diese will ich jetzt auslesen und in einer listbox ausgeben lassen mein problem ist dass ich nicht weiß wie ich auf die felder bzw die strings in den feldern zugreife hatte an ein array gedacht aber das klappt ni wirklich und wenn ich die felder anspreche kommt immer das string und TField nicht kompatibel sind was ja auch nur logisch ist ^^ danke schon mal im voraus :coder2: The_Doomed |
Re: Strings aus dbgrid auslesen
Da ein DBGrid nur eine Visualisierung des dahinterliegende DataSet ist, würde ich die Informationen dort auslesen.
Delphi-Quellcode:
DBGrid.DataSource.DataSet
|
Re: Strings aus dbgrid auslesen
dann bleibt aber trotzdem das problem wie ich dann auf die strings zugreife welche dort gespeichert sind
|
Re: Strings aus dbgrid auslesen
1. Sind es Werte (konnen neben Strings auch Integer, Floats usw. sein)
2. Mit
Delphi-Quellcode:
kann auf den Wert des Feldes mit dem Name zugegriffen werden
DBGrid.DataSource.DataSet.FieldByName('<Feldname>').Value
|
Re: Strings aus dbgrid auslesen
danke klappt wunderbar
ps klar sind es werte, in meinem programm halt aber eben strings und es hätte ja sein können dass es beim auslesen unterschiede gibt deswegen hab ich strings geschrieben |
Re: Strings aus dbgrid auslesen
noch mal ne frage wie kann ich strings bzw. werte aus editfeldern in diese DBGrid übertragen
|
Re: Strings aus dbgrid auslesen
Auch in dem man sie in das DataSet schreibt.
|
Re: Strings aus dbgrid auslesen
wies sieht der befehl dazu aus
DBGrid.DataSource.Dataset.??? |
Re: Strings aus dbgrid auslesen
Append zum Anlegen, Edit zum Ändern. Zum Schluss mit Post schreiben.
|
Re: Strings aus dbgrid auslesen
Delphi-Quellcode:
DBGrid.DataSource.Dataset.Append;
DBGrid.DataSource.Dataset.FieldByName('<1. Feld'>).Value := <1. Wert>; ... DBGrid.DataSource.Dataset.Post; |
Re: Strings aus dbgrid auslesen
danke
|
Re: Strings aus dbgrid auslesen
hab noch mal ne frage ^^
und zwar will ich dass er den aus der DBGrid gelesenen Wert vorher noch mit dem list eintrag vergleicht und wenn er doppelt ist ihn nicht hinzufügt sondern erst fragt weiteres problem ich möchte dass die listeinträge ein TObject ranbekommen der mit einem autoinc eintrag aus dem DBGrid identisch is um einen rückbezug zu haben aber autoinc und integer verstehen sich nicht
Code:
procedure TForm1.Button3Click(Sender: TObject);
var n,i:integer; f:array [0..100] of string; begin for n := 1 to Listbox1.Count +1 do begin if DBGrid1.DataSource.DataSet.FieldbyName('Name').Value=f[i] then //Vergleich von Name aus liste und DBGrid funzt nicht edit2.text:='1'; end; if edit2.Text='1' then begin form2.showmodal; end else Listbox1.Items.Addobject(DBGrid1.DataSource.DataSet.FieldbyName('Name').Value, Tobject(DBGrid1.DataSource.DataSet.FieldbyName('ID').Value)); // anfügen eines TObjects welches den wert von ID aus dem DBGrid liest funzt nicht end; |
Re: Strings aus dbgrid auslesen
Dann wäre DataSet.Lookup() aber besser.
|
Re: Strings aus dbgrid auslesen
das beantwortet weder meine frage vollständig noch hilft es mir viel ^^
|
Re: Strings aus dbgrid auslesen
StrToInt() bzw. TryStrToInt()
-IndexOf ersetzt Schleife über Eintraäge |
Re: Strings aus dbgrid auslesen
hm na ja bei der schleife ist das prob dass der die irgendwie ni vergleicht
|
Re: Strings aus dbgrid auslesen
Ich würde statt einem Array ein Stringliste verwenden und dann .IndexOf verwenden.
|
Re: Strings aus dbgrid auslesen
aber mit ner listbox geht ja indexof auch habs jetzt kapiert worauf du hinauswolltest muss jetzt noch testen obas das mit dem strtoint bei der ID klappt dann wärs perfekt
|
Re: Strings aus dbgrid auslesen
Wo kommen die werte her?
|
Re: Strings aus dbgrid auslesen
na das sind autoinc werte die schreibt die dbGrid selbst aber es scheit zu klappen
(sind einfach nur zahlen, aber konnte sie halt ni als integer laden wusste aber auch ni dass es strings sind) das vergleichen klappt übrigens danke gibts ne procedure die dann beginnt wenn ich ein list item selecte also auswähle? |
Re: Strings aus dbgrid auslesen
Dann würde ich eine Lookup-Kompo nehmen.
|
Re: Strings aus dbgrid auslesen
wie funktioniert die ?
|
Re: Strings aus dbgrid auslesen
.ListSource auf DataSource setzten und bei .ListField anzuzeigendes Feld, bei .KeyField zu übernehmendes Feld auswählen.
|
Re: Strings aus dbgrid auslesen
und was soll mir das bringen ?? ich seh grad nich durch
|
Re: Strings aus dbgrid auslesen
Ich versteh auch nicht ganz was du willst.
Erst habe ich verstanden, dass du ermitteln willst, ob ein Wert in der Tabelle schon existiert (Lookup ist dann erfolgreich) Dann sah es für mich aus, als ob es um sich um verhandene Werte einer weiteren Tabelle jandelt, dann wäre eine Lookup-Komponente die Lösung; hierbei bekommst du dessen Werte zur Auswahl. |
Re: Strings aus dbgrid auslesen
nee also ich hab eine DBGrid da werden werte reingespeichert
so diese Werte werden dann in eine listbox übertragen - dabei soll ermittelt werden ob der wert der übertragen wird schon vorhanden ist - das funzt jetzt prima außerdem soll dem listboxeintrag eine art platznummer zugeteilt werden welche mit der in der DBGrid übereinstimmt so das klappt jetzt alles mein prob jetzt besteht darin dass ich jetzt diesen rückbezug herstellen muss das prog soll jetzt also wenn ich auf einen listbox eintag klicken eine procedure beginnen - 1. prob kp wie ich das hinbekomme dass er die procedure ausführt wenn ich ein item selecte (in der listbox) 2.Prob er soll anhand der vorher zugewiesenen platznummer die restlichen werte aus der DBGrid lesen und in edits oder labels wieder ausgeben frage ist jetzt also was ich am besten als platznummer nehme (momentan hab ich TObject(StrToInt(DBGrid...FildByname('ID').value)) das scheint auch zu funzten man muss jetzt im prinzip diese Tobject auslesen und in der DBGRid den wert der diese zugewiesene ID hat suchen |
Re: Strings aus dbgrid auslesen
Sollen nur bestimmte Werte oder alle übertragen werden?
Bei allen wäre doch eine DBLookupListBox ideal. |
Re: Strings aus dbgrid auslesen
na ja es soll wenn ich ein listbox.item selecte nur von diesem einen der wert (Tobject) ermittelt werden z.B 5
und dann in der dbGrid gesucht werden (würde bedeuten dass der eintrag an der 5 stelle steht) und die zeile (row) worin er sich befindet markiert werden theoretisch könnte auch gleich die zahl aus dem TObject als zeilennummer in der DBGrid verwendet werden nur weiß ich nicht wie ich das mache dass er in der Grid die richtige zeile markiert und wie ich es hinbekomme dass er das jedes mal macht wenn ich in der listbox die auswahl ändere (müsste sowas wie OnChangeSelction geben) |
Re: Strings aus dbgrid auslesen
Wir drehen uns im Kreis:
-Wo kommen die Werte der ListBox her? -Sind diese Werte mit den des Grids identisch? |
Re: Strings aus dbgrid auslesen
also die tobjcts kommen von der DBGrid spalte ID sind also mit denen der listbox identisch
allerdings kommen die elemente in der listbox durch sortieren durcheinander behalten aber ihre werte |
Re: Strings aus dbgrid auslesen
Dann schau die die Lookup-ListBox nochmal genau an :zwinker:
|
Re: Strings aus dbgrid auslesen
ok also das was dazu in der hilfe steht klingt schon mal
vielversprechend aber das wir trotzdem wieder ein akt da ich das erste mal sowas programmiere ^^ also danke erstmal ich meld mich wenn ich noch mal fragen haben sollte ^^ :bounce1: :bouncing4: :freak: |
Re: Strings aus dbgrid auslesen
so also hab das jetzt mal mit ner lookoutlist probiert das klappt auch
nur hab ich da jetzt festgestellt das ich jetzt werder das prüfen auf doppelte einträge noch das sorted=true verwenden kann und dann muss es ja trotzdem noch irgendwie gehen dass ich die anderen werte sofort angezeigt bekommen wenn ich ein item selecte |
Re: Strings aus dbgrid auslesen
??? wäre wichtig
|
Re: Strings aus dbgrid auslesen
Mir ist leider immer noch nicht klar, was du eigentlich vor hast.
|
Re: Strings aus dbgrid auslesen
Zitat:
|
Re: Strings aus dbgrid auslesen
fast ich will dass wenn ich in einer list (lookuplist) einen eintrag auswähle er in labels die anderen sachen aus der dbgrid die zu diesem wert gehören anzeigt z.B. ich klicke einen namen an und das prog liefert den nachnamen und die adresse
diese wiederum befindet sich in der dbgrid in der gleichen zeile wie der name |
Re: Strings aus dbgrid auslesen
Hab ich zwischendurch auch mal gedacht
Zitat:
|
Re: Strings aus dbgrid auslesen
ja aber genau das is ja mein prob was muss ich benutzten damit er bei einer änderung reagiert
außerdem hab ich ja noch das prob dass er meine lookupliste nicht sortiert und dass ich den algo fürs überprüfen ob ein eintrag schon vorhanden is ni mehr verwenden kann |
Re: Strings aus dbgrid auslesen
-onClick
-Die Einträge im Lookup sind sortiert, wenn die Datenmenge, die dahinterliegt, sortiert ist. -Locate auf Datenmenge |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:54 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