Forum

Uzak SQL'den Lokal ...
 
Bildirimler
Hepsini Temizle

Uzak SQL'den Lokal SQL deki tabloya benzersiz kayıt nasıl çekerim ?

4 Yazılar
2 Üyeler
0 Reactions
528 Görüntüleme
(@yusufgunaydin-2)
Gönderiler: 3
Active Member
Konu başlatıcı
 

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. ? 

 
Gönderildi : 05/05/2015 04:16

(@eravse)
Gönderiler: 1753
Üye
 

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

 
Gönderildi : 05/05/2015 12:31

(@yusufgunaydin-2)
Gönderiler: 3
Active Member
Konu başlatıcı
 

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 ? 

 
Gönderildi : 08/05/2015 03:41

(@eravse)
Gönderiler: 1753
Üye
 

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

 
Gönderildi : 11/05/2015 12:09

Paylaş: