Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 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
Cevapla
#2
(10-07-2019, Saat: 11:59)arsl01 Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.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.

Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.
Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.

Kolay gelsin.
Amaç, bilginin de/aklın da zekat'ını vermek.
Cevapla
#3
Tesekkurler
Muharrem ARSLAN
Cevapla
#4
(10-07-2019, Saat: 11:59)arsl01 Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.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ı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.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ı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.
(27-07-2019, Saat: 14:00)SimaWB Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.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ı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.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ı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.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


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Thread içerisinde sleep kullanımı berk06 0 47 Dün, Saat: 14:01
Son Yorum: berk06
  TNotification Kullanımı hk yhackup 4 170 07-08-2019, Saat: 18:51
Son Yorum: Bay_Y
  SQL Kullanımı OZCANK 15 635 26-07-2019, Saat: 18:27
Son Yorum: adelphiforumz
  IDE çoklu monitör kullanımı hakkında adelphiforumz 2 171 10-07-2019, Saat: 12:45
Son Yorum: adelphiforumz
  read ve write kullanımı hakkında alisahin 3 312 21-05-2019, Saat: 14:57
Son Yorum: alisahin



Konuyu Okuyanlar: 1 Ziyaretçi