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.
Bir memo içine yazılan kodu çalıştırmanın yolu varmıdır?
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Bir memo içine yazılan kodu çalıştırmanın yolu varmıdır?
Muttalip TOPTAŞ
Yıldız Teknik Üniversitesi
Bilgi İşlem Dairesi Başkanlığı
Tel: 0212-3832134
Yıldız Teknik Üniversitesi
Bilgi İşlem Dairesi Başkanlığı
Tel: 0212-3832134
Re: Bir memo içine yazılan kodu çalıştırmanın yolu varmıdır?
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.
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
Yıldız Teknik Üniversitesi
Bilgi İşlem Dairesi Başkanlığı
Tel: 0212-3832134
-
- Ü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?
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...
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;
Re: Bir memo içine yazılan kodu çalıştırmanın yolu varmıdır?
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.
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
Yıldız Teknik Üniversitesi
Bilgi İşlem Dairesi Başkanlığı
Tel: 0212-3832134
Re: Bir memo içine yazılan kodu çalıştırmanın yolu varmıdır?
hatırladığım kadarıyla raporlama( Rave report ) bileşenleri ile runtimeda yazdığımız kodları çalıştırabiliyordu..