Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
DBGrid1'deki Verileri Tabloya Aktarma
#1
Arkadaşlar Merhaba; Herkese İyi Bayramlar. DBGrid1 deki verileri Tablo ya aktarmak istedim fakat "Invalid colunm Name "STOK_KODU" " hatası veriyor veri tabanın dada DBGrid1 dede alan var rica etsem bakabilir misiniz ?

DBSTHAR.SQL.Add   ('INSERT INTO TBLEMANETSTHAR VALUES (STOK_KODU,FISNO,STHAR_GCMIK,STHAR_GCMIK2,STHAR_GCKOD,STHAR_TARIH,STHAR_NF,STHAR_BF,'+


                 'STHAR_IAF,STHAR_KDV,DEPO_KODU,STHAR_ACIKLAMA,STHAR_SATISK,STHAR_MALFISK,STHAR_FTIRSIP,STHAR_SATISK2,LISTE_FIAT,'+


                 'STHAR_HTUR,STHAR_DOVTIP,PROMASYON_KODU,STHAR_DOVFIAT,STHAR_ODEGUN,STRA_SATISK3,STRA_SATISK4,STRA_SATISK5,STRA_SATISK6,'+


                 'STHAR_BGTIP,STHAR_KOD1,STHAR_KOD2,STHAR_SIPNUM,STHAR_CARIKOD,STHAR_SIP_TURU,PLASIYER_KODU,EKALAN_NEDEN,EKALAN,EKALAN1,'+


                 'REDMIK,REDNEDEN,SIRA,STRA_SIPKONT,AMBAR_KABULNO,FIRMA_DOVTIP,FIRMA_DOVTUT,FIRMA_DOVMAL,UPDATE_KODU,IRSALIYE_NO,IRSALIYE_TARIH,'+


                 'KOSULKODU,ECZA_FAT_TIP,STHAR_TESTAR,OLCUBR,VADE_TARIHI,LISTE_NO,BAGLANTI_NO,SUBE_KODU,MUH_KODU,S_YEDEK1,S_YEDEK2,F_YEDEK3,F_YEDEK4,'+


                 'F_YEDEK5,C_YEDEK6,B_YEDEK7,I_YEDEK8,L_YEDEK9,D_YEDEK10,PROJE_KODU,FIYATTARIHI,KOSULTARIHI,SATISK1TIP,SATISK2TIP,SATISK3TIP,'+


                 'SATISK4TIP,SATISK5TIP,SATISK6TIP,EXPORTTYPE,EXPORTMIK,DUZELTMETARIHI,ONAYTIPI,ONAYNUM,KKMALF,STRA_IRSKONT,YAPKOD,MAMYAPKOD,OTVFIYAT)' +


'SELECT STOK_KODU,FISNO,STHAR_GCMIK,STHAR_GCMIK2,STHAR_GCKOD,STHAR_TARIH,STHAR_NF,STHAR_BF,'+


                 'STHAR_IAF,STHAR_KDV,DEPO_KODU,STHAR_ACIKLAMA,STHAR_SATISK,STHAR_MALFISK,STHAR_FTIRSIP,STHAR_SATISK2,LISTE_FIAT,'+


                 'STHAR_HTUR,STHAR_DOVTIP,PROMASYON_KODU,STHAR_DOVFIAT,STHAR_ODEGUN,STRA_SATISK3,STRA_SATISK4,STRA_SATISK5,STRA_SATISK6,'+


                 'STHAR_BGTIP,STHAR_KOD1,STHAR_KOD2,STHAR_SIPNUM,STHAR_CARIKOD,STHAR_SIP_TURU,PLASIYER_KODU,EKALAN_NEDEN,EKALAN,EKALAN1,'+


                 'REDMIK,REDNEDEN,SIRA,STRA_SIPKONT,AMBAR_KABULNO,FIRMA_DOVTIP,FIRMA_DOVTUT,FIRMA_DOVMAL,UPDATE_KODU,IRSALIYE_NO,IRSALIYE_TARIH,'+


                 'KOSULKODU,ECZA_FAT_TIP,STHAR_TESTAR,OLCUBR,VADE_TARIHI,LISTE_NO,BAGLANTI_NO,SUBE_KODU,MUH_KODU,S_YEDEK1,S_YEDEK2,F_YEDEK3,F_YEDEK4,'+


                 'F_YEDEK5,C_YEDEK6,B_YEDEK7,I_YEDEK8,L_YEDEK9,D_YEDEK10,PROJE_KODU,FIYATTARIHI,KOSULTARIHI,SATISK1TIP,SATISK2TIP,SATISK3TIP,'+


                 'SATISK4TIP,SATISK5TIP,SATISK6TIP,EXPORTTYPE,EXPORTMIK,DUZELTMETARIHI,ONAYTIPI,ONAYNUM,KKMALF,STRA_IRSKONT,YAPKOD,MAMYAPKOD,OTVFIYAT'+


                 'FROM TBLEMANETSTHAR');


                 DBSTHAR.ExecSQL;

