CYFROWY BARON • PROGRAMOWANIE • Zobacz wątek - Funkcja Format - pytanie

Funkcja Format - pytanie

dział ogólny

Funkcja Format - pytanie

Nowy postprzez Corvis » poniedziałek, 16 maja 2011, 12:54

Witam,

Tworzę sobie zapytanie SQL: (nie daje całego kodu bo nie ma potrzeby)

KOD cpp:     UKRYJ  
String SQL = Format("call pdokMatDodajPozycjeDokumentacji(%d,%d,%d,%f,%d,'%s');",OPENARRAY(TVarRec,(cdsDokMatNaglowki->FieldByName("idDokMat")->AsInteger,p.Lp,p.IdIndeksu,p.Ilosc,p.IdJednostki,p.Uwagi)));
 


p.Ilosc jest liczbą double. Problem polaga na tym że po sformatowaniu otrzymuję:

call pdokMatDodajPozycjeDokumentacji(3,1,95,1,00,1,'');

ilosc = 1,00 a powinna być 1.00 wie ktoś może jak to przeskoczyć, że formatował liczy po kropce nie po przecinku ??

Pozdrawiam
"Sukcesy trwają, dopóki ich ktoś nie spieprzy. Porażki są wieczne"

Dr Gregory House
Avatar użytkownika
Corvis
Programista I
Programista I
 
Posty: 880
Dołączył(a): sobota, 26 lipca 2008, 00:31
Podziękował : 80
Otrzymał podziękowań: 30
System operacyjny: WINDOWS 7 64-bity
Kompilator: Praca - C++ Builder XE2 ENTERPRISE - Update 4, Dom - C++ Builder XE4 - Uddate 1
Gadu Gadu: 0
    Windows VistaChrome

Re: Funkcja Format - pytanie

Nowy postprzez Cyfrowy Baron » wtorek, 17 maja 2011, 08:29

To zależy od ustawień w aplecie Opcje regionalne i językowe. Można oczywiście wymusić by program używał jako separatora dziesiętnego kropki zamiast przecinka.

KOD cpp:     UKRYJ  
 String sText = "call pdokMatDodajPozycjeDokumentacji(%d,%d,%d,%f,%d,'%s');";

 int sDM = 3, sLp = 1, sIdIndeksu = 95, sJednostki = 1;
 String sUwagi = "";
 double dIlosc = 1;

 TVarRec tVR[] = {sDM, sLp, sIdIndeksu, dIlosc, sJednostki, sUwagi};


 TFormatSettings fs;
// GetLocaleFormatSettings(0, fs);   - to zbędne
 fs.DecimalSeparator = '.'; /* ustawienie kropki jako separatora dziesietnego */

 String SQL = Format(sText, tVR, ARRAYSIZE(tVR), fs);

 Edit1->Text = SQL;


Nie powoduje to żadnych zmian w systemie, anie nawet globalnie w całym programie. Zmiana przecinka na kropkę dotyczy tylko tego fragmentu kodu. Można tego kodu używać zawsze, czyli nawet wtedy, gdy w systemie masz ustawioną kropkę.

Za ten post autor Cyfrowy Baron otrzymał podziękowanie od:
Corvis
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4716
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 442
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    Windows XPFirefox

Re: Funkcja Format - pytanie

Nowy postprzez Corvis » środa, 25 maja 2011, 08:05

Dzięki baronie :-)
"Sukcesy trwają, dopóki ich ktoś nie spieprzy. Porażki są wieczne"

Dr Gregory House
Avatar użytkownika
Corvis
Programista I
Programista I
 
Posty: 880
Dołączył(a): sobota, 26 lipca 2008, 00:31
Podziękował : 80
Otrzymał podziękowań: 30
System operacyjny: WINDOWS 7 64-bity
Kompilator: Praca - C++ Builder XE2 ENTERPRISE - Update 4, Dom - C++ Builder XE4 - Uddate 1
Gadu Gadu: 0
    Windows VistaChrome


  • Podobne tematy
    Odpowiedzi
    Wyświetlone
    Ostatni post

Powrót do Ogólne problemy z programowaniem

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zalogowanych użytkowników i 5 gości