Sayfayı Yazdır | Pencereyi Kapat

Excelden Veri Alma Hatasi

Nereden Yazdırıldığı: ERP Nedir? | Türkiye'nin ERP Forum Platformu
Kategori: SQL
Forum Adı: SQL Veri Tabanı İşlemleri
Forum Tanımlaması: Table,View,Trigger,SELECT,UPDATE,INSERT...
URL: http://www.erpne.org/forum_posts.asp?TID=1779
Tarih: 23 Kasım 2024 Saat 05:01
Program Versiyonu: Web Wiz Forums 11.10 - http://www.webwizforums.com


Konu: Excelden Veri Alma Hatasi
Mesajı Yazan: kerim9967
Konu: Excelden Veri Alma Hatasi
Mesaj Tarihi: 07 Kasım 2009 Saat 18:43
Slm. Arkadaslar elimde Excel 2003 de hazirlanmis olan "TBLSTOKBAR" sayfasindaki verileri orjinal tabloya import etmek istiyorum. Fakat bir hata veriyor ve aktarma yarim olarak gerçeklesiyor. 120. kayittan sonrasini aktarmiyor. Excelde veri biçimlerini kontrol ediyorum fakat bir sey bulamiyorum. SQL i kendi imkanlarimda ve elde ettigim bazi dökümanlarla ögrenmeye çalisiyorum. Anlayacaginiz bu konu da acemi fakat ögrenmeye istekliyim. Elimde 2000 nin üzerinde kayit var ve bunlari elle tek tek girmek imkansiz gibi bir sey. Import sirasinda verdigi hata asagidaki yazili. Acaba ne yapmam gerekiyor? Ilginenen arkadaslara simdiden tesekkür ederim.

- Copying to [KOROGLU09].[dbo].[TBLSTOKBAR] (Error)
Messages
Error 0xc0202009: Data Flow Task: SSIS Error Code DTS_E_OLEDBERROR.  An OLE DB error has occurred. Error code: 0x80004005.
An OLE DB record is available.  Source: "Microsoft SQL Native Client"  Hresult: 0x80004005  Description: "Belirtilmemis hata".
 (SQL Server Import and Export Wizard)
 
Error 0xc020901c: Data Flow Task: There was an error with input column "BARKOD" (144) on input "Destination Input" (72). The column status returned was: "The value violated the integrity constraints for the column.".
 (SQL Server Import and Export Wizard)
 
Error 0xc0209029: Data Flow Task: SSIS Error Code DTS_E_INDUCEDTRANSFORMFAILUREONERROR.  The "input "Destination Input" (72)" failed because error code 0xC020907D occurred, and the error row disposition on "input "Destination Input" (72)" specifies failure on error. An error occurred on the specified object of the specified component.  There may be error messages posted before this with more information about the failure.
 (SQL Server Import and Export Wizard)
 
Error 0xc0047022: Data Flow Task: SSIS Error Code DTS_E_PROCESSINPUTFAILED.  The ProcessInput method on component "Destination - TBLSTOKBAR" (59) failed with error code 0xC0209029. The identified component returned an error from the ProcessInput method. The error is specific to the component, but the error is fatal and will cause the Data Flow task to stop running.  There may be error messages posted before this with more information about the failure.
 (SQL Server Import and Export Wizard)
 
Error 0xc0047021: Data Flow Task: SSIS Error Code DTS_E_THREADFAILED.  Thread "WorkThread0" has exited with error code 0xC0209029.  There may be error messages posted before this with more information on why the thread has exited.
 (SQL Server Import and Export Wizard)
 


-------------
..:NETSIS:..



Cevaplar:
Mesajı Yazan: volkank
Mesaj Tarihi: 08 Kasım 2009 Saat 20:26

Öncelikle SQL'deki senin olusturacagin bir tabloya import et.

sonra sql'deki bu tablodan barkod tablosuna aktamaya calis. Böylece aktarimdaki saçma mesajlar yerine daha mantiklibir hata mesaji alirsin. Sonrasinda da mesaja göre hareket ederiz.



-------------
www.netsisaraclari.com


Mesajı Yazan: kerim9967
Mesaj Tarihi: 09 Kasım 2009 Saat 09:44
Orjinalini yazan: volkank volkank Yazdı:

Öncelikle SQL'deki senin olusturacagin bir tabloya import et.

