Çalışma ortamında TIBQuery'e field ekleme

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
abdulkadir
Kıdemli Üye
Mesajlar: 489
Kayıt: 13 Eyl 2003 09:10
Konum: istanbul
İletişim:

Çalışma ortamında TIBQuery'e field ekleme

Mesaj gönderen abdulkadir »

s.a
arkadaslar Çalışma ortamında TIBQuery'e field ekliyorum bu alana veri girisinde sorun yok ama
verileri görüntüleyemiyorum.
delphiden field editörden add field ile Çalışma anında olusturdugum fielde görüp ekleyince sorun olmuyor ama
bunu calısma esnasında kod ile yapmam gerekiyorki bu fieldler kullanıcının veritabanını kendine göre özellestirmesini saglıyor.

örnek olarak.
servis tablosuna calısma anında OZELALANTANIM_27 adında bir alan ekledim
bunu bu alanı kullanıcını görmesi icin
1 Servis_Query OZELALANTANIM_27 eklenmesi gerekir
2 dbgride yeni bir kolon ekleyip bu kolonu Servis_Query.OZELALANTANIM_27 ye baglamak gerekir Sanırım :D
calısma esnasında bu nasıl yapılır...

ben biraz denemeler yaptım ama tam sonuc alamadım

Kod: Tümünü seç

procedure   TF_ServisF.KOLON_YUKLE();
var
SorguTemp:TIBQuery;
SourceTemp:TDataSource;
x     : Integer;
TmpCol : TColumn;
Field: TField;
FieldName:string;
begin
  SourceTemp:=TDataSource.Create(Application);
  SorguTemp := TIBQuery.Create(Application);
    with SorguTemp do begin
      Database:=D_Genel.x_DB;
      SourceTemp.DataSet:=SorguTemp;
      SourceTemp.DataSet.Active:=false;
      SourceTemp.DataSet.Close;
      SQL.Add('SELECT * FROM CARI, SERVIS WHERE 1 = 2'); // tüm fieldleri görmek için
      Active := TRUE;
      Open;
      First;
     end;
     for x := 0 to SorguTemp.FieldCount - 1 do begin
     Field := SorguTemp.FindField('OZELALANTANIM_'+inttoStr(x)); //OZELALANTANIM ile baslayan tüm kolonları al
     Servis_Q.Fields.Add(Field);
    //memo1.lines.Add(Fields[x].FieldName);//deneme
   end;
      if SorguTemp.RecordCount > -1 then   begin// kayıt varsa uretmeye basla
      while not Eof do  begin
      TmpCol:= ASRXDBGrid1.Columns.Add;
      TmpCol.Title.Caption := SorguTemp.FieldByName('BASLIK').AsString;
      TmpCol.FieldName     :='OZELALANTANIM_27';
      next;
  end;
 end;
end;

procedure TF_ServisF.FormShow(Sender: TObject);
begin
 KOLON_YUKLE();
end;
umarım sorunu anlatabilmisimdir.
sevgiler.
Fikirleri Aktar
Kaynakları Dagıt
Ve
Yoldan Çekil
http://www.Leventler.com.tr
abdulkadir
Kıdemli Üye
Mesajlar: 489
Kayıt: 13 Eyl 2003 09:10
Konum: istanbul
İletişim:

Re: Çalışma ortamında TIBQuery'e field ekleme

Mesaj gönderen abdulkadir »

bu sekilde olması gerekiyormuş

Kod: Tümünü seç

var 
StringField: TIBStringField;  // create edilecek field type bilinmesi gerekiyor
//FloatField: TFloatField;
//IntegerField:TIntegerField;
FieldName:string;

FieldName:='NewField';// create edilecek field adının bilinmesi gerekiyor
      StringField:=TIBStringField.Create(IBQueryName);//datasetin baglı oldugu IBQuery
      StringField.Name:=IBQueryName.Name+FieldName;
      StringField.FieldName:=FieldName;
      StringField.DisplayLabel:=FieldName;
      StringField.Size:=Field.Size;
      StringField.DataSet:=IBQueryName;
iyi calısmalar....
Fikirleri Aktar
Kaynakları Dagıt
Ve
Yoldan Çekil
http://www.Leventler.com.tr
Cevapla