Hoi
Ich habe eine
mysql Datenbank , wo PCs, Monitore und Dockingstations gespeichert sind.
Ich benutze nur die
mysql odbcs , kein zeos oder so.
Ich habe im private von TForm1
fmysql: Tmysqlclient und
Fresult: TmysqlResult
Bisher habe ich die Anzeige der wichtigsten Daten ueber folgende Prozeduren hinbekommen
Zuerst lasse ich mir einen entsprechenden
sql befehl geben.
Delphi-Quellcode:
procedure TForm1.mysqlqry ( q : string );
begin
if (q = '') then begin
q := ' SELECT r.inventar_Nr,r.netzwerkname,a.benutzer ,';
q := q + ' a.benutzer_alt, a.raum , r.bemerkungen ,m.inventar_Nr, d.inventar_Nr, r.statusID';
q := q + ' from arbeitsplatz a inner join rechner r ';
q := q + ' on a.rechnerid = r.rechnerid ';
q := q + ' left join monitor m ';
q := q + ' on a.monitorid = m.monitorid ';
q := q + ' left join dockingstation d ';
q := q + ' on r.dockingstationid = d.dockingstationid ';
q := q + ' WHERE "1=1" ';
end;
FResult := FMysql.query(q, true, ex);
ShowInGrid;
end;
dann die Anzeige im StringGrid
Delphi-Quellcode:
procedure TForm1.ShowInGrid;
var i,j: integer;
begin
if FMySql.Connected
then begin
if assigned(FResult)
then begin // <-- Falls eine SQL Abfrage vorliegt
Grid.RowCount := FResult.RowsCount+1;
// <-- ZeilenAnzahl
Grid.ColCount := FResult.FieldsCount;
// <-- SpaltenAnzahl
FResult.First;
for i:=0
to FResult.RowsCount-1
do begin // <-- Zeilen durchlaufen
for j:=0
to FResult.FieldsCount-1
do // <-- Spalten durchlaufen
Grid.Cells[j,i+1] := FResult.FieldValue(j);
FResult.Next;
Statusbar1.Panels[0].Text := IntToStr(Grid.RowCount) + '
Einträge';
end;
end
else
ShowMessage('
Keine SQL-Abfrage !');
end
else
ShowMessage('
Not Connected');
end;
Nun moechte ich erreichen, dass er mir statt einer weiteren Spalte fuer "r.StatusID"-Werten die Zeilen abhaengig von der r.StatusID farblich markiert. Da ich aber zu FResult nichts gescheites gefunden habe, dachte ich mir ich frag mal, ob jemand weiß ich das am besten hinkrieg