dbcombobox beni deli edeck.

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
y.kulac
Üye
Mesajlar: 276
Kayıt: 08 Kas 2003 12:03
Konum: serdivan/sakarya

dbcombobox beni deli edeck.

Mesaj gönderen y.kulac »

s.a.
projemde firebird1.5 ve ibx bileşenleri kullanıyorum.
dbcombox1'in items özelliğini iller ile dolduruyorum.
diğer dbcombobox'larında items bölümünü uygun şekilde dolduruyorum.
kayıt girişi sırasında dbcombobox1'e gelince D harfine basınca bdcombobox un otomatik tamlama özelliği var ve DÜZCE ili çıkıyor ve ben enter veya ok tuşları ile bir alttaki edit veya combobox'a a geçiyorum.
bütün bilgiler girildikten sonra kaydet olayı gerçekleşiyor.
kayıt olayında

Kod: Tümünü seç

ibdataset1.post;
datamodule.ibtransaction1.commit......;
kodlarını kullanıyorum. o esnada kaydediltikten sonra görünen ekranda bütün alanlar dolu görünüyor.
fakat daha sonra kaydedilen bu kaydı sorgulayıp buluyorum.
ama ekrana gelen sonuçta dbcombox lardan seçilen bilgilerin tabloya yazılmamış olduğunu görüyorum. adaha sonra aynı kaydı düzelttiğimde
zorda olsa bu bilgiler görünüyor. ama bir kaydı 2-3 defa düzeltmem gerekiyor.

daha böyle bir sorunla karşılaşan var mı? delphi ile birlikte gelen dbcombobox' lar kararsız mı çalışıyorlar?
bu sorunumu nasıl halledebilirim?

iyi çalışmalar.
ikut

Mesaj gönderen ikut »

böyle bir şeyi ilk kez duyuyorum acaba kullandığınız 3.party comboboxlarmı kontrol etseniz. birde atama için text özelliği ile uğraşıyorsan olmama ihtimali var.
Kullanıcı avatarı
y.kulac
Üye
Mesajlar: 276
Kayıt: 08 Kas 2003 12:03
Konum: serdivan/sakarya

Mesaj gönderen y.kulac »

3. parti bileşen olarak jedi bileşenleri kurulu. ama ben delphi ile gelen standart dbcombobx ları kullanıyorum. dbcomboboxların items lerine değerleri giriyorum. örneğin

Kod: Tümünü seç

evli
bekar
dul
diğer
gibi.
bdcombobox'a e harfini yazınca otomatik evli'ye tamamlıyor ve ben bir alt satıra geçiyorum. kaydet butonuna basıyorum o anda ekranda dbcombobox'ta evli ifadesi görünüyor. ama o formu kapatıp başka bir formda sorgulama yapınca dbcombox'taki değer veritabanına yazılmamış görünüyor.
Ottoman

Mesaj gönderen Ottoman »

Kod: Tümünü seç

procedure TForm1.FormCreate(Sender: TObject);
begin
 DBComboBox1.Items.Add('Evli');
 DBComboBox1.Items.Add('Bekar');
 DBComboBox1.Items.Add('dul');
 DBComboBox1.Items.Add('diger');
end; 
.......Kod'u Formun OnCreate olayına tanımladıktan sonra;

Object inspector'dan;

DBComboBox'un:

DataField=MEDENI_HAL //Tabloda atadığın Field.(Ne ise)
DataSource=DataSource1

.......Ayarlıyorsun! VT'ye Aşağıdaki gibi bir kod'la yazdırıyorsun!
VT,Tablo Yapın Sağlıklı ise!.Bu şekilde yaparsan problem yaşaman imkansız!.??????????????

Kod: Tümünü seç

//Kaydet
var
 deg:integer;
begin
 deg:=Application.MessageBox('KAYDETMEK iSTiYORMUSUNUZ?','KAYDET',MB_YesNO);
 if deg=mrYes Then
   begin
  if IBDataSet1.State in [dsInsert, dsEdit] then
    IBDataSet1.Post;
    Caption:='Verileriniz Kayıt edildi!';
   end
 else
   ShowMessage('KAYIT iSLEMi iPTAL'); 
end;
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

s.a.
vt de medeni halini hangi tipte tutuyorsunuz.
sayısalmı yoksa karaktermi?
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Kullanıcı avatarı
y.kulac
Üye
Mesajlar: 276
Kayıt: 08 Kas 2003 12:03
Konum: serdivan/sakarya

Mesaj gönderen y.kulac »

vt de bütün alanlar varchar tipinde tanımlı. bu işlem hemen hemen bütün db comboboxlar için geçerli.
bende geçici olarak dbcomboboxların onexit olayına şöyle yazdım.

Kod: Tümünü seç

ibdataset1.edit;
ibdataset1MEDENIHAL.value:= dbcombobox1.text;
.
.
.
bu şekilde dbcomboxoların itemslerinden seçili olanı vt ye aktarıyor.
ama bu işlem ne kadar sağlıklı bilemiyorum.
Ottoman

Mesaj gönderen Ottoman »

VT Tablo yapında problem olabilir , kontrol et! Ayrıca Yukarıdaki gibi veya yazdığınız ,şekilde bir button'a "insert" veya Append" komutuyla VT'ye giriş yap..DBComboBoxlardan çıkışla VT'ye giriş yapmağa çalışıyorsunuz!yeni kayıt için "insert" veya Append" komutlarının çalışması lazım!

Kod: Tümünü seç

 IBDataSet1.Append;
 IBDataSet1.FieldByName('MEDENI_HAL).AsString:=DBComboBox1.Text;
VARCHAR Bir alana veri bu şekilde tabloya yazılır.
Cevapla