Yorumları: 356
Konuları: 58
Kayıt Tarihi: 16-12-2018
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 111 Başlangıç
26-05-2020, Saat: 09:02
(Son Düzenleme: 26-05-2020, Saat: 09:13, Düzenleyen: OZCANK.)
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;
Yorumları: 567
Konuları: 15
Kayıt Tarihi: 24-03-2017
Rep Puanı: 3.380 Uzman
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.
Yorumları: 356
Konuları: 58
Kayıt Tarihi: 16-12-2018
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 111 Başlangıç
26-05-2020, Saat: 09:17
(Son Düzenleme: 26-05-2020, Saat: 09:23, Düzenleyen: OZCANK.)
(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;
Yorumları: 567
Konuları: 15
Kayıt Tarihi: 24-03-2017
Rep Puanı: 3.380 Uzman
26-05-2020, Saat: 09:27
(Son Düzenleme: 26-05-2020, Saat: 09:29, Düzenleyen: frmman.)
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
Yorumları: 356
Konuları: 58
Kayıt Tarihi: 16-12-2018
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 111 Başlangıç
(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ı?
Yorumları: 46
Konuları: 0
Kayıt Tarihi: 02-12-2016
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 243 Acemi
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.
Yorumları: 754
Konuları: 39
Kayıt Tarihi: 11-11-2016
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 3.708 Uzman
26-05-2020, Saat: 14:30
(Son Düzenleme: 26-05-2020, Saat: 14:30, Düzenleyen: hi_selamlar.)
(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.
Yorumları: 1.660
Konuları: 20
Kayıt Tarihi: 05-08-2016
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 18.981 Üstad
26-05-2020, Saat: 15:17
(Son Düzenleme: 26-05-2020, Saat: 15:21, Düzenleyen: mrmarman.)
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.
Saygılarımla
Muharrem ARMAN
Yorumları: 80
Konuları: 4
Kayıt Tarihi: 02-10-2018
Aktif Kullandığınız Delphi Sürümü:
- Delphi 11
- Delphi 10.4
- Delphi 10.3
- Delphi 10.2
- Delphi 10.1
- Delphi 7
Rep Puanı: 326 Acemi
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.
Yorumları: 356
Konuları: 58
Kayıt Tarihi: 16-12-2018
Aktif Kullandığınız Delphi Sürümü:
Rep Puanı: 111 Başlangıç
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,lasiyer_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;
|