Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Abfrage auf Generator (https://www.delphipraxis.net/188120-abfrage-auf-generator.html)

Rippo 2. Feb 2016 13:17

Datenbank: firebird • Version: 2.5 • Zugriff über: sqlconnection

Abfrage auf Generator
 
Hallo

ich habe eine abfrage auf einen generatoren erstellt :

Delphi-Quellcode:
SDS_GenPTV.DataSet.CommandText := ' SELECT Gen_ID(Status,0) from rdb$database ' ;

klappt alles

meine frage also

wie schaffe ich es dass bei wenn bei der abfrage eine zahl die höher ist als 0 kommt, dass der button farblich markiert wird und wenn man denn zurücksetzt auf 0 dann wieder in eine andere farbe markiert wird??

danke im voraus

mkinzler 2. Feb 2016 13:26

AW: Abfrage auf Generator
 
Wie kann einen Abfrage farbig sein?

Du musst das in Delphi anhand des zurückgegebenen Wertes entscheiden.

OrNEC 2. Feb 2016 13:28

AW: Abfrage auf Generator
 
Delphi-Quellcode:
if StrToInt(SDS_GenPTV.DataSet.CommandText) = 0 then
  Button1.Color := clRed
else Button1.Color := clBlue;

Rippo 2. Feb 2016 13:43

AW: Abfrage auf Generator
 
bekomme die fehlermeldung das es kein gültiger integerwert ist

Klaus01 2. Feb 2016 13:44

AW: Abfrage auf Generator
 
.. was steht denn in "SDS_GenPTV.DataSet.CommandText" drin?

Grüße
Klaus

OrNEC 2. Feb 2016 13:44

AW: Abfrage auf Generator
 
Dann muss wohl StrToInt weg.

nahpets 2. Feb 2016 13:47

AW: Abfrage auf Generator
 
In CommandText steht das auszuführende Statement.
Man sollte dieses einfach mal ausführen und dann das Ergebnis abfragen. Ist das 0 dann diese Farben ansonsten jene.

Das Statement selbst läßt keinen Rückschluss auf das Ergebnis zu.

Rippo 2. Feb 2016 13:51

AW: Abfrage auf Generator
 
Delphi-Quellcode:
if (SDS_GenPTV.DataSet.CommandText) = '0' then
  Button6.Font.Color := clGreen
  else
   Button6.Font.Color := clRed;
hab das jetzt so gemacht bekomme jedoch nicht den button auf grün oder rot

OrNEC 2. Feb 2016 13:55

AW: Abfrage auf Generator
 
Es kann sein, dass man die Buttons irgendwie anders färbt. Stell diese Frage mal, oder google mal danach.

Lemmy 2. Feb 2016 14:02

AW: Abfrage auf Generator
 
Zitat:

Zitat von Rippo (Beitrag 1329083)
Delphi-Quellcode:
if (SDS_GenPTV.DataSet.CommandText) = '0' then
  Button6.Font.Color := clGreen
  else
   Button6.Font.Color := clRed;
hab das jetzt so gemacht bekomme jedoch nicht den button auf grün oder rot


Punkt 1: Les doch bitte mal alle Posts hier und nicht nur die, die Code enthalten
Punkt 2: Bei einem TButton kann die Farbe nicht geändert werden, weil die darunterliegende WinAPI das nicht unterstützt - nimm statt dessen einen TBitBtn

nahpets 2. Feb 2016 14:05

AW: Abfrage auf Generator
 
Sorry, aber was hast Du vor?

in CommandText steht doch duie Zeichenfolge:
Delphi-Quellcode:
' SELECT Gen_ID(Status,0) from rdb$database ' ;
Die kann doch niemals = '0' sein.

Also,wenn ich jetzt nicht total auf dem falschen Dampfer unterwegs bin, täte ich mal sowas in der Art probieren:
Delphi-Quellcode:
// auszuführendes SQL-Statement zuweisen
SDS_GenPTV.DataSet.CommandText := ' SELECT Gen_ID(Status,0) from rdb$database ' ;
// Abfrage öffnen
SDS_GenPTV.DataSet.Open;
// Ergebnis auswerten
case SDS_GenPTV.DataSet.Fields[0].AsInteger of
  0 : Button6.Color := clGreen
else
  Button6.Color := clRed;
end;
// Abfrage schließen
SDS_GenPTV.DataSet.Close;
Button.Font.Color färbt die Beschriftung des Buttons.
Soll sich die Farbe des Buttons ändern, dann ändert man Button.Color. (Da hab' ich micht durch die Eigenschaft Color in der Delphi-7-Hilfe irritieren lassen, sie ist nicht veröffentlicht :-(

p80286 2. Feb 2016 14:09

AW: Abfrage auf Generator
 
Zitat:

Zitat von Rippo (Beitrag 1329079)
bekomme die fehlermeldung das es kein gültiger integerwert ist

Dann wird das wohl so sein, bleibt die Frage, was ist es.

Gruß
K-H

Rippo 2. Feb 2016 14:16

AW: Abfrage auf Generator
 
@Nahpets
das bekomme ich wenn ich deine lösung bei mir nehme
Zugriffsverletzung bei Adresse 0******* in Modul 'Project*****.exe'. Lese von Adresse 000000.

nahpets 2. Feb 2016 14:26

AW: Abfrage auf Generator
 
Und wo genau?

Wie wäre es, wenn Du uns mal den gesamten Quelltext zur Verfügung stellst?
Von welchem Typ ist denn z. B. SDS_GenPTV?

Delphi-Quellcode:
// auszuführendes SQL-Statement zuweisen
SDS_GenPTV.DataSet.CommandText := ' SELECT Gen_ID(Status,0) from rdb$database ' ;
// Abfrage öffnen
SDS_GenPTV.DataSet.Open;
if not SDS_GenPTV.DataSet.Eof then begin
  // Ergebnis auswerten
  case SDS_GenPTV.DataSet.Fields[0].AsInteger of
    0 : Button6.Color := clGreen
  else
    Button6.Color := clRed;
  end;
end else begin
  ShowMessage('Ups, kein Ergebnis!');
end;
// Abfrage schließen
SDS_GenPTV.DataSet.Close;

frankyboy1974 2. Feb 2016 14:29

AW: Abfrage auf Generator
 
hallo,

[OT]
Zitat:

Zugriffsverletzung bei Adresse 0******* in Modul 'Project*****.exe'. Lese von Adresse 000000.
Das du den Namen deines Programms ausblendest, kann ich ja gerade noch verstehen. Warum du aber die (Speicher-)Adresse nicht preisgeben möchtest, bleibt mir verborgen.:?:

[/OT]

mfg


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:57 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