• 30-12-2010, 14:34:37
    #1
    Üyeliği durduruldu
    merhaba,

    nvarchar(50) bir hücre var. Buraya 50 karaktere kadar veri girilebiliyor.Ama formdan 30 karakterlik bir veri gelince 20 tane boşluk ekliyor 50 ye tamamlamak için.

    bu sorunu nasıl giderebilirim?

    teşekkürler.
  • 01-01-2011, 06:27:26
    #2
    normali bu ki zaten. boşluk ekler ama sen veriyi çekerken o boşlukları yok sayabilirsin.
    misal select * from tablo where 50='30karakter'
    bu şekil yazdığında sana çıktıyı verir.
    eğer bu şekilde kullanmayıp bi otomasyonun içinden kullanıp veri doğrulatmak istiyorsan da sql den gelen verideki boşlukları sildirebilirsin trim boşlukların hepsini siler ltrim soldaki boşlukları siler rtrim sağdaki boşlukları siler.
  • 01-01-2011, 14:00:08
    #3
    Üyeliği durduruldu
    hm anladım yani asp den ayarlayacağız onu. Peki, Teşekkür ederim.
  • 01-01-2011, 17:31:11
    #4
    Eposta Aktivasyonu Gerekmekte
    varchar yada nvarchar değişken içerikler için kullanılabilir tiplerdir. Sizin belittiğiniz karakter sayısına kadar ve ondan az verilerin tutulmasını sağlar. Yani tutulacak karakter sizin belirtmiş olduğunuz karakter sayısından az ise nvarchar yada varchar karakter sayısını alanın karakter sayısına tamamlamaz , girilen karakter kadar byte cinsinden yer ayırır.

    Eğer girilecek karakter sayısı belli ise char kullanmanız hız açısından daha elverişli olacaktır.

    Boşluk bir karakterdir.

    Daha detaylı bilgi almak için
    http://www.sqlogren.com/?tag=nvarchar
  • 02-01-2011, 01:15:15
    #5
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Boşluk bıraktığını nerden anladın? Normalde böyle birşey yapmaz nvarchar. Çünkü sen 10'da girsen 30'da girsen o geri kalanları otomatik siler. KB açısından yer kazandırır sana. Nvarchar ile char arasındaki fark budur. Farklı birşey olmalı. Veriyi çekince kaç karakter olarak getiriyor?
  • 02-01-2011, 18:48:50
    #6
    Üyeliği durduruldu
    rob33n adlı üyeden alıntı: mesajı görüntüle
    Boşluk bıraktığını nerden anladın? Normalde böyle birşey yapmaz nvarchar. Çünkü sen 10'da girsen 30'da girsen o geri kalanları otomatik siler. KB açısından yer kazandırır sana. Nvarchar ile char arasındaki fark budur. Farklı birşey olmalı. Veriyi çekince kaç karakter olarak getiriyor?
    hocam nerden anlıyım boşluk var ordan anlıyorum vahi indi ordan biliyorum haha

    teşekkür ederim cevap için ama boşluk gerçekten koyuyor benim için de ilginç bi durum oldu bu. konuda yazdığım gibi mesela Nvarchar(50) diyelim veri türü. Adres olsun misal. Formdan gelen müşteri adresi misal 25 karakterse db ye kaydedilince yanında 25 karakter boşluk koyuyor 50 karaktere tamamlıyor. O verileri farklı bi sayfada textbox içine falan yerleştirince de o boşluklar <%=rs("adres")%> ile olduğu gibi geliyor. Ben de çözümü trim yaptırarak buldum boşlukları sildiriyorum ama tabi senin dediğin gibi, bayt kaybı sözkonusu o yüzden problemi kökten çözmek istiyorum.
  • 03-01-2011, 16:10:13
    #7
    Aşağıdakilerden farklı birşey var mı acaba?
  • 03-01-2011, 18:39:37
    #8
    Eger hala sıkıntı yaşıyorsan

    select replace(kullaniciadi, ' ', '') from tablomuz where kullaniciadi != ''