Forum: Datenbanken
Delphi
by shmia,
26. Sep 2007
Ich hab zwar jetzt nicht verstanden, weshalb im String s der Wert '3000' steht,
obwohl er eigentlich #$30#$75#$00#$00 sein müsste, aber egal.
Beim Schreiben wird anscheinend mit Blanks aufgefüllt, das ist dein Hauptproblem.
Dann versuch mal:
adstable.FieldByName('Anzahl').SetData(@s, True);
So kann man die Daten direkt setzen, ohne dass die interne Methode DataConvert() aufgerufen wird.
Forum: Datenbanken
Delphi
by shmia,
26. Sep 2007
Achso, dass bedeutet dass du das Feld direkt wie es ist auslesen kannst.
Damit erübrigt sich doch sämtlicher Aufwand.
var
anzahl:integer;
begin
anzahl := adstableAnzahl.AsInteger;
anzahl := anzahl + 100;
adstableAnzahl.AsInteger := anzahl;
Forum: Datenbanken
Delphi
by shmia,
26. Sep 2007
Deine Vorgehensweise gefällt mir gar nicht; zu umständlich.
Zunächst wird ein Varianter Record definiert:
type
T32BitCharField = record
case Integer of
0:
(LongValue:Longint);
1:
(bytes: array of char);
end;