end;
Cevapla
#2
Insert Into  iki şekilde kullanılabilir.

INSERT INTO table_name (column1, column2, column3, ...)

VALUES (value1, value2, value3, ...); 

veya

INSERT INTO table_name

VALUES (value1, value2, value3, ...); 


Siz ikisinin karışımı şeklinde kullanmaya çalışıyorsunuz. Hangi yapıyı kullanacaksanız cümlenizi ona göre düzenlemelisiniz.
Cevapla
#3
(26-05-2020, Saat: 09:14)frmman Adlı Kullanıcıdan Alıntı: Insert Into  iki şekilde kullanılabilir.

INSERT INTO table_name (column1, column2, column3, ...)

VALUES (value1, value2, value3, ...); 

veya

INSERT INTO table_name

VALUES (value1, value2, value3, ...); 


Siz ikisinin karışımı şeklinde kullanmaya çalışıyorsunuz. Hangi yapıyı kullanacaksanız cümlenizi ona göre düzenlemelisiniz.

Dediğiniz şekilde de kullandım ama "invalid colunm name 'STOK_KODU' " dan kurtulamadım.


DBSTHAR.SQL.Add   ('INSERT INTO TBLEMANETSTHAR VALUES (STOK_KODU,FISNO,STHAR_GCMIK,STHAR_GCMIK2,STHAR_GCKOD,STHAR_TARIH,STHAR_NF,STHAR_BF,'+
                 'STHAR_IAF,STHAR_KDV,DEPO_KODU,STHAR_ACIKLAMA,STHAR_SATISK,STHAR_MALFISK,STHAR_FTIRSIP,STHAR_SATISK2,LISTE_FIAT,'+
                 'STHAR_HTUR,STHAR_DOVTIP,PROMASYON_KODU,STHAR_DOVFIAT,STHAR_ODEGUN,STRA_SATISK3,STRA_SATISK4,STRA_SATISK5,STRA_SATISK6,'+
                 'STHAR_BGTIP,STHAR_KOD1,STHAR_KOD2,STHAR_SIPNUM,STHAR_CARIKOD,STHAR_SIP_TURU,PLASIYER_KODU,EKALAN_NEDEN,EKALAN,EKALAN1,'+
                 'REDMIK,REDNEDEN,SIRA,STRA_SIPKONT,AMBAR_KABULNO,FIRMA_DOVTIP,FIRMA_DOVTUT,FIRMA_DOVMAL,UPDATE_KODU,IRSALIYE_NO,IRSALIYE_TARIH,'+
                 'KOSULKODU,ECZA_FAT_TIP,STHAR_TESTAR,OLCUBR,VADE_TARIHI,LISTE_NO,BAGLANTI_NO,SUBE_KODU,MUH_KODU,S_YEDEK1,S_YEDEK2,F_YEDEK3,F_YEDEK4,'+
                 'F_YEDEK5,C_YEDEK6,B_YEDEK7,I_YEDEK8,L_YEDEK9,D_YEDEK10,PROJE_KODU,FIYATTARIHI,KOSULTARIHI,SATISK1TIP,SATISK2TIP,SATISK3TIP,'+
                 'SATISK4TIP,SATISK5TIP,SATISK6TIP,EXPORTTYPE,EXPORTMIK,DUZELTMETARIHI,ONAYTIPI,ONAYNUM,KKMALF,STRA_IRSKONT,YAPKOD,MAMYAPKOD,OTVFIYAT)');
                 DBSTHAR.ExecSQL;
end;
Cevapla
#4
SQL cümlenizde bir gariplik yokmu? Aynı tablodan select yapıp tekrar aynı tabloya insert yapıyorsunuz.

(
INSERT INTO TBLEMANETSTHAR VALUES 

(STOK_KODU,....)+

SELECT STOK_KODU,......+

FROM TBLEMANETSTHAR
)

Kaynak ve hedef tablo aynı : TBLEMANETSTHAR
Cevapla
#5
(26-05-2020, Saat: 09:27)frmman Adlı Kullanıcıdan Alıntı: SQL cümlenizde bir gariplik yokmu? Aynı tablodan select yapıp tekrar aynı tabloya insert yapıyorsunuz.

