Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Datenbank Einträge in Programmtabelle umordnen (https://www.delphipraxis.net/96439-datenbank-eintraege-programmtabelle-umordnen.html)

Postman1986 24. Jul 2007 16:29

Datenbank: MySQL • Version: 5.0.32 • Zugriff über: MyDAC

Datenbank Einträge in Programmtabelle umordnen
 
Erstmal hallo an alle, mein erster Eintrag hier im Forum, bisher hab ich eigentlich immer alles über die Suche gefunden :)

Bin leider noch ein Anfänger was Datenbanken (vor allem mit Delphi) anbetrifft und schon auf mein erstes großes Problem getroffen. Habe erfolgreich eine Datenbankverbindung mit MyDAC von Core Lab hergestellt und meine Datenbank ausgelesen ( Connect -> Query -> Datasource -> DbGrid)

Nun stehen die Daten alle im DbGrid, leider kann ich die Daten so nicht 1:1 in meinem Programm übernehmen: Ich will eine übersichtliche Tabelle mit nur einigen Spalten aus dem ursprünglichen DbGrid. Die kompletten Details sollen in verschiedenen Edit-Feldern angezeigt werden, sobald der User sich für einen Eintrag in der Tabelle entschieden hat.

Wie stellt man das am besten an?
Ein anderes Problem was ich zur Zeit habe: Ich bekomme nicht einen einzigen Wert aus dem DbGrid in eine Variable gespeichert, geschweige denn eine visuelle Komponente.

Mein Code:
Delphi-Quellcode:
  try
    MydacConnect.Connected := true; // is das überhaupt nötig?
    MyDacQuery.SQL.Text := 'SELECT * FROM ma_archiv_1';
    MyDacQuery.Open;
    MyDataSource1.DataSet := MyDacQuery;
    SgDB.DataSource := MyDataSource1;
  except
    showmessage('query fehler');
  end;
  SgMain.Cells[1,1] := TStringgrid(MyDataSource1).Cells[1,1]; // produziert eine AccessViolation.
Schonmal danke im voraus! :D

mkinzler 24. Jul 2007 17:35

Re: Datenbank Einträge in Programmtabelle umordnen
 
Du kannst bei einem DBGrid auch die anzuzeigenden Spalten auswählen.

DeddyH 24. Jul 2007 18:35

Re: Datenbank Einträge in Programmtabelle umordnen
 
Hallo, zuerst einmal herzlich Willkommen in der Community :cheers:
Wieso hast Du denn eine DBGrid auf dem Formular und möchtest die Daten in einem StringGrid darstellen? Da Du die Daten über eine Query holst, würde ich an Deiner Stelle deren SQL so formulieren, dass die Daten sofort "passen".
SQL-Code:
SELECT * FROM ma_archiv_1
Dieses Statement holt Dir die gesamte Tabelle (also alle Felder und alle Datensätze) unsortiert. Vielleicht formulierst Du das besser so:
SQL-Code:
SELECT Feld1, Feld2, Feld3... FROM ma_archiv_1
WHERE Feld1 < 100
ORDER BY Feld1
Das würde Dir alle Datensätze liefern (und zwar nur die angegebenen Felder), die in Feld1 einen Wert kleiner als 1000 aufweisen, und zwar nach Feld1 aufsteigend sortiert. Solltest Du Dich mit SQL nicht auskennen, helfen wir Dir gerne weiter.

Postman1986 24. Jul 2007 18:43

Re: Datenbank Einträge in Programmtabelle umordnen
 
Erstmal danke für die Begrüßung :)

Naja im Grunde brauche ich schon alle Daten aus dem Query, in der Übersicht selber sollen allerdings nur etwa 4 von 10 Spalten sichtbar sein, die wichtigsten Infos sozusagen. Will man dann nähere Informationen zu einem Eintrag, soll es möglich sein, auf den jeweiligen Eintrag in der Übersicht-Tabelle zu klicken und eine Reihe von Edit-Feldern wird mit den restlichen "unwichtigeren" Informationen aufgefüllt. Dann soll der User in den jeweiligen Edit-Feldern Änderungen machen und diese abspeichern können.

Dazu muss aber doch die Datasource alle relevanten Informationen enthalten, damit nicht nur die Tabelle, sonder auch die Editfelder gefüllt werden können, oder liege ich da falsch?

mkinzler 24. Jul 2007 18:47

Re: Datenbank Einträge in Programmtabelle umordnen
 
Wie schon geschrieben, kannst du ja durch manuelles Anlegen von Spalten (Columns) im Grid die anzuzeigenden Spalten und deren Reihenfolge auswählen.

Postman1986 24. Jul 2007 18:50

Re: Datenbank Einträge in Programmtabelle umordnen
 
Gibt's da auch nen Tipp, mit welcher Eigenschaft? :stupid:

Sowas wie OnDrawCell oder geht's auch einfacher?

mkinzler 24. Jul 2007 18:51

Re: Datenbank Einträge in Programmtabelle umordnen
 
Einfach Doppelklick auf Grid und Spalten auswählen

Postman1986 24. Jul 2007 18:54

Re: Datenbank Einträge in Programmtabelle umordnen
 
Na das nenn ich mal einfach, dank dir! :-D


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:01 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz