SQLQuery + TDBGrid



  • Gehen tut alles, du mußt es nur programmieren.
    Wenn du die Daten beim Select aber nicht mit angibst, dann sind sie auch nicht in der ergebnismenge enthalten. Du könntest einen weiteren SQL-Select mit einer anderen Query machen, die nicht mit dem DBGrid verbunden ist, und dir da die Daten rausholen.
    Eine Alternative wäre, beim ursprünglichen Select doch wieder alle Daten zuzulassen, die nicht benötigten Spalten im Grid aber auszublenden.



  • Hallo

    klar geht das. Du must es nur selber programmieren.

    Lösung eins : Du baust auch die zusätzlichen Felder in die Ergebnismenge mit ein, aber diesmal sorgst du über die Eigenschaft TDBGrid::Columns dafür, das im Grid nur die gewünschten Daten stehen. Dann kannst du einfach weitere DB...-Controls an die Datasource anhängen, um die restlichen Daten des ausgewählten Datensatzes anzuzeigen.

    Lösung zwei : Du fragt auch ein eindeutiges ID-Feld mit ab (autoincrement?), mit dem du den ausgewählten Datensatz in der DataSource bestimmen kannst. Dann kannst du nach jedem Klick weitere Daten nachladen.

    /Edit : Zu langsam ... aber gut zu sehen das Braunstein und ich gleicher Meinung sind 🙂

    bis bald
    akari



  • ok ein 2ter query der alles abruft ist vorhanden, eindeutige ID auch is ja wichtig 😉
    also muss ich quasi nur eine neue Form erstellen mit button, AnzeigeItems der restlichen daten und die form im OnCellClick ereignis aufrufen un das feld mit übergeben auf welches geklickt wurde!Soweit richtig?
    mensch die 2jahre ohne schulungen machen sich gerade bemerkbar 😉



  • Da gibt es diverse Möglichkeiten. Kommt drauf an, wie die jetzige Struktur ist. Wo ist denn das zweite Query definiert? Ist es schon geöffnet? Enthält es schon den richtigen Datensatz?



  • der query für TDBGrid wird gleich zu anfang geladen un mit daten gefüttert, den 2ten würde ich auf die Form setzen und füllen wo die restlichen daten ausgegeben werden dann müsste ich lediglich die id übergeben danach suchen lassen und die dazugehörigen Daten ausgeben... denk ich zumindest praxis un theorie ist so ein zweischneidiges schwert



  • Spricht nichts dagagen, das so zu machen.



  • mh soweit sogut wie kann man eigentlich daten beim tdbgrid ausblenden weil die id brauch ich ja unbedingt und vorallem wie hol ich die am ende aus dem grid wieder heraus wenn da von mir aus 20 einträge sind?



  • Hallo

    in der DataSource ist immer der ausgewählte Datsnatz aktiv, du kannst also mit FieldByName auf die Werte zugreifen. Alles was du brauchst ist ein ID-Feld, das in dem DBGrid nicht angezeigt wird.

    Das Grid sollst du nicht ausblenden, sondern einfach ein neues, modales Fenster mit den Detailwerten öffnen.

    bis bald
    akari



  • heckticker schrieb:

    ... wie kann man eigentlich daten beim tdbgrid ausblenden ...

    Die Frage ist doch hoffentlich nicht ernst gemeint? Wenn doch solltest du nochmal genau lesen was Akari/Braunstein geschrieben haben

    heckticker schrieb:

    ...vorallem wie hol ich die am ende aus dem grid wieder heraus wenn da von mir aus 20 einträge sind?

    DBGrid1->DataSource->DataSet->Fields->Fields[0]->AsInteger;
    

    wenn z.B. die 0. Spalte die ID ist

    [Edit] etwas zu langsam..



  • sry linnea ich gebs ja zu wer lesen kann ist klar im vorteil naja tschuldigung halt übergabe klappt einwandfrei und das id feld ausblenden auch !

    Danggeschön



  • mit was für einem package greiffst du auf die sql-datenbank zu?
    ginge das auch wenn die Datenbank im Internet ist??

    Andere können natürlich auch gerne antworten



  • inwiefern mit welchem package??
    mit dem internet hab ich noch nicht probiert für meine zwecke ist es in dem moment nicht sinnvoll...
    denke aber wenn man andere Komponenten wählt - sprich ADO und TCP ist es auch möglich auf eine Datenbank im Internet zuzugreifen!



  • Wenn Du einen eigenen Rootserver hast, kannst Du das machen, wenn Du einen Webspace hast, ist es meist nicht möglich auf die DB zuzugreifen. 99% der Provider lassen, aus Sicherheitsgründen, nur einen lokalen Zugriff auf die Datenbank zu.

    Grüße

    Joe_M.


Anmelden zum Antworten