Entwickler-Ecke

Datenbanken - DBGrid komplett in StringGrid übergeben


PPaB - Fr 22.05.09 13:00
Titel: DBGrid komplett in StringGrid übergeben
Ich möchte meine Tabelle der Datenbank komplett in ein StringGrid übergeben.
Ich habe viel herumprobiert und im Internet nach einer Lösung gesucht, aber leider nichts brauchbares gefunden.
Ich habe eine MyBase-Datenbank erstellt und diese dann in einem DBGrid anzeigen lassen.

Hoffe ihr habt eine Idee und könnt mir helfen

PPaB


Robert.Wachtel - Fr 22.05.09 14:04

Warum? Was ist an dem DBGrid denn nicht so optimal?


mkinzler - Fr 22.05.09 14:27

Und wenn würde ich die Daten direkt vom DataSet ins StringGrid übertragen


PPaB - Fr 22.05.09 14:56

@ mkinzler: Ja das wäre mir ja auch eagl, ob jetzt von DBGrid zu String Grid oder direkt vom DataSet. Trotzdem würe es mir helfen, wenn du mir sagen könntest wie das funtkioniert?

@ Robert.Wachtel: Ich würde gerne einfach in bestimmten Spalten überprüfen, was dort steht (oder nach etwas bestimmten suchen) und die Zeilen dann ausgeben. Aber ich habe das mit DBGrid nicht hinbekommen und mit StringGrid dürfte es einfacher sein. Wenn das mit DBGrid auch einfach funtioniert und du oder jemand anders mir das erklären könnte, wäre ich auch froh.


mkinzler - Fr 22.05.09 15:15

Zitat:
@ mkinzler: Ja das wäre mir ja auch eagl, ob jetzt von DBGrid zu String Grid oder direkt vom DataSet. Trotzdem würe es mir helfen, wenn du mir sagen könntest wie das funtkioniert?

Du kannst die Zellen mit StringGrid.Cells adressieren

Zitat:
@ Robert.Wachtel: Ich würde gerne einfach in bestimmten Spalten überprüfen, was dort steht (oder nach etwas bestimmten suchen) und die Zeilen dann ausgeben. Aber ich habe das mit DBGrid nicht hinbekommen und mit StringGrid dürfte es einfacher sein. Wenn das mit DBGrid auch einfach funtioniert und du oder jemand anders mir das erklären könnte, wäre ich auch froh.

Grundsätzlich geanuso, wie im StringGrid


Robert.Wachtel - Fr 22.05.09 15:20

user profile iconPPaB hat folgendes geschrieben Zum zitierten Posting springen:
[...] @ Robert.Wachtel: Ich würde gerne einfach in bestimmten Spalten überprüfen, was dort steht (oder nach etwas bestimmten suchen) und die Zeilen dann ausgeben. Aber ich habe das mit DBGrid nicht hinbekommen und mit StringGrid dürfte es einfacher sein. Wenn das mit DBGrid auch einfach funtioniert und du oder jemand anders mir das erklären könnte, wäre ich auch froh.

Und warum machst Du das nicht mit den Spalten der Datenquelle?


PPaB - Fr 22.05.09 15:31

@ Robert.Wachtel
Wenn du mir sagen würdest, wie das geht, wäre das sehr hilfreich?


Robert.Wachtel - Fr 22.05.09 15:35

In etwa so:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
MeineTabelle.First;
while not MeineTabelle.Eof do
begin
  if (MeineTabelle.Fields[xyz].AsString = MeinGesuchterInhalt) then
  begin
    TueWasAuchImmerProzedur();
  end;
  MeineTabelle.Next;
end;


Alternativ kannst Du natürlich auch FieldByName oder persistente Felder nutzen.

Evtl. solltest Du vorher/nachher noch DisableControls reps. EnableControls einsetzen.


zuma - Fr 22.05.09 15:41

alternativ geht auch ein

Delphi-Quelltext
1:
Dataset.Locate('Suchfeld', Suchwert, []);                    

oder

Delphi-Quelltext
1:
Dataset.locate(suchfeld1;Suchfeld2;..), varArrayof([Suchwert1, suchwert2, ...]), []);                    

ganz prima dafür.

Das setzen von Filtern könnte für deine Aufgabenstellung auch nützlich sein.


Robert.Wachtel - Fr 22.05.09 15:45

user profile iconzuma hat folgendes geschrieben Zum zitierten Posting springen:
[...] Das setzen von Filtern könnte für deine Aufgabenstellung auch nützlich sein.

Ja, würde man die Aufgabenstellung genauer spezifizieren, wäre natürlich eine konkrete Lösung möglich und man könnte auf viele Konjunktive verzichten... :mrgreen:


PPaB - Fr 22.05.09 18:26

Was ich machen möchte?

Ein Programm, in dem in einer Datenbank Liedernamen und die Bücher in denen diese vorkommen gespeichern sind
(2 Tabellen : in der Ersten: Lieder und die ID Zweiten: ID, Buch und Nummer ).
Jetzt möchte ich Suchabfragen einbauen:
--> Suche nach einem Liednamen
--> Suche nach einem Buch

Nach dieser Abfrage sollen die Datensätze, bei denen dies stimmt ausgegeben werden (in einer Tabelle).

So das wäre so ungefähr das Grundprinzip.

---Moderiert von user profile iconNarses: Beiträge zusammengefasst---

@ zuma: Sieht ganz schön aus, aber was muss ich den als Suchfeld eingeben?


Robert.Wachtel - Fr 22.05.09 18:41

Wir wäre es mit Grundlagen? http://www.delphi-treff.de/tutorials/datenbanken/ und die über F1 erreichbare Delphi-Hilfe dürften einige Deiner Fragen lösen.


PPaB - Fr 22.05.09 18:49

ok hab das gefunden, was ins Suchfeld gehört, hatte nur nen Fehler im Code, deswegen hatte es nicht funktioniert

---Moderiert von user profile iconNarses: Beiträge zusammengefasst---

Aber ein Frage habe ich trotzdem noch:

Wie kann ich in der Table den TableName einstellen ?
Bei mir gibt es da nichts zur Auswahl und in den Erklärungen steht, dass da die Datenbank reingehört,
aber wie ist das bei MyBase?


Robert.Wachtel - Fr 22.05.09 20:14

Ad eins ist mir nicht ganz klar, was Du meinst und ad zwei: neue Frage, neuer Thread. Danke.


Chemiker - Fr 22.05.09 20:23

Hallo PPaB,

wozu brauchst Du eine Tabelle? Normal brauchst Du doch nur ClientDataset mit DataSource verbinden. Wenn Du 2 ClientDatSet hast kannst Du ein DataModul dafür anlegen.
Damit ereichst Du eine Trennung zwischen Datenbank und der GUI.

Bis bald Chemiker


PPaB - Fr 22.05.09 22:09

Hier gehts weiter --> http://www.delphi-forum.de/topic_MyBase+TTable+TableName+einstellen_92403.html

Ich habe halt keine andere Möglichkeit gesehen, wie ich das ohne Tabele machen könnte.
Bin über jede andere Möglichkeit erfreut.