(
INSERT INTO TBLEMANETSTHAR VALUES 

(STOK_KODU,....)+

SELECT STOK_KODU,......+

FROM TBLEMANETSTHAR
)

Kaynak ve hedef tablo aynı : TBLEMANETSTHAR

From yok düzenledim şöyle ; DBGrid1 de ki alanlar 'STOK_KODU' tablodaki alanlarda aynı TBLEMANETSTHAR aynı olamaz mı?
Cevapla
#6
Merhaba
dbGrid bir datasete bağlı olmalı. bu dataset de bir dbConnection a bağlı. Siz dataseti direk post etmeniz durumunda veritabanına kayıtlarınız eklenmiş olacaktır.
WWW
Cevapla
#7
(26-05-2020, Saat: 09:02)OZCANK Adlı Kullanıcıdan Alıntı: Arkadaşlar Merhaba; Herkese İyi Bayramlar. DBGrid1 deki verileri Tablo ya aktarmak istedim fakat "Invalid colunm Name "STOK_KODU" " hatası veriyor veri tabanın dada DBGrid1 dede alan var rica etsem bakabilir misiniz ?

DBSTHAR.SQL.Add   ('INSERT INTO TBLEMANETSTHAR VALUES (STOK_KODU,FISNO,STHAR_GCMIK,STHAR_GCMIK2,STHAR_GCKOD,STHAR_TARIH,STHAR_NF,STHAR_BF,'+


                 'STHAR_IAF,STHAR_KDV,DEPO_KODU,STHAR_ACIKLAMA,STHAR_SATISK,STHAR_MALFISK,STHAR_FTIRSIP,STHAR_SATISK2,LISTE_FIAT,'+


                 'STHAR_HTUR,STHAR_DOVTIP,PROMASYON_KODU,STHAR_DOVFIAT,STHAR_ODEGUN,STRA_SATISK3,STRA_SATISK4,STRA_SATISK5,STRA_SATISK6,'+


                 'STHAR_BGTIP,STHAR_KOD1,STHAR_KOD2,STHAR_SIPNUM,STHAR_CARIKOD,STHAR_SIP_TURU,PLASIYER_KODU,EKALAN_NEDEN,EKALAN,EKALAN1,'+


                 'REDMIK,REDNEDEN,SIRA,STRA_SIPKONT,AMBAR_KABULNO,FIRMA_DOVTIP,FIRMA_DOVTUT,FIRMA_DOVMAL,UPDATE_KODU,IRSALIYE_NO,IRSALIYE_TARIH,'+


                 'KOSULKODU,ECZA_FAT_TIP,STHAR_TESTAR,OLCUBR,VADE_TARIHI,LISTE_NO,BAGLANTI_NO,SUBE_KODU,MUH_KODU,S_YEDEK1,S_YEDEK2,F_YEDEK3,F_YEDEK4,'+


                 'F_YEDEK5,C_YEDEK6,B_YEDEK7,I_YEDEK8,L_YEDEK9,D_YEDEK10,PROJE_KODU,FIYATTARIHI,KOSULTARIHI,SATISK1TIP,SATISK2TIP,SATISK3TIP,'+


                 'SATISK4TIP,SATISK5TIP,SATISK6TIP,EXPORTTYPE,EXPORTMIK,DUZELTMETARIHI,ONAYTIPI,ONAYNUM,KKMALF,STRA_IRSKONT,YAPKOD,MAMYAPKOD,OTVFIYAT)' +


'SELECT STOK_KODU,FISNO,STHAR_GCMIK,STHAR_GCMIK2,STHAR_GCKOD,STHAR_TARIH,STHAR_NF,STHAR_BF,'+


                 'STHAR_IAF,STHAR_KDV,DEPO_KODU,STHAR_ACIKLAMA,STHAR_SATISK,STHAR_MALFISK,STHAR_FTIRSIP,STHAR_SATISK2,LISTE_FIAT,'+


                 'STHAR_HTUR,STHAR_DOVTIP,PROMASYON_KODU,STHAR_DOVFIAT,STHAR_ODEGUN,STRA_SATISK3,STRA_SATISK4,STRA_SATISK5,STRA_SATISK6,'+


                 'STHAR_BGTIP,STHAR_KOD1,STHAR_KOD2,STHAR_SIPNUM,STHAR_CARIKOD,STHAR_SIP_TURU,PLASIYER_KODU,EKALAN_NEDEN,EKALAN,EKALAN1,'+


                 'REDMIK,REDNEDEN,SIRA,STRA_SIPKONT,AMBAR_KABULNO,FIRMA_DOVTIP,FIRMA_DOVTUT,FIRMA_DOVMAL,UPDATE_KODU,IRSALIYE_NO,IRSALIYE_TARIH,'+


                 'KOSULKODU,ECZA_FAT_TIP,STHAR_TESTAR,OLCUBR,VADE_TARIHI,LISTE_NO,BAGLANTI_NO,SUBE_KODU,MUH_KODU,S_YEDEK1,S_YEDEK2,F_YEDEK3,F_YEDEK4,'+


                 'F_YEDEK5,C_YEDEK6,B_YEDEK7,I_YEDEK8,L_YEDEK9,D_YEDEK10,PROJE_KODU,FIYATTARIHI,KOSULTARIHI,SATISK1TIP,SATISK2TIP,SATISK3TIP,'+


                 'SATISK4TIP,SATISK5TIP,SATISK6TIP,EXPORTTYPE,EXPORTMIK,DUZELTMETARIHI,ONAYTIPI,ONAYNUM,KKMALF,STRA_IRSKONT,YAPKOD,MAMYAPKOD,OTVFIYAT'+


                 'FROM TBLEMANETSTHAR');


                 DBSTHAR.ExecSQL;

