DBEdit boşluk oluşturuyor

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Kullanıcı avatarı
pentiumkivanc
Üye
Mesajlar: 350
Kayıt: 19 Şub 2004 10:24
İletişim:

DBEdit boşluk oluşturuyor

Mesaj gönderen pentiumkivanc »

Selamlar,
Yaptığım bir projede Interbase 6.0 kullanıyorum oluşturduğum varchar(20) tipindeki alanlara yeni kayıt eklerken kayıt yapıldıktan sonra varchar tipindeki bu alanlarda yazdığım bilgilerin sonuna 20 karakteri tamamlayacak kadar boşluk ekleniyor. Bunun sebebi ne olabilir. Forumda arama yaptım ama rastlayamadım. Eğer vardı da atladıysam şimdiden özür dilerim
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7602
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

Selam,

Varchar yerine CHAR olarak ayarlamış olmayın. Char veritipi dediğiniz şekilde yapar çünki. Bir kontrolde fayda var.

Kolay gelsin.
Kullanıcı avatarı
pentiumkivanc
Üye
Mesajlar: 350
Kayıt: 19 Şub 2004 10:24
İletişim:

Mesaj gönderen pentiumkivanc »

İlginize teşekkür ederim, ilk başta char yapmıştım hepsini varchar yaptım ama sorun devam ediyor
Kullanıcı avatarı
sadettinpolat
Moderator
Mesajlar: 2131
Kayıt: 07 Ara 2003 02:51
Konum: Ankara
İletişim:

Mesaj gönderen sadettinpolat »

tipi char olan alanlara kayıt girdikten sonra bu kayıtların alan tipini varchar yaptıysanız kayıtlara daha önceden eklenmiş olan boşluklar silinmez. boşlukları bir şekilde bu kayıtlardan temizlemeniz gerekir.
"Sevmek, ne zaman vazgececegini bilmektir." dedi, bana.

---
http://sadettinpolat.blogspot.com/
Kullanıcı avatarı
pentiumkivanc
Üye
Mesajlar: 350
Kayıt: 19 Şub 2004 10:24
İletişim:

Mesaj gönderen pentiumkivanc »

Ama yeni kayıt ekleyince de çıkyıor. Tabloyu tekrar drop ettim yeniden create ledim ama aynı
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7602
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

hocam domain vs. kullanıyorsan onu da bir kontrol et. Eğer onda da bir anormallik yoksa

1. boşluk bıraktığını nasıl test ediyorsun.

2. Tablo create kodunu ve varsa domain kodlarını bir gönder.

Kolay gelsin.
Kullanıcı avatarı
pentiumkivanc
Üye
Mesajlar: 350
Kayıt: 19 Şub 2004 10:24
İletişim:

Mesaj gönderen pentiumkivanc »

İlginize teşekkürler tabloda domain kullanmıyorum. Boşlukları test işlemi ise kayıttan sonra DBEdit e tekrar cursor geldiğinde anlamıştım kayıttan sonra DBEditx.text ini length ile ölçtüğümde bunun veritabanında izin verdiğim aralık kadar örneğin hesap kodu için 20 karakter olduğunu gördüm

Kod: Tümünü seç

-------------------------- TABLO ALANLARI  -------------------

CREATE TABLE "CARI" 
(
  "SATIRID"	INTEGER NOT NULL,
  "KARTTIPI"	INTEGER,
  "HESAPKODU"	VARCHAR(20) NOT NULL,
  "UNVAN1"	VARCHAR(50),
  "UNVAN2"	VARCHAR(50),
  "YETKILI1"	VARCHAR(50),
  "YETKILI2"	VARCHAR(50),
  "FATURAADRES1"	VARCHAR(50),
  "FATURAADRES2"	VARCHAR(50),
  "FATURAADRES3"	VARCHAR(50),
  "VERGIDAIRESI"	VARCHAR(50),
  "VERGINO"	VARCHAR(50),
  "MUTABAKATTARIH"	DATE,
  "ISKONTORAN"	FLOAT,
  "OPSIYONGUNU"	INTEGER,
  "ODEMEGUNU"	INTEGER,
  "DOVIZCINSI"	VARCHAR(3),
  "BOLGEKOD"	VARCHAR(5),
  "GRUPKOD"	VARCHAR(5),
  "KOD1"	VARCHAR(5),
  "KOD2"	VARCHAR(5),
  "KOD3"	VARCHAR(5),
  "KOD4"	VARCHAR(5),
  "KOD5"	VARCHAR(10),
  "KOD6"	VARCHAR(10),
  "KOD7"	VARCHAR(10),
  "KOD8"	INTEGER,
  "KOD9"	INTEGER,
  "KOD10"	FLOAT,
  "LOGKULL"	VARCHAR(15),
  "LOGTARIH"	TIMESTAMP,
  "MUHASEBEKOD"	VARCHAR(50),
  "KULSATISFIYAT"	INTEGER,
  "UYGFUYATLISTENO"	INTEGER,
  "YETKILIMAIL1"	VARCHAR(50),
  "YETKILIMAIL2"	VARCHAR(50),
  "TELEFON1DAHILI"	VARCHAR(4),
  "TELEFON1ALAN"	VARCHAR(4),
  "TELEFON1NO"	VARCHAR(7),
  "TELEFON2DAHILI"	VARCHAR(4),
  "TELEFON2ALAN"	VARCHAR(4),
  "TELEFON2NO"	VARCHAR(7),
  "TELEFON3DAHILI"	VARCHAR(4),
  "TELEFON3ALAN"	VARCHAR(4),
  "TELEFON3NO"	VARCHAR(7),
  "FAX1ALAN"	VARCHAR(4),
  "FAX1NO"	VARCHAR(7),
  "FAX2ALAN"	VARCHAR(4),
  "FAX2NO"	VARCHAR(7),
  "BANKAKOD1"	VARCHAR(20),
  "BANKAILKOD1"	VARCHAR(4),
  "BANKASUBEKOD1"	VARCHAR(5),
  "BANKAHESAP1"	VARCHAR(12),
  "BANKAKOD2"	VARCHAR(20),
  "BANKAILKOD2"	VARCHAR(4),
  "BANKASUBEKOD2"	VARCHAR(5),
  "BANKAHESAP2"	VARCHAR(12),
  "BANKAKOD3"	VARCHAR(20),
  "BANKAILKOD3"	VARCHAR(4),
  "BANKASUBEKOD3"	VARCHAR(5),
  "BANKAHESAP3"	VARCHAR(12),
  "ALISKUR"	FLOAT,
  "SATISKUR"	FLOAT,
  "KREDILIMITI"	FLOAT,
  "KREDILIMITIDVZ"	FLOAT,
 PRIMARY KEY ("SATIRID", "HESAPKODU")
);



