Forum
Merhaba Arkadaşlar,
cmd.CommandText = "select id,[LOGICALREF],[BARKODREF],[NAME],[CODE],[BARCODE],[SPECODE],[VAT],[UNITSETREF],[UNITNAME]," _
& " [ACTIVE],[PRICE],[pbirim],[fiyatref],[CHANGE],[fiyat2],[urungrup],[anagrup],[sektor],[reyon]," _
& " [fiyatgerekli],[indirimyapılamaz],grupkod,LOG_GUNTAR,LOG_GUNSAAT,GUNTAR,GUNSAAT from " & tabload & ""
Dim gok As SqlDataReader = cmd.ExecuteReader
Dim bulkdata As New SqlClient.SqlBulkCopy(ofcon)
bulkdata.DestinationTableName = tabload
bulkdata.BulkCopyTimeout = 110
bulkdata.WriteToServer(gok)
bulkdata.Close()
gok.Close()
Yukarıdaki kod ile con bağlantısıyla uzaktaki istediğim veriyi SQlDataReader la çekip ofcon bağlantısını kullanarak SqlBulkCopy yöntemiyle
istediğim tabloma kayıt ediyorum. Fakat var olan kayıtları tekrar kayıt ediyor.
Yapılan işlemin hızlı olması gerekli datareader'da tek tek dolaşıp tablo içinde olmayan kaydı ekle deme şansım yok.
Bunu başka nasıl yapabilirim yöntem tavsiye edebilirmisiniz. ?
Eğer SQL de bir koşul koymaz iseniz butun dataları alır ceker hangı tablo master tablonuz ıse aynı olmayan id leri çekin yada başka bir referans var ise
where id <> gibi.
Saygılarımla
ProfectSoft Yazılım ve Danışmanlık Hizmetleri
LogPusher & Bifyou E-Commerce System
www.profectsoft.com
Erdem Bey,
Cevabınız için teşekkkürler, Fakat;
Sorun burada baş gösteriyor. Cmd.Commandtext in için de con bağlantısı ile okuduğum N tablosunu ofcon bağlantısıyla okuduğum T tablosuyla nasıl kıyaslayabilirim.
Con bağlantısının bulunduğu database de T tablosu yok. T tablosu başka bir database'de. Aynı server'da değiller.
Linq bağlantısı kurarak sanırım bu yapılabiliyordu fakat SQL Server'lar Express sürüm. Link bağlantısı kuramıyorum.
Başka bir çözüm biliyormusunuz ?
Yani eğer tablolarınızı aynı db de relation edemiyorsanız veya karşılaştıramıyorsanız bunu custom olarak foreach gibi başka bir çare göremedim. Tam da olayı anlamamışta olabilirim ama siz zaten hem uzaktaki hemde kendi verinizi çekebildiğinizi tek sql ile bunları nasıl match edeceğinizi sormuştunuz.
bir diğer yöntem bir servis yazın ve temp tabloya uzaktaki dataları mevcut local db ye kayıt etsın daha sonra bu iki tablo arasında bir şekilde id lerden matching yapın eşleşmeyeni alın ve istediğiniz tabloya kayıt edin bu da diğer bir yöntem olabilir
Saygılarımla
ProfectSoft Yazılım ve Danışmanlık Hizmetleri
LogPusher & Bifyou E-Commerce System
www.profectsoft.com