Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Paradox-Feldtypen zuweisen (https://www.delphipraxis.net/69269-paradox-feldtypen-zuweisen.html)

mkinzler 14. Mai 2006 19:15

Re: Paradox-Feldtypen zuweisen
 
Ansatt die Kommas zu ersetzen könnte man Delphi auch anweisen das komma als Dezimaltrenner zu verwenden:

Delphi-Quellcode:
DecimalSeparator := ',';

raiguen 14. Mai 2006 21:44

Re: Paradox-Feldtypen zuweisen
 
Zitat:

Zitat von mkinzler
Ansatt die Kommas zu ersetzen könnte man Delphi auch anweisen das komma als Dezimaltrenner zu verwenden:

Delphi-Quellcode:
DecimalSeparator := ',';

Hat keine Auswirkung, wenn Gleitkommazahlen in ein normalen EditFeld eingeben werden, oder irgendeine andere StringVariable eine Zahl mit Komma als Dezimaltrenner enthält! Die Umwandlung in eine FloatVariable wird auf jeden Fall am Komma scheitern.

marabu 15. Mai 2006 21:36

Re: Paradox-Feldtypen zuweisen
 
Hallo raiguen,

Zitat:

Zitat von raiguen
Deine Funktion wird bei der deutschen Schreibweise eines Gleitkommawertes (23,456)immer FALSE zurückgeben

da hast du Recht. Da bei mir D3 nicht installiert ist, habe ich mal D2 angeworfen und noch einen Fehler entdeckt - die calling convention "out" wird wahrscheinlich auch nicht kompiliert. Und weil es mir um den upgrade path geht, schlage ich die Umbenennung deiner Funktion IstGleitkommazahl() vor:

Delphi-Quellcode:
function TryStrToFloat(const S: String; var Value: Extended): Boolean;
begin
  Result := TextToFloat(PChar(S), Value, fvExtended);
end;
Danke für deine Aufmerksamkeit.

marabu

LOMBI 17. Mai 2006 15:15

Re: Paradox-Feldtypen zuweisen
 
Vielen Dank für das gezeigte Interesse.

Delphi-Quellcode:
type
  TFArtikelListe = class(TForm)
...
    function TryStrToFloat(const S: String; var Value: Extended): Boolean;
Mit dieser Funktion komme ich leider nicht klar. Damit erhalte ich die Meldung: "Ungenügende Forward- oder External-Deklaration".

Lombi

marabu 18. Mai 2006 09:44

Re: Paradox-Feldtypen zuweisen
 
Hallo Lombi,

TryStrToFloat() ist keine Methode deiner Form sondern eine frei verwendbare Funktion. Nimm sie aus der Klassendeklaration heraus und stelle sie an den Anfang der implementation section, wenn du keine eigene Unit für solche Funktionen in deinem Projekt hast.

Grüße vom marabu

LOMBI 19. Mai 2006 13:46

Re: Paradox-Feldtypen zuweisen
 
Hallo marabu,

schön, von Dir zu hören. Ich hab's nun irgendwie ohne die
Funktion TryStrToFloat geschafft:

Meine Lösung:

Delphi-Quellcode:
procedure TFArtikelListe.BtnNeuClick(Sender: TObject);
var
  Value: Double;
    begin
      FArtikel.Show;
      with FArtikel do
        begin
          QueryArtikel.SQL.Text := 'SELECT * FROM Artikel';
          QueryArtikel.Open;
          QueryArtikel.Append;
          QueryArtikel.FieldByName('EAN').AsString := EditEAN.Text;
          QueryArtikel.FieldByName('ArtBez').AsString := EditBez.Text;
          QueryArtikel.FieldByName('MwSt').AsFloat := Value;
          QueryArtikel.FieldByName('EKpreis').AsFloat := Value;
          QueryArtikel.FieldByName('VKbrutto').AsFloat := Value;
          QueryArtikel.FieldByName('Anfangsbestand').AsFloat := Value;
end;
Übrigens verwende ich jetzt für Währungs- und Bestandsfelder den Typ
(n)umerisch.

Lombi

marabu 19. Mai 2006 20:22

Re: Paradox-Feldtypen zuweisen
 
Hallo Lombi,

im Hinblick auf deinen baldigen Umstieg auf ein RDBMS solltest du dir vielleicht schon einmal angewöhnen mit einem leeren result set zu arbeiten, wenn du sowieso nur Insert() oder Append() benutzen möchtest:

Delphi-Quellcode:
procedure TFArtikelListe.BtnNeuClick(Sender: TObject);
var
  Value: Double;
begin
  FArtikel.Show;
  with FArtikel.QueryArtikel do
  begin
    SQL.Text := 'SELECT * FROM Artikel WHERE 1 = 0';
    Open;
    Append;
    FieldByName('EAN').AsString := EditEAN.Text;
    // ...
    Post;
  end;
end;
Freundliche Grüße vom marabu

LOMBI 20. Mai 2006 12:45

Re: Paradox-Feldtypen zuweisen
 
Delphi-Quellcode:
SQL.Text := 'SELECT * FROM Artikel WHERE 1 = 0';
Hallo marabu,

mit der Änderung des SQL.Textes sind die gespeicherten Daten im DBGrid
nicht mehr sichtbar!

Grüße
Lombi

marabu 20. Mai 2006 13:52

Re: Paradox-Feldtypen zuweisen
 
Hallo Lombi,

aus der Abfolge deiner Befehle in Beitrag #16 habe ich geschlossen, dass du die dort verwendete Query nur für den Append-Befehl benötigst. Wenn die gleiche Query ein DBGrid mit Daten versorgt, dann vergiss meinen Hinweis auf den leeren result set, aber überdenke mal, warum du direkt vor dem Append kurz die Puffer leerst (durch erneutes Zuweisen eines SQL-Statements) und die Query wieder neu aufbaust (durch Open).

Grüße vom marabu

LOMBI 20. Mai 2006 16:22

Re: Paradox-Feldtypen zuweisen
 
Danke für den Hinweis!


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:56 Uhr.
Seite 2 von 2     12   

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