-------------------------  POST TRIGER I ------------------
SET TERM
CREATE TRIGGER "MSJ_CHK" FOR "CHK"
AFTER UPDATE AS
BEGIN
POST_EVENT 'POSTEDILDI';
END


--------------------------  GENERATOR   ---------------------------
CREATE GENERATOR GEN_CHK


-------------------------- AUTOINC PROS. -----------------------
SET TERM
CREATE PROCEDURE "AUTOCHK" 
RETURNS
(
  "AUTO_CHKNO" INTEGER
)
AS
BEGIN
AUTO_CHKNO = GEN_ID(GEN_CHK,1);
END
Kullandığım database sunucu ilk önce Interbase 6.0 idi. dün akşam Firebird son sürümünü yükledim. Firebird kurmadan önce Interbase servisini sonlandırdım. Uninstall yaptım baktım gds32.dll de kalkmış. firebird kurdukran sonra yukarıdaki değerleri tekrar drop-create ettim sonuç aynı.
Kullanıcı avatarı
sadettinpolat
Moderator
Mesajlar: 2131
Kayıt: 07 Ara 2003 02:51
Konum: Ankara
İletişim:

Mesaj gönderen sadettinpolat »

veritabanı tarafında herşey gayet normal görünüyor. hata delphi tarafında olabilir.. hata konusunda ise şuan aklıma birşey gelmiyor :(
"Sevmek, ne zaman vazgececegini bilmektir." dedi, bana.

---
http://sadettinpolat.blogspot.com/
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7602
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

hocam direk alanın değerine bir baksanız, acaba kullandığınız DBEdit'temi bir sorun var.

Length(Dataset1.FieldByName('UNVAN1').ASString);

gibi. Yoksa herşey normal.

Kolay gelsin.
Kullanıcı avatarı
nitro
Üye
Mesajlar: 1112
Kayıt: 23 Ağu 2004 01:18
Konum: Çanakkale
İletişim:

aynı sorunu ben de yaşıyorum

Mesaj gönderen nitro »

s.a. aynı sorunu ben de yaşıyorum. hatta foruma bu durumu sormak için girmiştim.
durum şöyle: char(60) diye bir alan var.
dbedit'e bağlı.
mesela dbedite girip bu char 60 tipindeki alanı değiştirmek istiyorum.
mesela ismin sonuna 'sayın' olmuyo. ancak 5 karakter delete tuşuyla silersem o zaman yazabiliyorum. yani bir şekilde boşluklar ' ' ile dolduruluyor. birsürü yöntem denedim.
örneğin: dbeditin onenter olayına dbedit değerininin trim yapılmış halini yazan bir kod yazdım. ama hiç mantıklı değil. böyle olmaması lazım.
yanılıyor muyum? dbedit hep böyle mi çalışır?
Kullanıcı avatarı
pentiumkivanc
Üye
Mesajlar: 350
Kayıt: 19 Şub 2004 10:24
İletişim:

Mesaj gönderen pentiumkivanc »

Hocam tekrar teşekküerler baktım onu da 20 karakter yapıyor, ibexpert e giriyorum oraya da kaydederken boşlukları kaydetmiş. Ama ibexpertten kayıt yapınca normal kayıt yapıyor. başka bir bileşen mi kullansam
Kullanıcı avatarı
pentiumkivanc
Üye
Mesajlar: 350
Kayıt: 19 Şub 2004 10:24
İletişim:

Mesaj gönderen pentiumkivanc »

Sorun çözüldü, Formun üstündeki Query deki Fieldlerin varchar tipinde olanlarda FixedChar true durumundaydı. Bu fieldlerin FixedChar özelliklerini false yaptım. Sorun düzeldi. :wink:
Ali Erdoğan
Kıdemli Üye
Mesajlar: 1026
Kayıt: 11 Şub 2005 02:12
Konum: İstanbul

Mesaj gönderen Ali Erdoğan »

Merhaba Aynı olay bende de oluyordu.Ms sql server ve ado kullanıyorum.Aynı şekilde fieldların fixedchar özelliğini false yaptım fakat halen boşluk üretmeye devam ediyor.Ben bunu query değilde adotable da denedim fakat olak çözülmedi.Boşluklar can sıkmaya devam ediyor.
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7602
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

alanın tipi CHAR mı, VARCHAR mı?
onaydin

Mesaj gönderen onaydin »

{Sorudışı}
Banamı öyle göründü bilmem ama 15,20 tane fazladan alan görüyorum.
Cevapla