end;

Merhabalar,

Hata mesajı aslında açık.
Invalid colunm Name "STOK_KODU"
Geçersiz sütun ismi "STOK_KODU"

Lütfen Tablo Yapısını (table structure) paylaşın.
Bu şekilde kontrol edilebilir.

Kolay gelsin.
Amaç, bilginin de/aklın da zekat'ını vermek.
Cevapla
#8
Merhaba

(1) Hata vermesi sizin için bence şans, DBGrid1'de ne görüyorsunuz bilemeyiz ama buradaki SQL kodu, aynı tablonun tüm kayıtlarıyla birlikte ikinci kopyasını kendisine basmak üzere ayarlı. Buradaki tek fazlalık "VALUES" kelimesi.

Örnek şema -ki bu şekilde kullanmayın sizin şemanın çalışan hali diye bildiriyorum- şu şekilde : 'INSERT INTO MyTable (id, tarih, deger) SELECT id, tarih, deger from MyTable'

(2) Tüm tabloyu diyorum çünkü en sona bir WHERE kondisyonu koyarak herhangi bir filtre belirtmemişsiniz.  

* Sonuna WHERE id = 1; gibisinden bir filtre eklemeniz sadece bu tek kaydın bir kopyasını yeni kayıt olarak ekleyecektir.

Gelelim olası senaryoya. DBGrid1 başka bir veritabanı / tablo / bileşke tablolar vs. içeriği olsun. Buradaki veriyi TBLEMANETSTHAR isimli tablonuza dışarıdan insert etmek istiyorsunuz diyelim. Bu durumda PARAMETRE ilk akla gelen çözüm parametre kullanımıdır. İşte burada VALUES kelimesi geçerli Şöyle örnekleyebilirim 

INSERT INTO MyTable (id, tarih, deger) VALUES ( :id, :tarih, :deger )


parametrelerin hemen başlarında iki nokta üstüste olduğunun bilerek olduğunu, bunun bir parametre olduğunun veritabanına bildirilmek üzere konulduğunu belirtelim.

EXECSQL yapmadan bir önce şu şekilde buralara değer atamalısınız.

    Table.SQL.Text := 'INSERT INTO MyTable (id, tarih, deger) VALUES( :id, :tarih, :deger )';
      Table.ParamByName('id'    ).AsInteger   := DBGrid1.DataSource.DataSet.FieldByName('id').AsInteger;
      Table.ParamByName('tarih' ).AsDateTime  := DBGrid1.DataSource.DataSet.FieldByName('tarih').AsDateTime;
      Table.ParamByName('deger' ).AsCurrency  := DBGrid1.DataSource.DataSet.FieldByName('deger').AsCurrency;
    Table.ExecSQL;


Veritabanı tipine göre değişen şekillerde farklı veritabanından verinin birbiri arasında SQL cümleleri ile transferi de söz konusudur. Parametre olmadan çözüm gerekiyorsa bu da diğer seçenek.
Bunu bir değerlendirin . Başarılar. Idea
Saygılarımla
Muharrem ARMAN

guplouajuixjzfm15eqb.gif
Cevapla
#9
aktaracagınız kayıt çok fazla değil yada zaman ile ilgili bir sıkıntınız yoksa

