![]() |
Datenbank: Paradox • Version: 7 • Zugriff über: Query, DataSource
Paradox-Feldtypen zuweisen
Hallo,
könnt Ihr bitte mal sehen, ob ich die richtigen Feldtypen gewählt habe: Feldname Typ MwSt N EAN N EKpreis $ VKnetto $ VKbrutto $ Anfangsbest N Abgang N Vielen Dank! Gruß Lombi |
Re: Paradox-Feldtypen zuweisen
N? $? :gruebel:
|
Re: Paradox-Feldtypen zuweisen
Hallo Lombi,
als Bestand und Abgang könntest du wohl besser I(nteger) nehmen. Ansonsten ist N(umerisch) und $(Währung) wohl OK. |
Re: Paradox-Feldtypen zuweisen
Hallo MrSpock,
das Problem ist, dass ich nach dem Compillieren für einige der Felder Meldungen erhalte, wie z.B.: 'EditEAN' ist kein gültiger Fließkommawert für Feld 'EAN' Was stimmt denn bei den folgenden Codes nicht?
Delphi-Quellcode:
Danke für die Hilfe!
...
QArtikel.FieldByName('EAN').AsString := EditEAN.Text //n(umerisch)? QArtikel.FieldByName('MwST').AsString := CBMwSt.Text //n(umerisch)? QArtikel.FieldByName('EKPreis').AsString := EditEKPreis.Text //$(Währung)? QArtikel.FieldByName('VKnetto').AsString := EditVKPreis.Text //$ (Währung)? QArtikel.FieldByName('Anfangsbestand').AsInteger := EditAbest.Text //I(nteger)? ... Gruß Lombi |
Re: Paradox-Feldtypen zuweisen
Hallo Lombi,
wenn du Feldkomponenten eines BDE DataSets mit Werten belegst, dann solltest du die passende property verwenden - Currency-Werte (nicht BCD) werden so zugewiesen:
Delphi-Quellcode:
Ob die EAN nicht besser als String gespeichert wird?
var
dValue: Double; begin if TryStrToFloat(EditEKPreis.Text, dValue) then QArtikel.FieldByName('EKPreis').AsFloat := dValue else QArtikel.FieldByName('EKPreis').Clear; Grüße vom marabu |
Re: Paradox-Feldtypen zuweisen
Hi marabu,
wie bitte werden numerische Felder zugewiesen? .AsString? 'EAN' habe ich auf (A)lphanumerisch geändert. Erhalte leider immer noch Fehlermeldungen: undefinierter Bezeichner:'TryStrToFloat' Ungültiger Wert für Feld 'MwSt' 'EditABest' ist kein gültiger Integerwert für Feld 'Anfangsbestand' Hab's bei den Mengen auch schon ohne Erfolg mit (N)umerisch versucht! Viele Grüße Lombi |
Re: Paradox-Feldtypen zuweisen
Hallo LOMBI,
bei Dir herrscht wohl noch ein bisschen Caos bezüglich der Datentypen. N Numerisch tab.FieldByName('MwSt').AsFloat := 16.0; tab.FieldByName('MwSt').AsFloat := StrToFloat('16.0'); I Integer tab.FieldByName('Bestand').AsInteger := StrToInt(editBestand.Text); L Logisch tab.FieldByName('logik').AsBoolean := 'falsch'; // oder 'wahr' A Alphanumer. tab.FieldByName('Suchtext').AsString := EditSuchtext.Text; Währungsfelder verwende ich nicht, da bevorzuge ich den Typ N Bestand kann auch vom Typ N sein, wenn Nachkomma-Werte vorkommen dürfen z.B. Bestand = 30.5 Meter mfg eddy |
Re: Paradox-Feldtypen zuweisen
Hallo eddy,
da hat sich noch ein Fehler eingeschlichen:
Delphi-Quellcode:
{L Logisch}
tab.FieldByName('logik').AsBoolean := False; // oder True ohne Anführungsstriche |
Re: Paradox-Feldtypen zuweisen
Hallo Lombi,
eventuell gibt es die Funktion TryStrToFloat() unter D3 nicht - hier ein preiswerter Ersatz:
Delphi-Quellcode:
Grüße vom marabu
function TryStrToFloat(const S: string; out Value: Extended): Boolean;
var code: Integer; begin Val(S, Value, code); Result := Code = 0; end; |
Re: Paradox-Feldtypen zuweisen
Moin :-)
@marabu: Deine Funktion wird bei der deutschen Schreibweise eines Gleitkommawertes (23,456)immer FALSE zurückgeben ;-) Die Funktion müsste dann etwas umgeändert werden:
Delphi-Quellcode:
oder diese Funktion benutzen:
function TryStrToFloat(S: string; out Value: Extended): Boolean;
var code: Integer; begin //--Komma durch Punkt ersetzen S:= StringReplace(S, ',','.',[]); Val(S, Value, code); Result := (Code = 0); end;
Delphi-Quellcode:
function IstGleitkommazahl(S: String; out Value: Extended): Boolean;
begin Result := TextToFloat(PChar(S), Value, fvExtended); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:56 Uhr. |
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