sonra sql'deki bu tablodan barkod tablosuna aktamaya calis. Böylece aktarimdaki saçma mesajlar yerine daha mantiklibir hata mesaji alirsin. Sonrasinda da mesaja göre hareket ederiz.



Sql de yeni bir tabloya aktardim. Fakat iki tablo arasi veri aktarimi nasil yapiliyor onu bilmiyorum.


-------------
..:NETSIS:..


Mesajı Yazan: Conari
Mesaj Tarihi: 09 Kasım 2009 Saat 16:32
Excel den import yapiyormus gibi, bu sefer o tablodan orjinal tabloya aktarin Wink
netsis in içindede bilindigi gibi tabloya tabloya aktarim var.

-------------
Netsisden vazgeçemiyorum. Beni engelliyor..


Mesajı Yazan: kerim9967
Mesaj Tarihi: 09 Kasım 2009 Saat 18:21
Orjinalini yazan: Conari Conari Yazdı:

Excel den import yapiyormus gibi, bu sefer o tablodan orjinal tabloya aktarin Wink
netsis in içindede bilindigi gibi tabloya tabloya aktarim var.


Maalesef söylediginiz yöntemi de denedim ama bir sonuç elde edemedim. Hata mesaji asagidaki gibi... (Not: Aktarim sirasinda farkli seçeneklerinde "Optimize for many ve Edit Mappings.. "gibi tüm varyasyonlarida denememe ragmen bir sonuca varamadim.)

- Copying to [KOROGLU09].[dbo].[TBLSTOKBAR] (Error)
Messages
Information 0x402090df: Data Flow Task: The final commit for the data insertion has started.
 (SQL Server Import and Export Wizard)
 
Error 0xc0202009: Data Flow Task: SSIS Error Code DTS_E_OLEDBERROR.  An OLE DB error has occurred. Error code: 0x80004005.
An OLE DB record is available.  Source: "Microsoft SQL Native Client"  Hresult: 0x80004005  Description: "The statement has been terminated.".
An OLE DB record is available.  Source: "Microsoft SQL Native Client"  Hresult: 0x80004005  Description: "Cannot insert duplicate key row in object 'dbo.TBLSTOKBAR' with unique index 'TBLSTOKBAR_IND_2'.".
 (SQL Server Import and Export Wizard)
 
Information 0x402090e0: Data Flow Task: The final commit for the data insertion has ended.
 (SQL Server Import and Export Wizard)
 
Error 0xc0047022: Data Flow Task: SSIS Error Code DTS_E_PROCESSINPUTFAILED.  The ProcessInput method on component "Destination - TBLSTOKBAR" (61) failed with error code 0xC0202009. The identified component returned an error from the ProcessInput method. The error is specific to the component, but the error is fatal and will cause the Data Flow task to stop running.  There may be error messages posted before this with more information about the failure.
 (SQL Server Import and Export Wizard)
 
Error 0xc0047021: Data Flow Task: SSIS Error Code DTS_E_THREADFAILED.  Thread "WorkThread0" has exited with error code 0xC0202009.  There may be error messages posted before this with more information on why the thread has exited.
 (SQL Server Import and Export Wizard)
 




-------------
..:NETSIS:..


Mesajı Yazan: volkank
Mesaj Tarihi: 09 Kasım 2009 Saat 18:46
iki tablonuda bir viewda birlestir.
Burada Referans olarak Stok Kodunu kullanabilirsin
Daha Sonrada View'i update et.



-------------
www.netsisaraclari.com


Mesajı Yazan: Conari
Mesaj Tarihi: 10 Kasım 2009 Saat 08:02
Microsoft SQL Native Client yerine
SQL server ile deneyin.
Ayrica ayni kayitlar var tabloda.


-------------
Netsisden vazgeçemiyorum. Beni engelliyor..


Mesajı Yazan: kerim9967
Mesaj Tarihi: 10 Kasım 2009 Saat 14:59
Bundan vazgeçtim. Hem çok zahmetli hem de uzun olacak ve anladigim kadariyla yöntemim yanlis. Tam olarak yapmak istedigim su; Stok kartina girdigim barkodlari Barkod kayitlari altina ilgili birimleriyle aktarmak istiyorum. Mesela Barkod 1 kaydini stok kartinin ilgili tablosundan silip barkod kayitlarinin tablosu altina 1. ölçü birimiyle kaydetsin. 2. barkodu silip 2. ölçü birimiyle kaydetsin.


-------------
..:NETSIS:..


