Konuyu Paylaş : facebook gplus twitter

Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
İki db arası veri aktarma
#1
Selam. kopya yapıştır işlemi için listviewde seçtiğim kayıtları db'ye alıyorum sonra copy databaseye aldığım verileri yapıştır dediğimde işlem hata veriyor, acaba nerede hata yapıyorum?

procedure TForm2.BtnYapistisClick(Sender: TObject);
var
  Kop, Yap: TFDQuery; // FireDAC.Comp.Client
begin
  Kop := QCopy;
  Yap := QUList;
    Kop.Connection := XConnection;
    Kop.Close;
    Kop.SQL.Clear;
    Kop.SQL.Add('Select * From COPY');
    Kop.Prepared := True;
    Kop.Open;
    while Not Kop.EOF do
    begin
      Yap.Connection := XConnection;
      Yap.Close;
      Yap.SQL.Clear;
      Yap.SQL.Add  ('Insert Into URUNLER(URUN, KATEGORI, ZEMINRENK, TIPI, TARIH)');
      Yap.SQL.Add  ('Values (:UR, :KT, :ZR,  :TP, :TR)');
      Yap.ParamByName(UR).AsString := Kop.FieldByName('URUN').AsString;
      Yap.ParamByName('KT').AsString := Kop.FieldByName('KATEGORI').AsString;
      Yap.ParamByName('ZR').AsString := Kop.FieldByName('ZEMINRENK').AsString;
      Yap.ParamByName('TP').AsString:= Kop.FieldByName('TIPI').AsString;
      Yap.ParamByName('TR').AsDate := Date;
      Kop.ExecSQL;
      Yap.Next;
    end;
  end;
end;
Hayat bazen güzel olabiliyor.
Cevapla
#2
    Kop.Open;

Kop.First; // bunu ekleyin

   while Not Kop.EOF do

   .
   .
   .
   Yap.ParamByName(UR).AsString := Kop.FieldByName('URUN').AsString;
UR başında tırnak koyun Yap.ParamByName('UR').AsString

Verdiği hatayıda belirtirseniz daha fazla yardımcı olabiliriz.
Cevapla
#3
(27-01-2017, Saat: 00:24)Dostk Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
    while Not Kop.EOF do
    begin
      Yap.Connection := XConnection;
      Yap.Close;
      Yap.SQL.Clear;
      Yap.SQL.Add  ('Insert Into URUNLER(URUN, KATEGORI, ZEMINRENK, TIPI, TARIH)');
      Yap.SQL.Add  ('Values (:UR, :KT, :ZR,  :TP, :TR)');
      Yap.ParamByName(UR).AsString := Kop.FieldByName('URUN').AsString;
      Yap.ParamByName('KT').AsString := Kop.FieldByName('KATEGORI').AsString;
      Yap.ParamByName('ZR').AsString := Kop.FieldByName('ZEMINRENK').AsString;
      Yap.ParamByName('TP').AsString:= Kop.FieldByName('TIPI').AsString;
      Yap.ParamByName('TR').AsDate := Date;
      Kop.ExecSQL;
      Yap.Next;
    end;

En sondaki Kop.ExecSQL ve Yap.Next  yanlış olmuş sanırım.
There's no place like 127.0.0.1
WWW
Cevapla
#4
değişikliği yaptım.

message 'Kop: Cannot perform this operation on a closed dataset' hatası alıyorum
Hayat bazen güzel olabiliyor.
Cevapla
#5
(27-01-2017, Saat: 10:45)Dostk Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye Oldeğişikliği yaptım.

message 'Kop: Cannot perform this operation on a closed dataset' hatası alıyorum
bunu kapatıp deneyebilir misin,
// Yap.Close;
Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
Kuvvete dayanamayan adalet aciz, 
Adalete dayanamayan kuvvet zalimdir.
WWW
Cevapla
#6
(27-01-2017, Saat: 10:45)Dostk Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye Oldeğişikliği yaptım.

message 'Kop: Cannot perform this operation on a closed dataset' hatası alıyorum

Ne yaptığınızı bilmiyoruz???
There's no place like 127.0.0.1
WWW
Cevapla
#7
procedure TForm2.BtnYapistisClick(Sender: TObject);
var
 Kop, Yap: TFDQuery; // FireDAC.Comp.Client
begin
 Kop := QCopy;
 Yap := QUList;
   Kop.Connection := XConnection;
   Kop.Close;
   Kop.SQL.Clear;
   Kop.SQL.Add('Select * From COPY');
   Kop.Prepared := True;
   Kop.Open;
   while Not Kop.EOF do
   begin
     Yap.Connection := XConnection;
     Yap.Close;
     Yap.SQL.Clear;
     Yap.SQL.Add  ('Insert Into URUNLER(URUN, KATEGORI, ZEMINRENK, TIPI, TARIH)');
     Yap.SQL.Add  ('Values (:UR, :KT, :ZR,  :TP, :TR)');
     Yap.ParamByName(UR).AsString := Kop.FieldByName('URUN').AsString;
     Yap.ParamByName('KT').AsString := Kop.FieldByName('KATEGORI').AsString;
     Yap.ParamByName('ZR').AsString := Kop.FieldByName('ZEMINRENK').AsString;
     Yap.ParamByName('TP').AsString:= Kop.FieldByName('TIPI').AsString;
     Yap.ParamByName('TR').AsDate := Date;
      Kop.ExecSQL; // Burası Yap.ExecSQL; olmalı
     Yap.Next; // Burası Kop.Next; olmalı
   end;
 end;
end;
Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
WWW
Cevapla
#8
Teşekkür ederim;

Yap.ExecSQL;
Kop.Next;
Hayat bazen güzel olabiliyor.
Cevapla

Konuyu Paylaş : facebook gplus twitter



Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Veri Tabanı Bağlantı Yöntemi emrahgs 6 260 12-09-2018, Saat: 18:24
Son Yorum: emrahgs
  JSON Veri Okuma elixir84 12 707 12-06-2018, Saat: 13:50
Son Yorum: elixir84
  Çok Kullanıcılı Veri Tabanı Uygulaması 3ddark 4 390 08-06-2018, Saat: 12:46
Son Yorum: uparlayan
  [ÇÖZÜLDÜ] Resource - Uygulama Üzerinden Veri Gömme Halil Han Badem 8 420 09-05-2018, Saat: 16:18
Son Yorum: hi_selamlar
  dbgrind visible olmuş alanlara veri giriliyor erdogan 3 236 04-05-2018, Saat: 13:50
Son Yorum: erdogan



Konuyu Okuyanlar: 1 Ziyaretçi