Delphi Dünyası Facebook'ta

Kodbank İndir

! CODEBANK 2012 !

İNDİRMEK&DETAYLI BİLGİ ALMAK İÇİN BURAYI TIKLAYINIZ.

Gönderen Konu: Virgüllü rakam sıkıntısı  (Okunma sayısı 1258 defa)

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

Çevrimdışı cebeser

  • Delphi 2 Level 1
  • *
  • İleti: 53
  • Rep: +0/-1
Virgüllü rakam sıkıntısı
« : 04 Nisan 2011 16:43:32 »
Kullandıklarım:
Delphi Prism
Visual Studio 2008
SQL Server 2008

Hazırlamış olduğum ASP.NET çalışmasında, birkaç virgüllü sayının (örneğin: j=2,3*3,4*4,55*5,76) çarpımından oluşan j adlı değişkenimi "real" olarak tanıttım. (Çarpımda kullanacağım verileri barındıran) Textbox ve label içindeki verileri de stringden reale çevirmek için real.parse(textbox.text) kodunu kullandım.

buraya kadar sorun yok.

j değişkenini sql serverda tanımladığım bir tableye aktarırken hep sorun yaşadım, beceremedim. şöyle ki, veritabanında deneme adlı bir table oluşturup bigint, real, decimal, money, numeri ve float gibi birçok değişkeni denememe rağmen, j'yi hiçbir şekilde olduğu gibi veritabanına aktaramadım.

işte kodum:
  con := new SqlConnection('Data Source=xxx\SQLEXPRESS;Initial Catalog=master;Integrated Security=True');
  Con.Open;
  tran := con.BeginTransaction;
  sql := 'insert into deneme (denemex) values ('''+j+''')';***
  komut:= new SqlCommand(sql, con, tran);
  komut.ExecuteNonQuery;
  tran.commit;
  con.Close;

*** Burada ne denediysem olmadı, internette de bulamadım. 2 haftadır bununla mücadele ediyorum.

Lütfen yardım ediniz.

Çevrimdışı sabanakman

  • Global Moderatör
  • *****
  • İleti: 796
  • Rep: +13/-0
  • Cinsiyet: Bay
  • Delphi Sürümü: e) Hepsi
Ynt: Virgüllü rakam sıkıntısı
« Yanıtla #1 : 04 Nisan 2011 21:11:04 »
Insert Into dahil tüm SQL komutlarında reel sayıların ondalık ayracı her zaman noktadır. Bölgesel ayarlar ne olursa olsun önemi yoktur. Virgül'ün SQL'deki amacı bilgileri birbirinden ayırmaktır.
Şaban Şahin AKMAN

Derin olan kuyu değil kısa olan iptir

Çevrimdışı cebeser

  • Delphi 2 Level 1
  • *
  • İleti: 53
  • Rep: +0/-1
Ynt: Virgüllü rakam sıkıntısı
« Yanıtla #2 : 04 Nisan 2011 21:15:57 »
bu dediğiniz de aklıma geldi.

bu yüzden j'ye 3.43 gibi (noktayla) sabit bir sayı atayarak da denedim, yine olmadı.

sizce nasıl bir şekilde yazmalıyım kodu?

Çevrimdışı sabanakman

  • Global Moderatör
  • *****
  • İleti: 796
  • Rep: +13/-0
  • Cinsiyet: Bay
  • Delphi Sürümü: e) Hepsi
Ynt: Virgüllü rakam sıkıntısı
« Yanıtla #3 : 05 Nisan 2011 08:09:17 »
Olmadı kısmını tam olarak açarsanız bir yorum çıkabilir.

-Ne yaptınız ve ne oldu?
-Kayıt mı eklenmiyor, hata mı çıkıyor.
-Hata çıkıyorsa hata mesajı nedir?
« Son Düzenleme: 05 Nisan 2011 08:10:14 by sabanakman »
Şaban Şahin AKMAN

Derin olan kuyu değil kısa olan iptir

Çevrimdışı cebeser

  • Delphi 2 Level 1
  • *
  • İleti: 53
  • Rep: +0/-1
Ynt: Virgüllü rakam sıkıntısı
« Yanıtla #4 : 05 Nisan 2011 08:21:27 »
sıralama şu:

1. j real olarak tanımlandı

2. 4 tane virgüllü sayının çarpımı j oldu

3. j yi veritabanına aktarırken "varchar double ye dönüşemez" vb hatalar alıyorum

4. veritabanında da "real" veri tipi kullanıldı

Benim anlamadığım, 4 tane virgüllü sayının çarpımından oluşan bir sayı nasıl olur da varchar olur?

Çevrimdışı barutali

  • Administrator
  • *****
  • İleti: 2.228
  • Rep: +54/-0
  • Cinsiyet: Bay
  • Falan filan ...
  • Delphi Sürümü: 2010 - XE2
Ynt: Virgüllü rakam sıkıntısı
« Yanıtla #5 : 05 Nisan 2011 08:51:48 »
veritabanındaki alanın varchar olmadığını teğit edin



Amatör Küme Programcı

Çevrimdışı cebeser

  • Delphi 2 Level 1
  • *
  • İleti: 53
  • Rep: +0/-1
Ynt: Virgüllü rakam sıkıntısı
« Yanıtla #6 : 05 Nisan 2011 09:07:14 »
veritabanındaki alanın varchar olmadığına emin olduğum gibi, değişik sayı türlerini de dededim.

yukarıda yazmıştım onları...

Çevrimdışı barutali

  • Administrator
  • *****
  • İleti: 2.228
  • Rep: +54/-0
  • Cinsiyet: Bay
  • Falan filan ...
  • Delphi Sürümü: 2010 - XE2
Ynt: Virgüllü rakam sıkıntısı
« Yanıtla #7 : 05 Nisan 2011 09:38:16 »
'insert into deneme (denemex) values (''+j+''')'  bunu aşağıdaki gibi değiştirerek denermisin

'insert into deneme (denemex) values ('+j+')'



Amatör Küme Programcı

Çevrimdışı cebeser

  • Delphi 2 Level 1
  • *
  • İleti: 53
  • Rep: +0/-1
Ynt: Virgüllü rakam sıkıntısı
« Yanıtla #8 : 05 Nisan 2011 10:12:16 »
o da denenmişti :(

Çevrimdışı sabanakman

  • Global Moderatör
  • *****
  • İleti: 796
  • Rep: +13/-0
  • Cinsiyet: Bay
  • Delphi Sürümü: e) Hepsi
Ynt: Virgüllü rakam sıkıntısı
« Yanıtla #9 : 07 Nisan 2011 09:25:09 »
Mesela,
Kod: [Seç]
j:='123.75';
sql := 'insert into deneme (denemex) values ('+j+')';
şeklinde bir kod deneyin. Bu koddan da hata gelirse ne hatası geliyor bunu tam olarak eksiksiz yazabilirseniz bir fikir üretilebilir.
Şaban Şahin AKMAN

Derin olan kuyu değil kısa olan iptir