DataSource.DataSet' e Runtime Değer Atama

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Kullanıcı avatarı
pro_imaj
Kıdemli Üye
Mesajlar: 1364
Kayıt: 18 Oca 2005 05:45
Konum: Dünyadan

Re: DataSource.DataSet' e Runtime Değer Atama

Mesaj gönderen pro_imaj »

Unutmadan Mesajın "Hiçbirşey Bulunamadı" gelmesi Datasource ve Adoquery başka bir formada fakat o forma erişebiliyorum.
Gün gelecek, dilleri, elleri ve ayakları yapmış oldukları bütün kötülükleri tek tek bildirerek aleyhlerinde şahitlik edecektir. [Nur Suresi 24]
_________________
Kullanıcı avatarı
pro_imaj
Kıdemli Üye
Mesajlar: 1364
Kayıt: 18 Oca 2005 05:45
Konum: Dünyadan

Re: DataSource.DataSet' e Runtime Değer Atama

Mesaj gönderen pro_imaj »

Merhaba;

Sorunu buldum.
Datasource yi belirlediğimizde Dataset zaten otomatik geliyormuş. Ben bunu da program içinden vermeye çalışınca erişim yetkin yok mesajı alıyorum.

Sadece DataSourceyi vererek sorunu çözdüm.

Çok teşekkür ederim.
Gün gelecek, dilleri, elleri ve ayakları yapmış oldukları bütün kötülükleri tek tek bildirerek aleyhlerinde şahitlik edecektir. [Nur Suresi 24]
_________________
Kullanıcı avatarı
badkursat
Üye
Mesajlar: 84
Kayıt: 03 Mar 2014 08:58

Re: DataSource.DataSet' e Runtime Değer Atama

Mesaj gönderen badkursat »

Tablodaki alanın bir dataset olduğundan emin misin

Kod: Tümünü seç

If AdoQuery1Data_Source is TDataSet Then Showmessage('Bu bir DataSet')
Eğer bu alan bir data set ise zaten

Kod: Tümünü seç

DataSource.DataSet := AdoQuery1Data_Source;
kodu çalışacaktır

yada

Bunu bir değişkene alın

Kod: Tümünü seç

var
  ADataSet : TDataSet
begin
  ADataSet := AdoQuery1.FieldByName('Data_Source').Value; 
end;
Eğer bir Dataset değilde sadece Datasetin ismi varsa
ya FindComponent ile bulun
ya da kendiniz arama yapın kendi aramanızı da şöyle yapabilirsin

Kod: Tümünü seç

  
function FindComponentExt(Name:string):TComponent;
Begin  
  for i:=0 to Form1.ComponentCount-1 do
    if not(Form1.Components[i] is TControl) then
     If Form1.Components[i].Name = Name Then 
     	Begin
     		Result := Form1.Components[i];
     		Break;
     	End;
end;
Kullanımı

Kod: Tümünü seç

var
  ADataSet : TDataSet
begin
  If FindComponentExt(AdoQuery1.FieldByName('Data_Source').AsString) is TDataSet Then
      ADataSet := FindComponentExt(AdoQuery1.FieldByName('Data_Source').AsString);
end;
HardRaven
Üye
Mesajlar: 6
Kayıt: 09 Kas 2015 03:29

Re: DataSource.DataSet' e Runtime Değer Atama

Mesaj gönderen HardRaven »

Merhaba,

ADOQuery1Data_Set.Text değerini trimlemeyi denedinizmi ? Veritabanına kaydettiğiniz component isimlerinin başında yada sonunda boşluk yada istenmeyen karakterler olabilir. Dönendeğer aradığınız değer olmayabilir.
Kullanıcı avatarı
pro_imaj
Kıdemli Üye
Mesajlar: 1364
Kayıt: 18 Oca 2005 05:45
Konum: Dünyadan

Re: DataSource.DataSet' e Runtime Değer Atama

Mesaj gönderen pro_imaj »

HardRaven yazdı:Merhaba,

ADOQuery1Data_Set.Text değerini trimlemeyi denedinizmi ? Veritabanına kaydettiğiniz component isimlerinin başında yada sonunda boşluk yada istenmeyen karakterler olabilir. Dönendeğer aradığınız değer olmayabilir.

Dün geceden bu yana uğraştığım sorunu sizin söyleminizle çözdüm teşekkür ederim. :P
Gün gelecek, dilleri, elleri ve ayakları yapmış oldukları bütün kötülükleri tek tek bildirerek aleyhlerinde şahitlik edecektir. [Nur Suresi 24]
_________________
HardRaven
Üye
Mesajlar: 6
Kayıt: 09 Kas 2015 03:29

Re: DataSource.DataSet' e Runtime Değer Atama

Mesaj gönderen HardRaven »

Rica ederim.
Bazen zihin dolu olunca böyle ufak tefek detaylar atlanabiliyor.
Cevapla