Herkese merhaba,

Bu yazıda SQL Server’da BCP yani Bulk Copy Program kullanarak veritabanındaki fotoğrafı klasöre çıkartmak hakkında bilgi vereceğim.

BCP (Bulk Copy Program),  kısaca yığın kopyalama programıdır. Veri alma ya da veri aktarma işlemleri için bu programı kullanabilirsiniz.

Aslına bakarsanız BCP kullanarak veritabanındaki fotoğrafı klasöre çıkartmakla ilgili doğru düzgün bir örnek ya da Türkçe bilgi yok. Hatta bu konu hakkındaki Türkçe makaleyi ilk ben yazdım.

Bu makale aşağı yukarı iki ya da üç saatlik bir çalışmanın ürünüdür. Kodların kısa olduğuna bakmayın. Cidden anlaması ve uygulaması o kadar da kolay olmayan bir çalışmadır.

Not 1 : Bu işlemler Windows’un yüklü olduğu sürücüde maalsef çalışmadı. Güvenlik engellerine takıldığı için D sürücüsü üzerinde işlemlerimi yaptım.

Not 2 : Aşağıdaki ayarları kendi sunucunuz üzerinde muhakkak çalıştırın aksi durumda bu işlem çalışmaz.


Ayarları yaptıktan sonra ilk olarak aşağıdaki tabloyu oluşturun ve içerisine eklemiş olduğum veriyi ekleyin.


Yukarıda bir tablo oluşturdum ve bu tabloya 18mart.jpg adında bir fotoğraf adı ekledim. Siz dilediğinizi ekleyebilirsiniz. Uzantı adıyla beraber kaydettim yani 18mart.jpg şeklinde. Siz de konuyu anlamak adına fotoğraf adını değiştirmeden ekleyin.

Şimdi bu tabloya aşağıdaki kod ile fotoğrafımı ekliyorum.


Benim fotoğrafım D sürücüsündeydi. Yukarıdaki kodda bir where şartı da bulunmakta. Daha sonra başka yerde de kullanmanız için böyle bir şartı da koda ekledim.

Zaten fotoğraf adım 18mart.jpg olduğu için sıkıntı çıkmadan çalışacaktır. Siz bu kısma muhakkak dikkat edin.

Yukarıdaki sorguyu çalıştırdıktan sonra aşağıdaki sorguyla tablomuzu kontrol edelim.


Sorguyu çalıştırdığınızda aşağıdaki sonucu göreceksiniz.

Görüldüğü üzere fotoğrafımız şu anda sunucu içinde tabloda ve VARBINARY tipinde

Şimdi gelelim bu fotoğrafı klasörümüze çıkarmaya.

İlk olarak D sürücüsü içine deneme adında bir klasör oluşturalım. Fotoğrafımızı bu klasöre çıkaracağız. Klasörü oluşturduktan sonra aşağıdaki işlemlere devam edelim.

BCP kullanarak veritabanındaki fotoğrafı klasöre çıkartma işleminde karşılaştığım en büyük sıkıntı format sıkıntısıydı.

Bu sıkıntı şu şekilde gitti.


Yukarıdaki kodu cmd komut dosyası ekranında çalıştırdığınız anda formatdosyasi.fmt adlı dosyayı deneme klasöründe oluşturacaktır. Eğer bu dosyayı oluşturmazsanız BCP ile fotoğrafı klasöre düzgün şekilde çıkartmada sıkıntı yaşarsınız.

Bu kodun anlamına gelince.

[YoutubeEgitimleri].[dbo].[Fotograf] Burası veritabanındaki tablomuzdur. Siz kendi tablonuza göre ilerde düzenleyebilirsiniz.

D:\deneme\formatdosyasi.fmt Burası da görüldüğü üzere formatdosyasi.fmt ‘yi çıkaracağımız dosya yoludur.

Gelecekte başka işlemler için sadece bu ikisinde kendinize göre değişiklik yaparsınız.

Kodu çalıştırdığınız anda aşağıdaki sonucu göreceksiniz.

Görüldüğü üzere başarı ile çalıştı ve deneme klasöründe formatdosyasi.fmt adlı dosya başarı ile oluştu.

Şimdi bu dosyayı not defteri ile açalım. Açınca aşağıdaki ekranı göreceksiniz.

Şimdi bizim kullanacağımız satır Fotoğraf satırı. Çünkü Varbinary dosya o satır. Satırı aşağıdaki gibi düzenleyip kaydedelim.

Bu işlemi başarı ile tamamladıysanız sıra geldi aşağıdaki kodu çalıştırmaya.


Gördüğünüz üzere formatdosyasi.fmt yapısını sorgumuzda kullanmaktayız. Dosyayı çıkardığımız yer ise deneme klasörüdür.

Kodu SQL Server üzerinde çalıştırdığınız anda aşağıdaki sonucu göreceksiniz.

Görüldüğü üzere başarı ile çalıştı. Şimdi deneme klasörüne gidip bakalım.

Görüldüğü üzere fotoğraf başarılı bir şekilde veritabanından çıkarılmış oldu.

Herkese çalışma hayatında ve yaşamında başarılar kolaylıklar.

Yazıyı Paylaşın

SQL Server Eğitimleri Kanalına Abone Olun
[Toplam: 0   Ortalama: 0/5]
Makale Özeti
SQL Server’da BCP Kullanarak Veritabanındaki Fotoğrafı Klasöre Çıkartmak
Makale Adı
SQL Server’da BCP Kullanarak Veritabanındaki Fotoğrafı Klasöre Çıkartmak
Açıklama
SQL Server’da bcp kullanarak veritabanındaki fotoğrafı klasöre çıkartmak hakkında bilgi verildi.
Yazar
Yayınlayan
SQL Server Eğitimleri
Site Logo
Author

SQL Server tarafında kendini ilerletmeye çalışırken bildiklerini sürekli başkalarına aktaran, yazılım dünyasında (C#, Java, Python vb.) kendini güncel tutmaya çalışan, araştırma yapmaktan bıkmayan, meraklı, bilginin üzerine bilgi katmaktan mutluluk duyan bir yazılım eğitmeni ve kod sever. Grafik tasarım dünyasında Indesign'ı anlatacak kadar iyi kullanabilen, Photoshop ve Illustrator'e de orta düzey hakimiyeti bulunan, internet üzerinde online kimya dergisi kurmuş ve bunu yüzbinlerce kişiye ulaştırmayı başaran bir grafik sever. WordPress tarafında 5 adet web sitesi kurmuş, bu sistemler üzerine çalışan bir WordPress sever. Sosyal medya üzerinde okumalara ve araştırmalara devam eden, kendi kurmuş olduğu kimya dergisini daha çok kişiye nasıl ulaştırırım diye düşünen ve bu konuda SEO çalışmaları üzerine kafa yoran bir Sosyal Medya sever. Kısaca çok çalışmayı seven, azimli biriyim.

Yorum Yaz