while not tabloadi do begin
.....
.....
tabloadi.next;
end;

yapalirsiniz.
Cevapla
#10
Yardımlarınız için çok teşekkür ederim.
Ben şu şekilde kaydetmeyi başardım. Fakat 1 tane kayıt atıyor DBGrid1 de 1000 tane kayıt var. Hepsini nasıl kaydedebilirim?

begin
VeriKaydet.Close;
VeriKaydet.SQL.Text:='Insert Into TBLEMANET_FAT_AKTAR (Sube_Kodu,FtIrSip,Belge_No,Musteri_Kodu,Tarih,Tipi,Brut_Tutar,Toplam_Iskonto,KDV,'+
          'Aciklama,KDV_Dahilmi,Kalem_Adedi,Sira_No,Genel_Toplam,Plasiyer_Kodu,Gib_Fat_Irs_No) '+
                    'Values '+
                    '(:Sube_Kodu,:FtIrSip,:Belge_No,:Musteri_Kodu,:Tarih,:Tipi,:Brut_Tutar,:Toplam_Iskonto,:KDV,'+
                    ':Aciklama,:KDV_Dahilmi,:Kalem_Adedi,:Sira_No,:Genel_Toplam,Tonguelasiyer_Kodu,:Gib_Fat_Irs_No)';

     VeriKaydet.Parameters.ParamByName('Sube_Kodu').Value     := '0';
     VeriKaydet.Parameters.ParamByName('FtIrSip').Value       := '1';
     VeriKaydet.Parameters.ParamByName('Belge_No').Value      := DBGrid1.DataSource.DataSet.FieldByName('Belge_No').AsString;
     VeriKaydet.Parameters.ParamByName('Musteri_Kodu').Value  := DBGrid1.DataSource.DataSet.FieldByName('Musteri_Kodu').AsString;
     VeriKaydet.Parameters.ParamByName('Tarih').Value         := DBGrid1.DataSource.DataSet.FieldByName('Tarih').AsDateTime;
     VeriKaydet.Parameters.ParamByName('Tipi').Value          := DBGrid1.DataSource.DataSet.FieldByName('Tipi').AsString;
     VeriKaydet.Parameters.ParamByName('Brut_Tutar').Value    := DBGrid1.DataSource.DataSet.FieldByName('Brut_Tutar').AsInteger;
     VeriKaydet.Parameters.ParamByName('Toplam_Iskonto').Value:= DBGrid1.DataSource.DataSet.FieldByName('Toplam_Iskonto').AsInteger;
     VeriKaydet.Parameters.ParamByName('KDV').Value           := DBGrid1.DataSource.DataSet.FieldByName('KDV_Tutar').AsInteger;
     VeriKaydet.Parameters.ParamByName('Aciklama').Value      := 'DENEME';
     VeriKaydet.Parameters.ParamByName('KDV_Dahilmi').Value   := 'H';
     VeriKaydet.Parameters.ParamByName('Kalem_Adedi').Value   := DBGrid1.DataSource.DataSet.FieldByName('Kalem_Adedi').AsInteger;
     VeriKaydet.Parameters.ParamByName('Sira_No').Value       := '0';
     VeriKaydet.Parameters.ParamByName('Genel_Toplam').Value  := DBGrid1.DataSource.DataSet.FieldByName('Genel_Toplam').AsInteger;
     VeriKaydet.Parameters.ParamByName('Plasiyer_Kodu').Value := '01';
     VeriKaydet.Parameters.ParamByName('Gib_Fat_Irs_No').Value:= DBGrid1.DataSource.DataSet.FieldByName('Belge_No').AsString;
VeriKaydet.ExecSQL;
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Delphi 7 Excel'e Veri Aktarma mahone 6 1.051 02-05-2023, Saat: 08:34
Son Yorum: COMMANDX
  farkli tablolardan verileri dataset e toplama sadikacar60 12 1.826 23-03-2023, Saat: 18:34
Son Yorum: sadikacar60
  Tarayıcıda Taranan Textleri Excele Aktarma bünyamin68 1 509 08-12-2022, Saat: 00:28
Son Yorum: engerex
  Stringgrid seçili sütunları aktarma cvheneburi 0 400 23-09-2022, Saat: 00:03
Son Yorum: cvheneburi
  FDMemtable İçeriğindeki Verileri Veritabanına Kaydetme bünyamin68 1 798 22-07-2022, Saat: 21:18
Son Yorum: mcuyan



Konuyu Okuyanlar: 1 Ziyaretçi