Konuyu Oyla:
  • Derecelendirme: 4/5 - 1 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Fdmemtable kullanimi
#1
Merhaba kolay gelsin,
Amacim offline olarak fdmemtable kullanmak kod ile yeni column acmak ve verileri kod ile eklemek bunu nasil yaparim
@Fesih ARSLAN hocamin kitabinda bind visually ile yapilmis fakat kod ile yapmam gerek kayit islemlerini
Muharrem ARSLAN
WWW
Cevapla
#2
(10-07-2019, Saat: 11:59)arsl01 Adlı Kullanıcıdan Alıntı: Merhaba kolay gelsin,
Amacim offline olarak fdmemtable kullanmak kod ile yeni column acmak ve verileri kod ile eklemek bunu nasil yaparim
@Fesih ARSLAN hocamin kitabinda bind visually ile yapilmis fakat kod ile yapmam gerek kayit islemlerini

Merhabalar,

Aşağıdaki link'lerde bir kaç örnek mevcut.
İncelemenizi öneririm.

http://codeexamplecenter.blogspot.com/2018/11/delphi-how-work-with-memory-table.html
http://delphi.org/2015/03/firedac-in-mem...dmemtable/
http://docwiki.embarcadero.com/RADStudio..._Questions

Kolay gelsin.
Amaç, bilginin de/aklın da zekat'ını vermek.
Cevapla
#3
Tesekkurler
Muharrem ARSLAN
WWW
Cevapla
#4
(10-07-2019, Saat: 11:59)arsl01 Adlı Kullanıcıdan Alıntı: Merhaba kolay gelsin,
Amacim offline olarak fdmemtable kullanmak kod ile yeni column acmak ve verileri kod ile eklemek bunu nasil yaparim
@Fesih ARSLAN hocamin kitabinda bind visually ile yapilmis fakat kod ile yapmam gerek kayit islemlerini

Boş bir form üzerine bir DBGrid, bir DataSource, bir FDMemTable ve bir de Button koyarsanız şu kodlar çalışır...

procedure TForm1.btnBuildTableClick(Sender: TObject);
var f : TField;
begin
  f := TIntegerField.Create(FDMemTable1);
  f.FieldName := 'SiraNo';
  f.DataSet := FDMemTable1;

  f := TStringField.Create(FDMemTable1);
  f.FieldName := 'AdıSoyadı';
  f.DataSet := FDMemTable1;

  f := TStringField.Create(FDMemTable1);
  f.FieldName := 'Adres1';
  f.Size := 50;
  f.DataSet := FDMemTable1;

  f := TStringField.Create(FDMemTable1);
  f.FieldName := 'Adres2';
  f.Size := 50;
  f.DataSet := FDMemTable1;

  f := TStringField.Create(FDMemTable1);
  f.FieldName := 'Sehir';
  f.Size := 30;
  f.DataSet := FDMemTable1;

  f := TStringField.Create(FDMemTable1);
  f.FieldName := 'Ulke';
  f.Size := 30;
  f.DataSet := FDMemTable1;

  FDMemTable1.Open;
  DataSource1.DataSet := FDMemTable1;
  DBGrid1.DataSource := DataSource1;
end;
Cevapla
#5
bilgilendirme için teşekkürler @mustafaozpinar .
Yeni Field eklemek için her seferinde değişken tanımlayıp, create etmektense şu yöntem de kullanılabilir:
  with FDMemTable1.FieldDefs.AddFieldDef do
 begin
   Name := 'SiraNo';
   DataType := ftInteger;
 end;
 with FDMemTable1.FieldDefs.AddFieldDef do
 begin
   Name := 'AdSoyad';
   DataType := ftString;
   Size := 50;
 end;
There's no place like 127.0.0.1
WWW
Cevapla
#6
(27-07-2019, Saat: 14:00)SimaWB Adlı Kullanıcıdan Alıntı: bilgilendirme için teşekkürler @mustafaozpinar .
Yeni Field eklemek için her seferinde değişken tanımlayıp, create etmektense şu yöntem de kullanılabilir:
  with FDMemTable1.FieldDefs.AddFieldDef do
 begin
   Name := 'SiraNo';
   DataType := ftInteger;
 end;
 with FDMemTable1.FieldDefs.AddFieldDef do
 begin
   Name := 'AdSoyad';
   DataType := ftString;
   Size := 50;
 end;
SimaWB, sanırım bu daha doğru bir kod olur. Ancak iki yöntem de aynı sonucu vermesine karşın işlemler hayli farklılık gösteriyor. Birincide siz field'leri kendiniz yaratıyorsunuz, ikincide ise "şu fieldler var, tabloyu açınca onları yarat" diye bir komut veriyorsunuz. İkisi de seçilebilir, Fakat eğer statik tanımlı field'ler kullanmanız gerekiyorsa, yani özellikle toplu işlemlerde FindField (ya da FieldByName)'in önemli derecede zaman kaybına yol açması durumunda, birinci yöntem tercih edilebilir.
Cevapla
#7
(28-07-2019, Saat: 17:56)mustafaozpinar Adlı Kullanıcıdan Alıntı:
(27-07-2019, Saat: 14:00)SimaWB Adlı Kullanıcıdan Alıntı: bilgilendirme için teşekkürler @mustafaozpinar .
Yeni Field eklemek için her seferinde değişken tanımlayıp, create etmektense şu yöntem de kullanılabilir:
  with FDMemTable1.FieldDefs.AddFieldDef do
 begin
   Name := 'SiraNo';
   DataType := ftInteger;
 end;
 with FDMemTable1.FieldDefs.AddFieldDef do
 begin
   Name := 'AdSoyad';
   DataType := ftString;
   Size := 50;
 end;
