nokta virgül sorunu
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
nokta virgül sorunu
arkadaşlar selamlar
Bu konular daha önce konuşulmuştu ama tam olarak istediğim cevabı bulamadım.
kısaca sorunum 10,15 sayısını sql sorgusu ile QuotedStr kullanarak delphiden insert ettiğimde sayı db de 1015,00 olarak tutuluyor.
maskeleme vs denedim ama halledemedim.
bölgesel ayarlar windows'un standartları olarak duruyor. Bunları değiştirdiğimde bir sorunum yok ama standart kullandığımda sorun yaşıyorum. Bugün piyasada ki ciddi programlara baktığımızda onlarda windows'un standart bölgesel ayarlarını kullanıyor. Bu sorunumu parametre kullanımı dışında aşmamın yolu varmıdır. ?
database olarak firebird kullanıyorum.
Bu konular daha önce konuşulmuştu ama tam olarak istediğim cevabı bulamadım.
kısaca sorunum 10,15 sayısını sql sorgusu ile QuotedStr kullanarak delphiden insert ettiğimde sayı db de 1015,00 olarak tutuluyor.
maskeleme vs denedim ama halledemedim.
bölgesel ayarlar windows'un standartları olarak duruyor. Bunları değiştirdiğimde bir sorunum yok ama standart kullandığımda sorun yaşıyorum. Bugün piyasada ki ciddi programlara baktığımızda onlarda windows'un standart bölgesel ayarlarını kullanıyor. Bu sorunumu parametre kullanımı dışında aşmamın yolu varmıdır. ?
database olarak firebird kullanıyorum.
Querybos.SQL.TExt:=' insert into YAPILMIS_DOLUMLAR(SNO,FIRMA_NO,FIRMA_ADI,TARIH,KILO,STOK_KODU,STOK_ADI) Values('+
' ' + FloatTOStr(sno) + ','+
'' + FLoatTOStr(QDOLUMFIRMA['FIRMA_KODU']) + ','+
'''' + QDOLUMFIRMA['FIRMA_ADI'] + ''','+
'''' + DateToStr(DAte) + ''','+
'' + QuotedStr (FloatTOStr(IBQuery2['KILOSU'])+ ','+
'' + FloatTOStr(QDOLACAKTUPLER['STOK_KODU']) + ','+
'''' + QDOLACAKTUPLER['STOK_ADI'] + ''')';
Querybos.ExecSQL;
' ' + FloatTOStr(sno) + ','+
'' + FLoatTOStr(QDOLUMFIRMA['FIRMA_KODU']) + ','+
'''' + QDOLUMFIRMA['FIRMA_ADI'] + ''','+
'''' + DateToStr(DAte) + ''','+
'' + QuotedStr (FloatTOStr(IBQuery2['KILOSU'])+ ','+
'' + FloatTOStr(QDOLACAKTUPLER['STOK_KODU']) + ','+
'''' + QDOLACAKTUPLER['STOK_ADI'] + ''')';
Querybos.ExecSQL;
hocam bu
FloatTOStr(sno) islemi sonucta sizin bolgesel ayarlarınıza gore bir string dondurur. Benim demek istedigim ise
1.bu stringi al,
2.icinde virgül gordugun karakteri . ile degistir
3.sonra insert sql de kullan
gayet acık ve net
*Bir string icinde ',' ü '.' ya cevirecek bir function yazacaksınız o kadar...
FloatTOStr(sno) islemi sonucta sizin bolgesel ayarlarınıza gore bir string dondurur. Benim demek istedigim ise
1.bu stringi al,
2.icinde virgül gordugun karakteri . ile degistir
3.sonra insert sql de kullan
gayet acık ve net
*Bir string icinde ',' ü '.' ya cevirecek bir function yazacaksınız o kadar...
ÜŞENME,ERTELEME,VAZGEÇME
Sayın bilbeyi
asagıda projemden copy/paste ettigim bir ornek var
burada ReplaceStr(salespr, ',', '.'); ifadesinin oldugu satıra
dikkatlice bakın
Ne goruyorsunuz............
Yukarıda 5 mesajdır ifade etmeye calıstıgım buydu
bende, musterimizde hatasız calısmakta....
asagıda projemden copy/paste ettigim bir ornek var
burada ReplaceStr(salespr, ',', '.'); ifadesinin oldugu satıra
dikkatlice bakın
Ne goruyorsunuz............
Yukarıda 5 mesajdır ifade etmeye calıstıgım buydu
bende, musterimizde hatasız calısmakta....
Kod: Tümünü seç
procedure TfrmMain.AddDetailToInterbase(Detail: string);
var
CancelStatus: Integer;
unitpr, salespr, s: string;
begin
with IBSQL1 do
try
unitpr := CurrToStr(PriceConvert(ParseLSV1('BT10', Detail)));
salespr := CurrToStr(PriceConvert(ParseLSV1('BT20', Detail)));
ReplaceStr(unitpr, ',', '.');
ReplaceStr(salespr, ',', '.');
s := 'INSERT INTO DETAIL (TICKETNO, SCALENO, PLUNO, DEPNO, VENDORNO, UNITPRICE, PIECES, WEIGHT, PRICE, CANCELSTATUS, PLUCLASS)';
s := s + ' VALUES(';
s := s + IntToStr(ParseLSV1('BONU', Detail) div 100) + ',' +
IntToStr(ParseLSV1('WANU', Detail)) + ',' +
IntToStr(ParseLSV1('SNR1', Detail)) + ',' +
IntToStr(ParseLSV1('PNAB', Detail)) + ',' +
IntToStr(ParseLSV1('BEN1', Detail)) + ',' +
unitpr + ',' +
IntToStr(ParseLSV1('POS1', Detail)) + ',' +
IntToStr(ParseLSV1('GEW1', Detail)) + ',' +
salespr + ',';
CancelStatus := ParseLSV1('STST', Detail);
if CancelStatus = 0 then
s := s + '-1,'
else
s := s + '0,';
s := s + IntToStr(ParseLSV1('PAR1', Detail)) + ')';
//Transaction.StartTransaction;
SQL.Text := s;
ExecQuery;
//Transaction.Commit;
except
on E: Exception do
begin
//Transaction.Rollback;
WriteErrLog('Interbase Tabloya Detail kayıt yazılamadı!.Kayıt iptal edildi.'
+ CrLf + E.Message + CrLf + s);
end;
end;
end;
ÜŞENME,ERTELEME,VAZGEÇME