insert into rakamda virgül hatası

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
erdogan_ozkaya
Üye
Mesajlar: 839
Kayıt: 03 Eki 2007 02:00

insert into rakamda virgül hatası

Mesaj gönderen erdogan_ozkaya »

Merhaba Arkadaşlar aşağıdaki kod ile kayıt çoğaltıyorum, eğer maaşı 2797 ise sorun yok ama 2797,55 küsürat var ise sql de hata veriyor nasıl düzeltebilirim ?

ALAN : PERSONEL_NET_MAAS float


teşekkürler



delphi

Kod: Tümünü seç

   qryKAYIT_COGALT_DB.Close;
            qryKAYIT_COGALT_DB.SQL.Clear;
            qryKAYIT_COGALT_DB.SQL.Add(' INSERT INTO PERSONEL_PROJE_PUANTAJ  '
                                      +' (PERSONEL_KIMLIK,PERSONEL_ADI_SOYADI,PERSONEL_TC_NO,MESLEK_KODU,PROJE_KIMLIK, '
                                      +' PERSONEL_NET_MAAS, '
                                      +' PERSONEL_BRUT_MAAS, '
                                      +' HAFTA_ICI_MESAI_ORAN, '
                                      +' HAFTASONU_MESAI_CMRT_ORAN, '
                                      +' HAFTASONU_MESAI_PAZAR_ORAN, '
                                      +' BAYRAM_MESAI_ORAN, '
                                      +' RESMI_TATIL_MESAI_ORAN, '
                                      +' CALISILAN_FIRMA, '
                                      +'EKLEYEN  )'




                               +' SELECT PERSONEL_KIMLIK, ADI+'+#39+' '+#39+'+SOYADI, TC_NO, MESLEKI_KODU, GOREV_YERI,'

                               + dbedtA_PERSONEL_NET_UCRET.Text    +', '
                               + dbedtA_PERSONEL_BRUT_UCRET.Text   +', '
                               + dbedtHAFTA_ICI_MESAI.Text         +', '
                               + dbedtHAFTASONU_MESAI_CMRT.Text    +', '
                               + dbedtHAFTASONU_MESAI_PAZAR.Text   +', '
                               + dbedtBAYRAM_MESAI.Text            +', '
                               + dbedtRESMI_TATIL_MESAI.Text       +', '
                               + KULLANICI_GIRIS.qryCALISILAN_FIRMA_DB.FieldByName('KIMLIK').Text +', '

                               +#39+ KULLANICI_GIRIS.qryKULLANICI_DB.FieldByName('GORUNEN_AD').Text   +' '+#39+''


                              +' FROM PERSONEL_BILGILERI  '
 

                                     +' WHERE TC_NO =  '+#39+qryPERSONEL_PROJE_DAGILIM.FieldByName('TC_NO').Text+#39+''
                                     +' AND CALISILAN_FIRMA_KIMLIK = '+#39+KULLANICI_GIRIS.qryCALISILAN_FIRMA_DB.fieldbyname('KIMLIK').Text+#39+'');
 
                qryKAYIT_COGALT_DB.ExecSQL;
                qryKAYIT_COGALT_DB.close;


SQL SORGUSU

Kod: Tümünü seç

 INSERT INTO PERSONEL_PROJE_PUANTAJ   
 (
 PERSONEL_KIMLIK,
 PERSONEL_ADI_SOYADI,
 PERSONEL_TC_NO,
 MESLEK_KODU,PROJE_KIMLIK,  
 PERSONEL_NET_MAAS,  
 PERSONEL_BRUT_MAAS,  
 HAFTA_ICI_MESAI_ORAN,  
 HAFTASONU_MESAI_CMRT_ORAN,  
 HAFTASONU_MESAI_PAZAR_ORAN,  
 BAYRAM_MESAI_ORAN,  
 RESMI_TATIL_MESAI_ORAN,  
 CALISILAN_FIRMA, 
 EKLEYEN  
 ) 
 
 SELECT 
 
 PERSONEL_KIMLIK, 
 ADI+' '+SOYADI, 
 TC_NO, 
 MESLEKI_KODU, 
 GOREV_YERI,
 2000, 
[b] 2797,55, [/b] --- BU ALANI ÇÖZMEM LAZIM NASIL YAPABİLİRİM  ALAN : PERSONEL_NET_MAAS	 float
 50, 
 50, 
 50, 
 100, 
 100, 
 19, 
 'ERDOĞAN ÖZKAYA ' 
 
 FROM PERSONEL_BILGILERI   
 
 WHERE TC_NO =  '35153344794' AND CALISILAN_FIRMA_KIMLIK = '19'
Kullanıcı avatarı
greenegitim
Üye
Mesajlar: 713
Kayıt: 28 Nis 2011 10:33
Konum: İstanbul

Re: insert into rakamda virgül hatası

Mesaj gönderen greenegitim »

virgülleri noktaya dönüştür
Mücadele güzelleştirir!
erdogan_ozkaya
Üye
Mesajlar: 839
Kayıt: 03 Eki 2007 02:00

Re: insert into rakamda virgül hatası

Mesaj gönderen erdogan_ozkaya »

nasıl bir yol izlemeliyim ?
Kullanıcı avatarı
fesiharslan
Üye
Mesajlar: 591
Kayıt: 20 Eki 2006 11:37
Konum: Erzurum
İletişim:

Re: insert into rakamda virgül hatası

Mesaj gönderen fesiharslan »

Merhaba;
Adım adım anlatayım.

1- Public veya Private kısmında bir format tip tanımlayalım.

Kod: Tümünü seç

  public
    FSayisalFormat: TFormatSettings;
2- Formun OnCreate olayında veya Unit'in initialization direktifinin hemen altında tip özelliklerini atayalım.

Kod: Tümünü seç

procedure TForm1.FormCreate(Sender: TObject);
begin
  FSayisalFormat := FormatSettings;
  FSayisalFormat.DecimalSeparator := '.';
end;
3- Asıl formatlama kodu birçok satırında tekrar edeceğinden fonksiyon olarak yazılmasında fayda vardır.

Kod: Tümünü seç

function TForm1.GetOndalikDuzenle(Sayi: double): string;
begin
  Result := Formatfloat('0.##', Sayi, FSayisalFormat);
end;
4- Kullanımı

Kod: Tümünü seç

procedure TForm1.Button1Click(Sender: TObject);
begin
  Caption := GetOndalikDuzenle(StrToFloat(Edit2.Text));
end;
Sizin kodlarınızdan bir alıntı ile örnek verecek olursam;

Kod: Tümünü seç

    ...
    + GetOndalikDuzenle(StrToFloat(dbedtA_PERSONEL_NET_UCRET.Text))    +', '
    + GetOndalikDuzenle(StrToFloat(dbedtA_PERSONEL_BRUT_UCRET.Text))   +', '
    + GetOndalikDuzenle(StrToFloat(dbedtHAFTA_ICI_MESAI.Text))        +', '
    ...
İyi çalışmalar.
erdogan_ozkaya
Üye
Mesajlar: 839
Kayıt: 03 Eki 2007 02:00

Re: insert into rakamda virgül hatası

Mesaj gönderen erdogan_ozkaya »

Çok teşekkür Ederim aşağıdaki gibi çözdüm :)

Kod: Tümünü seç

procedure TPROJE_PUANTAJ_CIZELGESI.editNET_MAASChange(Sender: TObject);
begin
       editNET_MAAS.Text:=StringReplace(editNET_MAAS.Text,',','.',[rfReplaceAll]);
end;
Kullanıcı avatarı
greenegitim
Üye
Mesajlar: 713
Kayıt: 28 Nis 2011 10:33
Konum: İstanbul

Re: insert into rakamda virgül hatası

Mesaj gönderen greenegitim »

Kod: Tümünü seç

function GetSQLParaDegeri(ParasalDeger: Double): String;
var
  TutarStr: String;
begin
  { * Para değerlerinde virgül yerine nokta olmalı * }

  TutarStr := FLoatToStr(ParasalDeger);
  While Pos(',', TutarStr) > 0 do
    TutarStr[Pos(',', TutarStr)] := '.';
  Result := TutarStr;
end;

Kullanımı

Kod: Tümünü seç

X:=GetSQLParaDegeri(qry_ModellerTOPTANFIYATI.Value)
Mücadele güzelleştirir!
Cevapla