Bir memo içine yazılan kodu çalıştırmanın yolu varmıdır?

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
muttalip
Üye
Mesajlar: 71
Kayıt: 18 Haz 2003 08:58
Konum: İstanbul
İletişim:

Bir memo içine yazılan kodu çalıştırmanın yolu varmıdır?

Mesaj gönderen muttalip »

Memo içindeki ifade aşağıdaki gibi runtime sırasında oluşuyor.

IBTable2.FieldByName('alan1').Value:=IBTable1.FieldByName('alan1').Value;
IBTable2.FieldByName('alan2').Value:=IBTable1.FieldByName('alan2').Value;
IBTable2.FieldByName('alan3').Value:=IBTable1.FieldByName('alan3').Value;
......
bunun gibi devam ediyor.
Muttalip TOPTAŞ

Yıldız Teknik Üniversitesi
Bilgi İşlem Dairesi Başkanlığı

Tel: 0212-3832134
muttalip
Üye
Mesajlar: 71
Kayıt: 18 Haz 2003 08:58
Konum: İstanbul
İletişim:

Re: Bir memo içine yazılan kodu çalıştırmanın yolu varmıdır?

Mesaj gönderen muttalip »

Buradaki iki tabloda farklı veritabanlarındadır. Yapmak istediğim şey bir firebird veritabanındaki tablodan başka bir firebird veritabanındaki tabloya veri aktarmaktır.
Veri tabanlarındaki her iki tabloda aynı yapıdadır.Bir listbox'dan seçtiğim tablonun alan listesini kullanarak diğer tabloya aktarma yapmak için gerekli kodu memo'ya yazıyorum. Sonra bu memo'ya
yazdığım kodu çalıştırmam gerekiyor. Bunu nasıl yapacağımı henüz anlayamadım. Bunun nasıl yapılacağı konusunda yardımlarınızı bekliyorum.
Muttalip TOPTAŞ

Yıldız Teknik Üniversitesi
Bilgi İşlem Dairesi Başkanlığı

Tel: 0212-3832134
yusuf simsek
Üye
Mesajlar: 330
Kayıt: 09 Mar 2004 11:18
Konum: Konya
İletişim:

Re: Bir memo içine yazılan kodu çalıştırmanın yolu varmıdır?

Mesaj gönderen yusuf simsek »

Sorunu tam olarak anlayamadım ama, aynı yapıda ki iki tablo arasında veri aktarım yapmak için memo yerine ilk query'de varsa gerekli filtrelemeleri çalıştır

dana sonra da listboxta seçtiğin alanlar için de ikinci query için insert sorgusunu oluşturup kayıtları aktarabilirsin...

Kod: Tümünü seç

var
   alan: string;
   parametre : string;
begin
  alan:= 'insert into tablo ( ';
 parametre := ' values ( ';
  for i := 0 to listbox1.items.count -1
    begin
       alan:= alan + listbox1.items[i] + ', ';
       parametre := parametre + listbox1.items[i] + ', ';
    end;
  alan:= alan + ' ) ';
  parametre := parametre + ' ) ';

  query2.sql.text := alan + parametre;

 while not query1.eof do
   begin
     for i := 0 to listbox1.items.count -1
          query2.params[i].value := query1.fields[i].value ;
     
      query2.ExecSql;
      query1.next;

   end;
end;
Bugün bir kez daha,
Hiç Birşey Bilmediğimi Öğrendim!!!

https://extrayazilim.com
muttalip
Üye
Mesajlar: 71
Kayıt: 18 Haz 2003 08:58
Konum: İstanbul
İletişim:

Re: Bir memo içine yazılan kodu çalıştırmanın yolu varmıdır?

Mesaj gönderen muttalip »

Teşekkürler Yusuf,

Bu kod işimi görür. Çok miktarda kayıt olduğunda hızlı çalışırmı deneyeceğim. Bende aşağıdaki gibi yaptım. Çok kayıtlı tablolarda yavaş çalışıyor. Amacım birazda aktarma işleminin hızlı olmasıydı. Bunun için bir yöntem arıyordum.

Kod: Tümünü seç

procedure Tv.TableAktar(tblName:string);
var
   kaysay,sayac,fieldcnt:integer;
   FieldList:TFieldList;
   FieldName:WideString;
begin
   IBTable1.Active:=False;
   IBTable2.Active:=False;

   IBTable1.TableName:=tblName;
   IBTable2.TableName:=tblName;
   IBTable2.Active:=True;

   IBTable1.Active:=True;
   IBTable1.First;
   kaysay:=IBTable1.RecordCount;
   IBTable1.First;

   FieldList:=TFieldList.Create(IBTable2);
   fieldcnt:=FieldList.Count;

   IBTable1.First;
   ProgressBar1.Min:=0;
   ProgressBar1.Max:=kaysay;
   ProgressBar1.Position:=0;
   ProgressBar1.Update;
   sayac:=0;
   While Not IBTable1.Eof Do
   Begin
      IBTable2.Insert;
      for sayac:=0 to fieldcnt-1 do
      begin
         FieldName := IBTable2.FieldDefList.Strings[sayac];
         IBTable2.FieldByName(FieldName).Value:=IBTable1.FieldByName(FieldName).Value;
      end;
      IBTable2.Post;
      ProgressBar1.Position:=ProgressBar1.Position+1;
      ProgressBar1.Update;
      IBTable1.Next;
   End;
   IBTable1.Active:=False;
   IBTable2.Active:=False;
end;

Muttalip TOPTAŞ

Yıldız Teknik Üniversitesi
Bilgi İşlem Dairesi Başkanlığı

Tel: 0212-3832134
Lord_Ares
Üye
Mesajlar: 1070
Kayıt: 15 Eki 2006 04:33
Konum: Çorlu

Re: Bir memo içine yazılan kodu çalıştırmanın yolu varmıdır?

Mesaj gönderen Lord_Ares »

hatırladığım kadarıyla raporlama( Rave report ) bileşenleri ile runtimeda yazdığımız kodları çalıştırabiliyordu..
Cevapla