[Delphi6]Srtinggrid i konwersja

0

Witam,
Mam problem i nie wiem jak temu sprostać:
Po wpisaniu zawartości ze stringgrida do tabli bazy danych[interbasa] jest problem z tym że przy wpisywaniu liczb (z przecinkiem) z celki do pola(typu numeric(10,2) bazy danych, niby wszystko sie wpisuje tylko że zamiast np: 12,5 z StringGrid1.Cells[i,j] w tabeli bazy w odpowiednim polu wyswietla sie 125. Czy ktos wie jak to madrze przekonwertować?
A i jeszcze czy da sie po zwykłej konwersji crrtostr(x), uzyskać w kontrolce typu string: x,xx zł?
Szukałem na forum i w necie ale nic nie mogę wykminić.
Z góry dziekuje za pomoc. Pozdrawiam:)

0
  1. jak zapisujesz z SG do bazy
  2. co to jest crrtostr?
  3. co rozumiesz przez "kontrolka typu string"
  4. do trzymania kwot w delphi jest typ currency - stałoprzecinkowy (4 miejsca po przecinku do trzymania wartości ale tylko 2 są wyświetlane)
0

No więc po kolei:
1.za pomoca zapytania(klikam na buttona i dodaje do bazy zapytaniem insert):

 for i:=1 to StringGrid1.RowCount-1 do
  begin
    DM1.IBQuery1.Close;              
    DM1.IBQuery1.SQL.Clear;           
    DM1.IBQuery1.SQL.Add('INSERT INTO Tabela1 (Pole1,Pole2,Pole3) VALUES('''+StringGrid1.Cells[1,i]+''','''+StringGrid1.Cells[2,i]+''','''+StringGrid1.Cells[3,i]+''')');  
    DM1.IBQuery1.ExecSQL;
  end;

2.A przepraszam funkcja CurrToStr(x);
3.A przez kontrolkę typu string rozumiem taką kontrolkę która wyswietla dane typu string np:Edit,StringGrid;
4.Nio w porządku, chodziło mi o to jak np.w StringGridzie wyswietlić zmienną currency, konkretnie chciałbym aby dana kolumna stringgrida wyswietlała mi kwoty pienieżne.

0
  1. parametry, with -
for i:=1 to StringGrid1.RowCount-1 do
  with DM1.IBQuery1, SQL do
  begin
    Close;              
    Clear;           
    Add('INSERT INTO Tabela1 (Pole1,Pole2,Pole3) VALUES(:pole1, :pole2, :pole3)');  
    ParamByName('pole1').AsString := StringGrid1.Cells[1,i];
    ParamByName('pole2').AsString := StringGrid1.Cells[1,i];
    ParamByName('pole3').AsCurrent := StrToCurr(StringGrid1.Cells[1,i]);
    ExecSQL;
  end;

Edit.Text := Format('%m', [12.4]);

0

Dziękuje ślicznie Misiekd :-)
Poprawiłem i jest wszystko tak jak powinno być!!!
Dziękuję i Pozdrawiam :-)

1 użytkowników online, w tym zalogowanych: 0, gości: 1