Sorgulamayı DBcomboboxdan yapmak istiyorum

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Berdem
Üye
Mesajlar: 431
Kayıt: 28 Tem 2003 12:28

Sorgulamayı DBcomboboxdan yapmak istiyorum

Mesaj gönderen Berdem »

Merhaba,
Veritabanım Access ve ADO kullanıyorum.Aşagıdaki koddan yanıt alamıyorum.

Kod: Tümünü seç

procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
  ADODataSet1.Close;
  ADODataSet1.CommandType:=cmdText;
  ADODataSet1.CommandText := 'SELECT * FROM gelen WHERE GELDIGIYER=:Ta';
  ADODataSet1.Parameters.ParamByName('Ta').Value:=DBComboBox3.Text;
  ADODataSet1.Prepared;
  ADODataSet1.Open;
end;
Düz bir edit nesnesi konunca yanıt veriyor.

Kod: Tümünü seç

procedure TForm1.SpeedButton1Click(Sender: TObject);
begin
  ADODataSet1.Close;
  ADODataSet1.CommandType:=cmdText;
  ADODataSet1.CommandText := 'SELECT * FROM gelen WHERE GELDIGIYER=:Ta';
  ADODataSet1.Parameters.ParamByName('Ta').Value:=Edit2.Text;
  ADODataSet1.Prepared;
  ADODataSet1.Open;
end;
Fakat ben sorgulamayı DBcomboboxdan almak istiyorum..
Sevgi ve Saygılar..
Kullanıcı avatarı
husonet
Admin
Mesajlar: 2962
Kayıt: 25 Haz 2003 02:14
Konum: İstanbul
İletişim:

Mesaj gönderen husonet »

Arkadaşlar bu tip parametre gönderimlerinde Trim fonkisyonu ile Stringlerin sağındaki ve solundaki boşlu karakterleri temizleyin.

Arkadaşım senin kodunun çalışması lazım.

Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.
Kullanıcı avatarı
cuneyt22
Üye
Mesajlar: 213
Kayıt: 07 Şub 2004 03:32
İletişim:

Mesaj gönderen cuneyt22 »

peki yaptigin combobox ta sadece 1 verimi var yoksa birden verimi var eger birden fazla veri var ise secili olan veriyi aktarmalisin bu sekilde calisir yok eger combobox ta sadece 1 veri varsa kodun dogru
Berdem
Üye
Mesajlar: 431
Kayıt: 28 Tem 2003 12:28

Mesaj gönderen Berdem »

Gercektende ilginç yanıt veriyor.Edit2 yerine DBcombobox3 koyunca grid ekranında ve comboboxun içinde görünen ne varsa siliyor.
Trim fonksiyonunu biraz acarsan çok sevinirim..
Not combobox içinde bir çok item veri var.
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

S.A.
dbcombo box ve dbgrid in bağlı olduğu tablo adodataset1 mi?
yani eğer ona bağlı ise
1. edite bağlayınca oluyor. çünkü dbcombobxa bağladığın zaman adodataset i close yaptığın için. dbcomboboxun texti boş oluyor.
2. dbcomboboxun texti boş olduğu için sorgun geriye değer döndürmüyor. sonuç olarak gridde ve dbcombobox da kayt görünmüyor.

dbcomboboxu başka bir dataset e bağlamayı dene.
Kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Kullanıcı avatarı
cuneyt22
Üye
Mesajlar: 213
Kayıt: 07 Şub 2004 03:32
İletişim:

Mesaj gönderen cuneyt22 »

ADODataSet1.Parameters.ParamByName('Ta').ASSTRING:=ComboBox3.Items[ComboBox3.ItemIndex];

bunu bir dene istersen eger olmaz ise bilki combobox bos deger atiyor ve aslangerinin dedigi mantigi uygulayacaksin
Berdem
Üye
Mesajlar: 431
Kayıt: 28 Tem 2003 12:28

Mesaj gönderen Berdem »

Yanıt veren tüm arkadaşlara çok teşekkür ediyorum..
Evet dediğiniz gibi hepsi dataset bağlı.Close yapınca combobox boş deger atıyor.O zaman o degerimi sıfırlamadan bir variant degeri saklayınca problemi siz degerli dostlarımız sayesinde çözdüm tekrar tekrar teşekkürler...

Kod: Tümünü seç

procedure TForm1.SpeedButton1Click(Sender: TObject);
var
asd:string;
begin
asd:=DBComboBox3.Text;
  ADODataSet1.Close;
  ADODataSet1.CommandType:=cmdText;
  ADODataSet1.CommandText := 'SELECT * FROM gelen WHERE GELDIGIYER=:Tar';
  ADODataSet1.Parameters.ParamByName('Tar').Value:=asd;
  ADODataSet1.Prepared;
  ADODataSet1.Open;
end;
Kullanıcı avatarı
husonet
Admin
Mesajlar: 2962
Kayıt: 25 Haz 2003 02:14
Konum: İstanbul
İletişim:

Mesaj gönderen husonet »

Bir string'in başındaki ve sonundaki boşlukları atmak için kullanılır

Trim(string)

TrimLeft (string)//stringin sadece başındaki boşlukları atmak için
TrimRight (string) //stringin sadece sonundaki boşlukları atmak için

Bu arada hakketten Database in kapanma olayı aklıma gelmemişti :oops: @Aslangeri Teşekkürler.

Kolay Gelsin...

Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.
Cevapla