zapis do bazy liczby z przecinkiem

0

Witam

Otóż mam taki problem, mam StringGrid gdzie są dane, przepisuję je do bazy, w ostatnich kolumnach są liczby z przecinkiem (np 2,456). Wobec tego do bazy idzie, takie zapytanie wygląda tak:

T_WORK = 2,456,

Gdzie przecinek dziesiętny traktowany jest jako rozdzielnik między kolejnymi kolumnami.

Fragment zapytania wygląda tak:

  •   Form1->IBQuery2->SQL->Add("T_WORK = "+Form13->StringGrid1->Cells[linia][wiersz]+",");
    
  •   Form1->IBQuery2->SQL->Add("T_CO = "+Form13->StringGrid1->Cells[linia+1][wiersz]+",");
    
  •   Form1->IBQuery2->SQL->Add("T_DT = "+Form13->StringGrid1->Cells[linia+2][wiersz]+",");
    
  •   Form1->IBQuery2->SQL->Add("PLAN_QTY = "+Form13->StringGrid1->Cells[linia+4][wiersz]);
    
  •   Form1->IBQuery2->SQL->Add("Where ID = " + Form13->StringGrid1->Cells[0][wiersz]);
    

Wyrzucenie trzech pierwszych załączonych linii, gdzie będą liczby z wartością po przecinku pozwala reszcie poprawnie działać.

Czy ktoś może mi podpowiedzieć jak mogę zapisać liczbę zmiennoprzecinkową do bazy ?

Programuję w BCB 2009.

0

Zamiast przecinków jako znak dziesiętny muszą być kropki.

0
MiL napisał(a)

Zamiast przecinków jako znak dziesiętny muszą być kropki.

Nie zgodzę się z tym, ponieważ cyfra z kropką nie jest traktowana jako wartość liczbowa. Teraz wróciłem do projektu, ponieważ chcę go dokończyć ale za żadne skarby świata nie mogę zapisać cyfry z wartością po przecinku.
Ma ktoś jakąś sugestię ?

0

Postaw sobie breakpoint'a na Execute i z menu kontekstowego Debug/evaluate - wyodrębnij treść zapytania siedzące w IBQuery.SQL.Text.
Wklej je sobie do jakiegoś menedżera zapytań BD i zobaczysz co jest nie tak

0
maciejmt napisał(a)

Postaw sobie breakpoint'a na Execute i z menu kontekstowego Debug/evaluate - wyodrębnij treść zapytania siedzące w IBQuery.SQL.Text.
Wklej je sobie do jakiegoś menedżera zapytań BD i zobaczysz co jest nie tak

Nie tak jest podkreślony przecinek, który wygląda mniej więcej tak w treści zapytania

T_WORK = 4__,75, T_CO = 0,23, T_DT = 1,__2

Próbowałem dać to co leci do T_WORK, T_CO i T_DT w apostrofach, ale baza dostając taki znak w apostrofach traktuje go jako string i nie chce zapisać, rekord do którego trafia ten znak ma ustawiony typ double.

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