Mesajı Yazan: rifatgunduz
Mesaj Tarihi: 11 Kasım 2009 Saat 20:25

Selam,

INSERT INTO TBLSTOKBAR(STOK_KODU, BARKOD, BARTIP, BARTARIH)

SELECT STOK_KODU,BARKOD1,'S',GETDATE() FROM TBLSTSABIT

WHERE BARKOD1 IS NOT NULL

kodu ile Stok Kartina eklemis oldugun barkod1 sahasindaki tüm barkodlari TBLSTOKBAR tablosuna aktarir. Bu sekilde barkod2 ve barkod3üde aktarabilirsin.
Iyi Çalismalar...


-------------
Rifat Gündüz



www.netsis.com.tr


Mesajı Yazan: kerim9967
Mesaj Tarihi: 12 Kasım 2009 Saat 10:50
Orjinalini yazan: rifatgunduz rifatgunduz Yazdı:

Selam,

INSERT INTO TBLSTOKBAR(STOK_KODU, BARKOD, BARTIP, BARTARIH)

SELECT STOK_KODU,BARKOD1,'S',GETDATE() FROM TBLSTSABIT

WHERE BARKOD1 IS NOT NULL

kodu ile Stok Kartina eklemis oldugun barkod1 sahasindaki tüm barkodlari TBLSTOKBAR tablosuna aktarir. Bu sekilde barkod2 ve barkod3üde aktarabilirsin.
Iyi Çalismalar...


Cry Nasil oluyor anlamiyorum. Ayni barkodu iki defa giremezsin mi diyor anlayamadim? Böyle bir seye imkanda yok zaten.

Msg 2601, Level 14, State 1, Line 1
Cannot insert duplicate key row in object 'dbo.TBLSTOKBAR' with unique index 'TBLSTOKBAR_IND_2'.
The statement has been terminated.


-------------
..:NETSIS:..


Mesajı Yazan: Conari
Mesaj Tarihi: 12 Kasım 2009 Saat 13:23
aynen öyle diyor.
isterseniz delete from TBLSTOKBAR
ile tabloyu bosaltin.
daha sonra
select barkod1, count(barkod1) from tblstsabit group by barkod1 ile barkodlardan birden fazla olan kayitlar varmi ona bakin yoksa insert edin.


-------------
Netsisden vazgeçemiyorum. Beni engelliyor..


Mesajı Yazan: SCORPION
Mesaj Tarihi: 15 Kasım 2009 Saat 21:45
Conari bi düzeltme yapmak istiyorum delete * from degil delete from TBLSTOKBAR olacak


Mesajı Yazan: Conari
Mesaj Tarihi: 16 Kasım 2009 Saat 08:15
haklisin, bende scripti düzeltiyorum.

-------------
Netsisden vazgeçemiyorum. Beni engelliyor..


Mesajı Yazan: kerim9967
Mesaj Tarihi: 17 Kasım 2009 Saat 11:44
Orjinalini yazan: Conari Conari Yazdı:

aynen öyle diyor.
isterseniz delete from TBLSTOKBAR
ile tabloyu bosaltin.
daha sonra
select barkod1, count(barkod1) from tblstsabit group by barkod1 ile barkodlardan birden fazla olan kayitlar varmi ona bakin yoksa insert edin.


Iyide ayni barkodu iki defa netsise girmem imkansiz. Çünkü bu barkodlar stok kartlarina islendi. Tablolari ikinci bir programa aktarmadan dogrudan stok kartindaki barkodu almak istiyorum. TBLSTOKBAR zaten sifir kayit daha önce barkod kayitlarini hiç oraya girmedim. Ama yine de bu kodu da deneyecegim, sonucunu buraya yazarim.


-------------
..:NETSIS:..


Mesajı Yazan: Conari
Mesaj Tarihi: 17 Kasım 2009 Saat 12:08

Bende imkansiz oldugunu biliyorum ama netsis ile imkansiz.

Disaridan alindi ise böyle bir problem olmus olabilir.


-------------
Netsisden vazgeçemiyorum. Beni engelliyor..


Mesajı Yazan: kerim9967
Mesaj Tarihi: 17 Kasım 2009 Saat 12:47
Disaridan alinmadi zaten, hepsi elle girildi. Verdiginiz kodlari çalistirdim conari bey. Nasil olmussa bir barkod çift çikti. Birisini silip yukarida rifatgunduz arkdasimizin vermis oldugu kodu tekrar çalistirdim ve sonuç. Bu arada yardimci olur mu bilmiyorum ama bazi ürünlerin barkodu yok. Hataya bu sebep olabilir mi acaba?