SimaWB, sanırım bu daha doğru bir kod olur. Ancak iki yöntem de aynı sonucu vermesine karşın işlemler hayli farklılık gösteriyor. Birincide siz field'leri kendiniz yaratıyorsunuz, ikincide ise "şu fieldler var, tabloyu açınca onları yarat" diye bir komut veriyorsunuz. İkisi de seçilebilir, Fakat eğer statik tanımlı field'ler kullanmanız gerekiyorsa, yani özellikle toplu işlemlerde FindField (ya da FieldByName)'in önemli derecede zaman kaybına yol açması durumunda, birinci yöntem tercih edilebilir.

Merhaba,

Ben @SimaWB'nin yöntemini kesinlikle tavsiye etmiyorum. With deyimini kullanmak debug işlemlerini düşündüğünüzden daha fazla zorlaştırıyor. Yazarken kolay gibi geliyor (ki bence bir fark yok) ama çalışma sırasında debuggerdan değerlerine bakmak istediğinizde (örneğin kodda yazmıyor ama StringField'in Display Size'ına bakmak istediniz) inanılmaz zahmetli. Üstelik bir değişken tanımlamak dışında size herhangi bir avantajı yok (derleyici seviyesinde var diye okumuştum bir yerde ama detaylarını bilmiyorum. Günümüz bilgisayarlarında ciddi bir fark yaratacağını  sanmıyorum). Ayrıca kodu sonradan değiştirmek istediğinizde de ciddi sıkıntılar çıkarıyor. O yüzden with kullanılmayan sürümü tavsiye ederim.

İyi çalışmalar
Cevapla
#8
(28-07-2019, Saat: 17:56)mustafaozpinar Adlı Kullanıcıdan Alıntı: SimaWB, sanırım bu daha doğru bir kod olur. Ancak iki yöntem de aynı sonucu vermesine karşın işlemler hayli farklılık gösteriyor. Birincide siz field'leri kendiniz yaratıyorsunuz, ikincide ise "şu fieldler var, tabloyu açınca onları yarat" diye bir komut veriyorsunuz. İkisi de seçilebilir, Fakat eğer statik tanımlı field'ler kullanmanız gerekiyorsa, yani özellikle toplu işlemlerde FindField (ya da FieldByName)'in önemli derecede zaman kaybına yol açması durumunda, birinci yöntem tercih edilebilir.
Haklısınız. Alternatifleri sunalım; okuyanlarda farklı bakış açıları oluşsun. Gerisi programcıya kalmış Wink

(29-07-2019, Saat: 06:58)Bahadir.Alkac Adlı Kullanıcıdan Alıntı: Merhaba,

Ben @SimaWB'nin yöntemini kesinlikle tavsiye etmiyorum. With deyimini kullanmak debug işlemlerini düşündüğünüzden daha fazla zorlaştırıyor. Yazarken kolay gibi geliyor (ki bence bir fark yok) ama çalışma sırasında debuggerdan değerlerine bakmak istediğinizde (örneğin kodda yazmıyor ama StringField'in Display Size'ına bakmak istediniz) inanılmaz zahmetli. Üstelik bir değişken tanımlamak dışında size herhangi bir avantajı yok (derleyici seviyesinde var diye okumuştum bir yerde ama detaylarını bilmiyorum. Günümüz bilgisayarlarında ciddi bir fark yaratacağını  sanmıyorum). Ayrıca kodu sonradan değiştirmek istediğinizde de ciddi sıkıntılar çıkarıyor. O yüzden with kullanılmayan sürümü tavsiye ederim.

İyi çalışmalar

Sayfa linkini bulamadım ama forumda daha önce with kullanımından mümkün olduğunca kaçınmakta fayda olduğundan konuşmuştuk. Ama bundan "hiç kullanmayın" anlamı çıkmamalı. Yukarıdaki tarzda basit kısımlarda kullanıyorum ve bir mahsur da görmüyorum. 
Sizin de belirttiğiniz gibi; "tavsiye"
There's no place like 127.0.0.1
WWW
Cevapla
#9
(10-07-2019, Saat: 11:59)arsl01 Adlı Kullanıcıdan Alıntı: Merhaba kolay gelsin,
Amacim offline olarak fdmemtable kullanmak kod ile yeni column acmak ve verileri kod ile eklemek bunu nasil yaparim
@Fesih ARSLAN hocamin kitabinda bind visually ile yapilmis fakat kod ile yapmam gerek kayit islemlerini

Bu bileşeni bilmiyorum ama anladığım kadarıyla bildiğimiz memory table. Eğer öyle ise bildiğimiz tablolara nasıl kayıt yapıyorsan aynen öyle yapacaksın. Farklı bir şey düşünmeni gerektirecek bir şey yok.
Dosyalarınızı kendi bulutunuza yedekleyin. Yandex Disk

Eyvallah..
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Component Oluşturup silmede ram kullanımı tabikisura10 14 1.289 07-06-2020, Saat: 20:33
Son Yorum: SimaWB
  touchkeyboard kullanımı erdogan 14 1.924 04-06-2020, Saat: 10:35
Son Yorum: bydelphi
  EHLIP Memtable Kullanımı ErcanT 2 544 28-04-2020, Saat: 09:49
Son Yorum: ErcanT
  CalcField Kullanımı hi_selamlar 5 800 05-04-2020, Saat: 15:40
Son Yorum: hi_selamlar
  virtualTable Kullanımı akuyumcu63 8 1.102 26-03-2020, Saat: 20:00
Son Yorum: akuyumcu63



Konuyu Okuyanlar: 1 Ziyaretçi