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
  Stringgrid seçili sütunları aktarma cvheneburi 0 113 23-09-2022, Saat: 00:03
Son Yorum: cvheneburi
  FDMemtable İçeriğindeki Verileri Veritabanına Kaydetme bünyamin68 1 321 22-07-2022, Saat: 21:18
Son Yorum: mcuyan
  Excel Veri Aktarma Hatası MosCom 5 524 22-06-2022, Saat: 09:10
Son Yorum: MosCom
  CSV Dosyasını DBGrid1 Aktarmak OZCANK 14 1.440 04-06-2022, Saat: 04:16
Son Yorum: OZCANK
  XML Dosyayı Grid veya StrinGrid'e Aktarma MuhammedYasir 17 1.514 04-05-2022, Saat: 11:25
Son Yorum: mkysoft



Konuyu Okuyanlar: 1 Ziyaretçi