GBGRİDE Aktarma
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
-
- Üye
- Mesajlar: 33
- Kayıt: 23 Nis 2014 10:04
GBGRİDE Aktarma
Değerli Üstadlar,
Yapmış olduğum proje ek'tedir.
Amacım TCMB kurlarını istenilen tarihleri xml olarak çekmek ve veritabanına kayıt etmektir.(Her Tarih Veritabaında da olacak).Xml dosyasından Tarih Alanını da alamadım.
Verileri StringGride çekebiliyorum fakat GBGird içine alamadım. Doğrudan da çekmek istedim fakat başarılı olamadım.
Yardımcı olabilirseniz memnun olurum.
Delphi 2007 kullanıyorum yeni başladım.
Yapmış olduğum proje ek'tedir.
Amacım TCMB kurlarını istenilen tarihleri xml olarak çekmek ve veritabanına kayıt etmektir.(Her Tarih Veritabaında da olacak).Xml dosyasından Tarih Alanını da alamadım.
Verileri StringGride çekebiliyorum fakat GBGird içine alamadım. Doğrudan da çekmek istedim fakat başarılı olamadım.
Yardımcı olabilirseniz memnun olurum.
Delphi 2007 kullanıyorum yeni başladım.
- Dosya ekleri
-
- kurlar son çalışmam.rar
- (39.36 KiB) 67 kere indirildi
-
- Üye
- Mesajlar: 33
- Kayıt: 23 Nis 2014 10:04
Re: GBGRİDE Aktarma
Yardımcı olabilecek yok mu ?
Re: GBGRİDE Aktarma
Ayrıntıları buradan okuyabilirsiniz!freeman35 yazdı:Adam gibi, anlaşılır, detaylı şekilde sorunuzu yazın, bilen yada "CANI CEVAP VERMEK İSTEYEN, CANI İSTERSE CAVAP YAZAR" bir gün sonra cevap veren yok mu? bilen yok mu? diye mesaj yazmak ne?
There's no place like 127.0.0.1
-
- Üye
- Mesajlar: 216
- Kayıt: 10 Ara 2013 03:50
Re: GBGRİDE Aktarma
Access kullanmadığım için bazı hatalar olabilir. Aşağıdaki kod, tabloda kayıt yoksa yeni kayıt girer eğer varsa mevcut olan kaydı günceller.
Kod: Tümünü seç
procedure TForm1.Button3Click(Sender: TObject);
var iNode : IXMLNode;
TmpQuery: TADOQuery;
KayitNo: Integer;
begin
XMLDocument1.Active := False;
XMLDocument1.FileName := Label4.Caption;
try
XMLDocument1.Active := True;
iNode := XMLDocument1.DocumentElement.ChildNodes.First;
if iNode = nil then Exit;
except
Exit;
end;
TmpQuery := TADOQuery.Create(Self);
TmpQuery.Connection := ADOConnection1;
with TmpQuery, iNode.ChildNodes do
begin
while iNode <> nil do
begin
SQL.Text := 'select kur_ref from kurlar where tarih=:ptarih and kod=:pkod';
Parameters.ParamByName('ptarih').Value := XMLDocument1.DocumentElement.Attributes['Tarih'];
Parameters.ParamByName('pkod').Value := iNode.Attributes['Kod'];
Active := True;
if IsEmpty then
begin
SQL.Text := 'insert into kurlar (kod, doviz_aciklamasi, birim, alis, satis, efektifalis, efektifsatis, tarih) ' +
'values (:pkod, :paciklama, :pbirim, :palis, :psatis, :pealis, :pesatis, :ptarih)';
Parameters.ParamByName('ptarih').Value := XMLDocument1.DocumentElement.Attributes['Tarih'];
end else
begin
KayitNo := FieldByName('kur_ref').AsInteger;
SQL.Text := 'update kurlar set kod=:pkod, doviz_aciklamasi=:paciklama, birim=:pbirim, alis=:palis, ' +
'satis=:psatis, efektifalis=:pealis, efektifsatis=:pesatis where kur_ref=:precno';
Parameters.ParamByName('precno').Value := KayitNo;
end;
Parameters.ParamByName('pkod').Value := iNode.Attributes['Kod'];
Parameters.ParamByName('paciklama').Value := Nodes['Isim'].Text;
Parameters.ParamByName('pbirim').Value := Nodes['Unit'].Text;
Parameters.ParamByName('palis').Value := 0;
Parameters.ParamByName('psatis').Value := 0;
Parameters.ParamByName('pealis').Value := 0;
Parameters.ParamByName('pesatis').Value := 0;
if Nodes['ForexBuying'].Text <> '' then
Parameters.ParamByName('palis').Value := StringReplace(Nodes['ForexBuying'].Text, '.', ',', [rfReplaceAll]);
if Nodes['ForexSelling'].Text <> '' then
Parameters.ParamByName('psatis').Value := StringReplace(Nodes['ForexSelling'].Text, '.', ',', [rfReplaceAll]);;
if Nodes['BanknoteBuying'].Text <> '' then
Parameters.ParamByName('pealis').Value := StringReplace(Nodes['BanknoteBuying'].Text, '.', ',', [rfReplaceAll]);;
if Nodes['BanknoteSelling'].Text <> '' then
Parameters.ParamByName('pesatis').Value := StringReplace(Nodes['BanknoteSelling'].Text, '.', ',', [rfReplaceAll]);;
ExecSQL;
iNode := iNode.NextSibling;
end;
end;
TmpQuery.Free;
end;
-
- Üye
- Mesajlar: 33
- Kayıt: 23 Nis 2014 10:04
Re: GBGRİDE Aktarma
Sayın SimaWB ,
Mesajı lütfen dikkatli okuyun!
Kimsenin bizlere cevap vermek mecburiyeti olmadığını BİLİYORUM.
Ama Delphi'yi yeni öğrenmeye çalışan biri olarak (bilen yok mu?) küstahlığını asla yapmam.
Sorunum da daha açık yazmaya gayret gösterdiğime inanıyorum. Anlatamadığın veya ifade edemediğim yer olursa cevap yazarsanız bende daha anlaşılır duruma getirmeye çalışırım.
Saygılarımla
Mesajı lütfen dikkatli okuyun!
Kimsenin bizlere cevap vermek mecburiyeti olmadığını BİLİYORUM.
Ama Delphi'yi yeni öğrenmeye çalışan biri olarak (bilen yok mu?) küstahlığını asla yapmam.
Sorunum da daha açık yazmaya gayret gösterdiğime inanıyorum. Anlatamadığın veya ifade edemediğim yer olursa cevap yazarsanız bende daha anlaşılır duruma getirmeye çalışırım.
Saygılarımla
-
- Üye
- Mesajlar: 33
- Kayıt: 23 Nis 2014 10:04
Re: GBGRİDE Aktarma
Sayın xxxjedixxx,
Cevabınız için çok teşekkür ederim. Kodlar gayet güzel çalışmaktadır.
Hakkınızı helal ediniz.
Saygılarımla.
Cevabınız için çok teşekkür ederim. Kodlar gayet güzel çalışmaktadır.
Hakkınızı helal ediniz.
Saygılarımla.
-
- Üye
- Mesajlar: 33
- Kayıt: 23 Nis 2014 10:04
Re: GBGRİDE Aktarma
Sayın xxxjedixxx
Kodlarınız çalışıyor fakat ben atlamış, döviz açıklamalarını sadece ilk başta olan kayıtları getirmektedir. Döviz Kodlarında sıkıntı çok.
Saygılarımla
Kodlarınız çalışıyor fakat ben atlamış, döviz açıklamalarını sadece ilk başta olan kayıtları getirmektedir. Döviz Kodlarında sıkıntı çok.
Saygılarımla
-
- Üye
- Mesajlar: 216
- Kayıt: 10 Ara 2013 03:50
Re: GBGRİDE Aktarma
Kusura bakma, kodlamada "with" terimi kullanarak kısaltma yapayım derken çok kritik bir hata yapmışım. Ayrıca sen sorun yok demişsin ama kontrol ettiğimde kurların da yanlış olduğunu hepsine aynı rakamları yazdığını fark ettim. Düzeltiyorum.
Kod: Tümünü seç
procedure TForm1.Button3Click(Sender: TObject);
var iNode : IXMLNode;
TmpQuery: TADOQuery;
KayitNo: Integer;
begin
XMLDocument1.Active := False;
XMLDocument1.FileName := Label4.Caption;
try
XMLDocument1.Active := True;
iNode := XMLDocument1.DocumentElement.ChildNodes.First;
if iNode = nil then Exit;
except
Exit;
end;
TmpQuery := TADOQuery.Create(Self);
TmpQuery.Connection := ADOConnection1;
with TmpQuery do
begin
while iNode <> nil do
with iNode.ChildNodes do
begin
SQL.Text := 'select kur_ref from kurlar where tarih=:ptarih and kod=:pkod';
Parameters.ParamByName('ptarih').Value := XMLDocument1.DocumentElement.Attributes['Tarih'];
Parameters.ParamByName('pkod').Value := iNode.Attributes['Kod'];
Active := True;
if IsEmpty then
begin
SQL.Text := 'insert into kurlar (kod, doviz_aciklamasi, birim, alis, satis, efektifalis, efektifsatis, tarih) ' +
'values (:pkod, :paciklama, :pbirim, :palis, :psatis, :pealis, :pesatis, :ptarih)';
Parameters.ParamByName('ptarih').Value := XMLDocument1.DocumentElement.Attributes['Tarih'];
end else
begin
KayitNo := FieldByName('kur_ref').AsInteger;
SQL.Text := 'update kurlar set kod=:pkod, doviz_aciklamasi=:paciklama, birim=:pbirim, alis=:palis, ' +
'satis=:psatis, efektifalis=:pealis, efektifsatis=:pesatis where kur_ref=:precno';
Parameters.ParamByName('precno').Value := KayitNo;
end;
Parameters.ParamByName('pkod').Value := iNode.Attributes['Kod'];
Parameters.ParamByName('paciklama').Value := Nodes['Isim'].Text;
Parameters.ParamByName('pbirim').Value := 1;
Parameters.ParamByName('palis').Value := 0;
Parameters.ParamByName('psatis').Value := 0;
Parameters.ParamByName('pealis').Value := 0;
Parameters.ParamByName('pesatis').Value := 0;
if Trim(Nodes['Unit'].Text) <> '' then
Parameters.ParamByName('pbirim').Value := StringReplace(Nodes['Unit'].Text, '.', ',', [rfReplaceAll]);
if Trim(Nodes['ForexBuying'].Text) <> '' then
Parameters.ParamByName('palis').Value := StringReplace(Nodes['ForexBuying'].Text, '.', ',', [rfReplaceAll]);
if Trim(Nodes['ForexSelling'].Text) <> '' then
Parameters.ParamByName('psatis').Value := StringReplace(Nodes['ForexSelling'].Text, '.', ',', [rfReplaceAll]);;
if Trim(Nodes['BanknoteBuying'].Text) <> '' then
Parameters.ParamByName('pealis').Value := StringReplace(Nodes['BanknoteBuying'].Text, '.', ',', [rfReplaceAll]);;
if Trim(Nodes['BanknoteSelling'].Text) <> '' then
Parameters.ParamByName('pesatis').Value := StringReplace(Nodes['BanknoteSelling'].Text, '.', ',', [rfReplaceAll]);;
ExecSQL;
iNode := iNode.NextSibling;
end;
end;
TmpQuery.Free;
end;
-
- Üye
- Mesajlar: 33
- Kayıt: 23 Nis 2014 10:04
Re: GBGRİDE Aktarma
Sayın xxxjedixxx,
Eline sağlık çok teşekkür ederim. Tarih dikkatini çekti mi bilmiyorum ama hep 21.05.2014 tarihini atamaktadır.
saygılarımla
Eline sağlık çok teşekkür ederim. Tarih dikkatini çekti mi bilmiyorum ama hep 21.05.2014 tarihini atamaktadır.
saygılarımla
-
- Üye
- Mesajlar: 33
- Kayıt: 23 Nis 2014 10:04
Re: GBGRİDE Aktarma
Sayın xxxjedixxx,
Pardon, Merkez bankası güncellemeyi unutmuş olmalı xml kayıtlarında bugün tarihi 21.05.2014 tarihi görünmektedir.
saygılarımla
Pardon, Merkez bankası güncellemeyi unutmuş olmalı xml kayıtlarında bugün tarihi 21.05.2014 tarihi görünmektedir.
saygılarımla
-
- Üye
- Mesajlar: 216
- Kayıt: 10 Ara 2013 03:50
Re: GBGRİDE Aktarma
Bildiğim kadarıyla saat 16:00 ile 16:30 arası güncelleniyor.