![]() |
Datenbank: Paradox • Zugriff über: BDE
Variabler Datenbank-Zugriff - Problem mit Stringumwandlung
Hallo, ich möchte Code sparen und versuche deshalb, beim Speichern der eingegebenen Daten auf jeweils eine von zwei gleich aufgebauten Tabellen mit unterschiedlichen Daten umschalten zu können. Die eine Tabelle (QueryPreise) enthält die Preise des laufenden Jahres, die andere die Preise des nächsten Jahres (QueryPreiseNeu).
Momentan sieht das so aus unter Verwendung von nur einer Tabelle:
Delphi-Quellcode:
Was ich probiere:
Var Preis1 : Variant;
Preis1 := FData.QueryPreiseSsNeben.Value;
Delphi-Quellcode:
Die Teile werden auch richtig zusammengesetzt aber ich bekomme dann die Fehlermeldung:
If Jahr = RefJahrString then PrsAltNeu := 'QueryPreise';
If Jahr = NxtJahrString then PrsAltNeu := 'QueryPreiseNeu'; Preis1 := 'FData. + PrsAltNeu + SsNeben.Value'; "Variante des Typs (String) konnte nicht in Typ (Double) konvertiert werden. Wäre schön, wenn jemand "hier" schreit . . . [edit=mkinzler]Delphi-Tags eingefügt Mfg, mkinzler[/edit] |
Re: Variabler Datenbank-Zugriff - Problem mit Stringumwandlu
Hallo und Willkommen in der DP :dp:,
Zitat:
|
Re: Variabler Datenbank-Zugriff - Problem mit Stringumwandlu
Nein, das mag der Compiler schon nicht.
|
Re: Variabler Datenbank-Zugriff - Problem mit Stringumwandlu
Achso, jetzt hab ich das Problem erst verstanden. Neuer Ansatz:
Delphi-Quellcode:
Das ist jetzt aber nur ein Test ohne Fehlerbehandlung, ich möchte nur sehen, ob ich Dich richtig verstanden habe.
Preis1 := (FData.FindComponent(PrsAltNeu + 'SsNeben') as TQuery).Value;
|
Re: Variabler Datenbank-Zugriff - Problem mit Stringumwandlu
Compiler sagt : Undef Bez : Value
|
Re: Variabler Datenbank-Zugriff - Problem mit Stringumwandlu
Dann hast du irgendeine Klammer falsch gesetzt o.ä. Zeig mal die Codezeile.
|
Re: Variabler Datenbank-Zugriff - Problem mit Stringumwandlu
Hallo,
nicht nur die Code-Zeile, sondern am besten das ganze Form. Ich glaube nämlich, dass QueryPreiseSsNeben gar keine Query ist, sondern ein persistentes Feld. Ein Query.Value gibt es doch gar nicht. # Update :# Edit: Paradox ? ui :=) Wie wird denn gespeichert, mit TTable ? Übergib dann das TTable einfach einer Speicherprozedur und verabschiede dich von den persistenten Feldern. Heiko |
Re: Variabler Datenbank-Zugriff - Problem mit Stringumwandlu
Zitat:
|
Re: Variabler Datenbank-Zugriff - Problem mit Stringumwandlu
Hallo,
was mir hier noch auffällt. Zitat:
Gaaanz schlechtes DB-Design !!! :) Was ist 2011, noch eine Tabelle, QueryPreiseNeuNeu ?? Packe alle Preis in eine Tabelle mit dem Jahr als (Integer)-Feld. Heiko |
Re: Variabler Datenbank-Zugriff - Problem mit Stringumwandlu
Hallo alle, schön, dass ihr mir helfen wollt . . .
Natürlich ist das eine TQuery mit Namen "QueryPreise" und wie schon vorher zitiert können die Werte der Datenfelder mit QueryPreisexxx.Value ausgelesen bzw. gespeichert werden. QueryPreise und QueryPreiseNeu besitzen 9 Datenfelder, die ich nach Vorschlag von hoika alle doppeln müsste. Da wäre es einfacher, meine vorhandene Struktur zu verzweigen . . . Zum Verständnis: Ich benötige die Preise 2009 nächstes Jahr nicht mehr. Aber in 2009 mache ich sowohl noch Mietverträge für 2009 als auch schon für 2010. In 2010 übernehme ich die Daten von 'QueryPreiseNeu' in 'QueryPreise' und kann dann in 3-4 Jahren problemlos wieder eine Preiserhöhung mit 'QueryPreiseNeu' machen, wenn nötig. DeddyH : Ich habe deine Code-Zeile kopiert und somit ohne Änderung in meinen Quellcode eingefügt. begin Preis1 := (FData.FindComponent(PrsAltNeu + 'SsNeben') as TQuery).Value; case AnzPers of 3 : Zuschlag1 := FData.QueryPreiseNeuZuNeben.Value; 4 : Zuschlag1 := FData.QueryPreiseNeuZuNeben.Value') * 2; 5 : Zuschlag1 := FData.QueryPreiseNeuZuNeben.Value') * 3; 6 : Zuschlag1 := FData.QueryPreiseNeuZuNeben.Value') * 4; 7 : Zuschlag1 := FData.QueryPreiseNeuZuNeben.Value') * 5; 8 : Zuschlag1 := FData.QueryPreiseNeuZuNeben.Value') * 6; end; Wenn's zu viel Mühe macht, habe ich auch eine andere Lösung, wie schon erwähnt, aber der Ehrgeiz . . . das müsste doch funzen - oder? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:16 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 by Thomas Breitkreuz