Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   if anweisung (https://www.delphipraxis.net/49728-if-anweisung.html)

Jasocul 15. Jul 2005 08:08

Re: if anweisung
 
Zitat:

Zitat von Sharky
Zitat:

Zitat von Jasocul
Wieso nur 255 Zeichen?

In der IDE kann ein String nur 255 Zeichen am Stück haben.

Ächt?
Dann sind meine Programme wohl zu klein :mrgreen:

Ernsthaft:
Ich bin noch nie auf die Idee gekommen, so lange Strings in der IDE zu verwenden. Wäre mir zu unübersichtlich (nur mal so als Tipp an cell).

freak4fun 15. Jul 2005 08:17

Re: if anweisung
 
Hallo :hi:,
lass dir doch die Werte mal ausgeben, vielleicht findest du dann den Fehler. :)

MfG
freak

WoGe 15. Jul 2005 08:17

Re: if anweisung
 
Hallo,

255 Zeichen lange Strings zu lesen ist einfach sehr unübersichtlich.

Aber vielleicht lässt sich ja der SQL-Text so gestaltem

SQL-Code:
Select * from tabelle
und dann auf die einzelnen Felder so zugreifen:

Delphi-Quellcode:
 while not Query1.Eof do
    begin
      agewvo := (Query1.FieldbyName('Anfangsgewicht_Belag_vorne_oben').AsFloat);
      agewvu := (Query1.FieldbyName('('Anfangsgewicht_Belag_vorne_unten').AsFloat);
      .....
mfg
wo

Duke_2004 15. Jul 2005 08:23

Re: if anweisung
 
Also wenn ich auf Arbeit nen
Delphi-Quellcode:
Select * from table
mache, bekomm ich immer fast die Finger abgehauen... :mrgreen:

Und zwar aus Performancegründen, wenn die Daten übers Netzwerk gehen und die Tabelle mehr Spalten hat müssen dann ja immer alle Daten "geholt" werden und das lastet aus... (Aber das nur am Rande)

Die Variante mit dem FieldbyName ist natürlich dahingehend sicherer, weil du man dann immer genau weis, dass die Daten wirklich aus dieser Spalte kommen...und es ist einfacher zu lesen/erkennen.

WoGe 15. Jul 2005 08:33

Re: if anweisung
 
Hallo,

Zitat:

Zitat von Duke_2004
Also wenn ich auf Arbeit nen
Delphi-Quellcode:
Select * from table
mache, bekomm ich immer fast die Finger abgehauen... :mrgreen:

Dem kann ich nur zustimmen.
Hier hatte ich nur den Eindruck das er eh alle Felder haben will und mit mehr als 255 Zeichen ein Problem hat.

Wenn er erst mal da Ruhe hat, kann er sich auf sein if-Problem konzentrieren.

mfg
wo

Sidorion 15. Jul 2005 08:40

Re: if anweisung
 
Versuchs doch mit einem try .. except Block Marke:
Delphi-Quellcode:
try
  Wert:=FtrToFloar(Var1)+......;
except
  ShowMessageFmt('Keine Werte für Datensatz %i.',[Query.ActiveIndex]);
end;

cell 15. Jul 2005 08:54

Re: if anweisung
 
nein es sind nicht alle werte die ich ausgeben will, aber ich hab das problem schon gelöst , dafür hab ich ein neues =D
aber ich mach ein n eues thema auf :mrgreen:

freak4fun 15. Jul 2005 08:57

Re: if anweisung
 
Hallo :hi:,
verrätst du uns auch, wie? :mrgreen:

MfG
freak

cell 15. Jul 2005 09:03

Re: if anweisung
 
jop klar =D hier ist der quelltext
Delphi-Quellcode:
procedure Tfrmmdichild.FormActivate(Sender: TObject);
//------------------------------------------------------------------------------
//  firstRun: nur beim ersten Aufruf muß Leerfeld kontrolliert werden!!!
//------------------------------------------------------------------------------
var
boolResult: boolean;
agewvo: string;
agewvu: string;
agewho: string;
agewhu: string;
egewvo: string;
egewvu: string;
egewho: string;
egewhu: string;
agewscheibe: string;
egewscheibe: string;

begin
     with DataModule1 do
     begin
       Query.SQL.Clear;
       Query.SQL.Text:= selectsql('Anfangsgewicht_Belag_vorne_oben, Anfangsgewicht_Belag_vorne_unten, Anfangsgewicht_Belag_hinten_oben, Anfangsgewicht_Belag_hinten_unten, Endgewicht_Belag_vorne_oben, Endgewicht_Belag_vorne_unten, Endgewicht_Belag_hinten_oben, Endgewicht_Belag_hinten_unten','Friktionstest','Testnummer=' + frmtestauswahl.cbotestnummer.Text,'', '');
       Query.Open;
       while not Query.Eof do
       begin
            agewvo:=(Query.Fields[0].AsString);
            agewvu:=(Query.Fields[1].AsString);
            agewho:=(Query.Fields[2].AsString);
            agewhu:=(Query.Fields[3].AsString);
            egewvo:=(Query.Fields[4].AsString);
            egewvu:=(Query.Fields[5].AsString);
            egewho:=(Query.Fields[6].AsString);
            egewhu:=(Query.Fields[7].AsString);

            boolResult:=((agewvo ='') Or
                         (agewvu ='') Or
                         (agewho ='') Or
                         (agewhu ='') Or
                         (egewvo ='') Or
                         (egewvu ='') Or
                         (egewho ='') Or
                         (egewhu ='')) And
                         firstRun;

            if boolResult then
            begin
                 Showmessage('Der Verschleiß vom Belag konnte nicht berechnet werden');
            end
            else
                lblbelagverschleiss.Caption :=FloatToStr((StrToFloat(agewvo) + StrToFloat(agewvu) + StrToFloat(agewho) + StrToFloat(agewhu)) - (StrToFloat(egewvo) + StrToFloat(egewvu) + StrToFloat(egewho) + StrToFloat(egewhu)));

            firstRun:=false;
           Query.Next;
           Query.Close;
       end;//while
     end;//with
hf


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:39 Uhr.
Seite 3 von 3     123   

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