Msg 208, Level 16, State 1, Procedure NTR_TBLSTOKBAR_IU_YAPKOD, Line 17
Invalid object name 'NETSIS..NETSESSION'.



-------------
..:NETSIS:..


Mesajı Yazan: Conari
Mesaj Tarihi: 17 Kasım 2009 Saat 13:25
O scriptte where kosulu ile bos olan barkodlu stoklar devre disi birakiliyor.  birde su iki parametre ile birlikte deneyiniz.
ayrica birden fazla olan stok kartlarini düzeltmeniz gerekiyor. scriptte problem yok çalisiyor.

INSERT INTO TBLSTOKBAR(STOK_KODU, BARKOD, BARTIP, BARTARIH, I_YEDEK1, KILIT)

SELECT STOK_KODU,BARKOD1,'S',GETDATE(),1,'H' FROM TBLSTSABIT

WHERE BARKOD1 IS NOT NULL



-------------
Netsisden vazgeçemiyorum. Beni engelliyor..


Mesajı Yazan: rifatgunduz
Mesaj Tarihi: 17 Kasım 2009 Saat 21:36
Selam,
Almis oldugunuz index hatasi "NTR_TBLSTOKBAR_IU_YAPKOD" Stoklarda Yapilandirma kodu kullandiginizda ortaya çikan bir hatadir. Sizde yapilandirma kodu kullanimi açik mi?


-------------
Rifat Gündüz



www.netsis.com.tr


Mesajı Yazan: kerim9967
Mesaj Tarihi: 23 Kasım 2009 Saat 19:50
Conari Bey yaklasik 1800 barkodu gözden geçirdim fakat bir hata bulamadim. Sadece bir tanesinde "/" isareti vardi, onuda düzelttim.

rifatgunduz bey Yapilandirma Kodu dediginiz seyi sizden duydum ve Netsis Yardimdan inceledim; Ama pek bir sey anlamadim. Bu kodun kullanima açik olup olmadigini yada stok kartlarinda bu kodla islem yapilip yapilmadgini nasil kontrol edebilirim?


-------------
..:NETSIS:..


Mesajı Yazan: rifatgunduz
Mesaj Tarihi: 23 Kasım 2009 Saat 20:13

Selam Kerim Bey,

Siz bana mail ile TBLSTSABIT ve TBLSTOKBAR'da bulunan kayitlarinizi excelde gönderirseniz. Bende size ilgili sql kodlarini gönderebilirim.

Mail Adresim: mailto:rifat.gunduz@netsis.com.tr - rifat.gunduz@netsis.com.tr

Iyi Çalismalar...

 



-------------
Rifat Gündüz



www.netsis.com.tr


Mesajı Yazan: volkank
Mesaj Tarihi: 24 Kasım 2009 Saat 08:57
Excelden aktarimda Yapilandirma Kodu ile ilgili sütunda null disinda bir deger var ise (bu deger ' ' bile olabilir ve kullanici tarafinda farkedilemeyebilir) sistem bunu yapilandirma kodlu bir kayit olarak görüp ilgili trigger'i isletiyor olabilir.

-------------
www.netsisaraclari.com


Mesajı Yazan: Conari
Mesaj Tarihi: 24 Kasım 2009 Saat 10:12

Yapilandirma kodu

esnek yapilandirma modülü kullanan firmalarda kullanilmaktadir.
 

INSERT INTO TBLSTOKBAR(STOK_KODU, BARKOD, BARTIP, BARTARIH, I_YEDEK1, KILIT,YAPKOD)

SELECT top 100 STOK_KODU,BARKOD1,'S',GETDATE(),1,'H','' FROM TBLSTSABIT

WHERE BARKOD1 IS NOT NULL

Seklinde birde çalistirin.
aktarirsa barkod tablosunu önceki verdigim script ile bosaltip 200 300 seklinde deneyin. bu sekilde hangi kodda takildigini yakalarsiniz.


-------------
Netsisden vazgeçemiyorum. Beni engelliyor..



Sayfayı Yazdır | Pencereyi Kapat

Forum Software by Web Wiz Forums® version 11.10 - http://www.webwizforums.com
Copyright ©2001-2017 Web Wiz Ltd. - https://www.webwiz.net