6 Mayıs 2013 Pazartesi
Oracleda blob olarak kayıtlı resimleri topluca jpeg olarak diske yazma
// Oracle DAC for NET kurulur
// Oracle.DataAccess referans olara eklenir ve using Oracle.DataAccess.Client; eklenir..
private void button4_Click(object sender, EventArgs e)
{
/*
http://www.codeproject.com/Articles/13365/Insert-retrieve-an-image-into-from-a-blob-field-in
*/
string oraHost = "ORACLESUNUCU";
string oraPort = "1521";
string oraSid = "SERVISADI";
string oraUsr = "KULLANICIADI";
string oraPass = "ŞİFRE";
label1.Text = "Bekleyiniz...";
string OrclConStr="Data Source=TNSTEKISERVISADI;User iD=" + oraUsr + ";Password=" + oraPass;
string pth = @"D:\RESIM_YOLU";
string log = pth + "\\log.txt";
File.WriteAllText(log, DateTime.Now.ToString() + " Oracledan Resim Güncelleme : " + Environment.NewLine);
int say=0;
try
{
OracleConnection con = new OracleConnection();
con.ConnectionString = OrclConStr;
DataSet ds = new DataSet();
string sql = "select PERSID,FOTOGRAF from tblRESIMLER "; // where rownum<10 ";
OracleDataAdapter da = new OracleDataAdapter(sql, con);
da.Fill(ds);
DataTable dataTable = ds.Tables[0];
FileStream FS;
foreach (DataRow dataRow in dataTable.Rows)
{
string pid = dataRow[0].ToString();
string resimyol=pth + @"\" + pid + ".jpg";
string txt =pid + " : Resim zaten var yazılmadı." + Environment.NewLine;
if(!File.Exists(resimyol))
{
FS= new FileStream(resimyol, FileMode.Create);
byte[] blob = (byte[])dataRow[1];
FS.Write(blob, 0, blob.Length);
FS.Close();
FS = null;
txt = pid + " : AKTARILDI." + Environment.NewLine;
say++;
}
File.AppendAllText(log, txt);
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
label1.Text = "";
MessageBox.Show(say.ToString() + " adet resim dosya olarak aktarıldı. Detay için Log.txt");
}
16 Şubat 2011 Çarşamba
Microsoft SQL Veritabanını EMERGENCY Mode ile Kurtarma (Recovery) Yöntemi.
Microsoft SQL Veritabanını EMERGENCY Mode ile Kurtarma (Recovery) Yöntemi.
Bir Sql veritabanı genelde 2 dosyadan oluşur ve tüm tablo, prosedür, view,indeks gibi nesnelerin hepsini bu dosyalarda tutar. Eğer bir sebepten dolayı dosyada bi bozukluk tutarsızlık meydana gelirse dosyayı mdf ve ldf dosyalarımızı atach ederken aşağıdaki gibi korkutucu bir mesajla karşılaşabiliriz.
Bizim bu mesajı aldığımız veritabanı sql 2005 express edition’da yaşandı. Ve çözüm için tavsiye edilen yöntemleri önce sql2008 R2, sql2008 express gibi sunucularda denedim ancak bunlarda belli bir aşamadan sonra veri dosyasının upgrade etmemizi söyleyen bir mesajla karşılaştım. Bu sebeple dosya hangi versiyonda bir veritabanında iken sıkıntı oluştu ise o versiyonda bir db sunucusunda çözüme çalışmak lazım.
İlk yapacağımız iş kendi dosyalarımızı atach edemediğimizden sql’i kandırarak attach edilmiş gibi göstermek. Bunun için bozuk veritabanı ile aynı isimde bir veritabanı oluşturalım. Bizim yaptığımız uygulamda dosyalarımızın konumları aşağıdaki resimdeki gibidir.
8 Şubat 2011 Salı
Microsoft Ofis Mail Merge ile şablon bir metni bir çok kişi için kısa sürede oluşturma.
Mail merge word’ün bir çok kişinin keşfetmediği için aynı işi çok uzun yollardan yaptığı güzel bir özelliktir.
Bir word belgemizde aşağıdaki gibi bir şablon metnimiz var diyelim.
Bu bilgiler elimizdeki bir excel belgede kayıtlı olsun. Excel içeriği şu şekilde olsun:
isim
|
hesapno
|
miktar
|
adres
|
turgut
|
4123412
|
4432
|
a caddesi b sokak no:12
|
ahmet
|
234234
|
343
|
d caddesi t sokak no:15
|
mehmet
|
423423
|
234
|
m caddesi g sokak no:2
|
cumhur
|
5345345
|
534
|
h caddesi d sokak no:15
|
kezban
|
23423423
|
324
|
j caddesi l sokak no:13
|
demet
|
234234
|
3434
|
j caddesi l sokak no:16
|
...
...
Şimdi word belgemizi açalım ve ilk iş olarak listemizi word’e gösterelim.
7 Şubat 2011 Pazartesi
HttpHandler ile güvenli dosya paylaşımı.
Bildiğiniz gibi web yapısında herşey request-response mantığı içinde devam eder. Bir istek (request) sunucuya gelince, hangi tanımlanmış kod'un (ddl,class,exe,ashx ) bu istekle ilgilenip bir cevap döneceği handler ( kotarıcı, işleyici) kavramını oluşturur. Varsayılan olarak aspx,ascx, vb bir çok dosyanın bir handleri vardır. ve bu handler atamasına IIS arayüzünden erişebilirsiniz.
Normalde bir rar, zip, pdf gibi dosyalar sunucudan istenince download edilebilir şekilde clienta gelirler. yani clietn istemci yani web tarayıcılar bu dosyaları indirme veya açma işlemini yapabilirler. Biz eğer kendimiz bu dosya tiplerine bir handler yazarsak şifreyi doğru girmeye kullanıcılara dosyalarımızı göndermeyebiliriz. Doğru girdiklerinde ise normal handler ne yapıyorsa o şekilde dosyayı istemciye yollarız
Öncelikle bir kaç rar dosyası bulup bunlardan bazılarını uygulama kök dizinimize bir kısmınıda \secureshare klasörü altına kopyalayalım. sonra bu dosyalara browse edeciğimiz webform1.aspx gibi bir sayfada link verelim.
webform1.aspx'den :
Normalde bir rar, zip, pdf gibi dosyalar sunucudan istenince download edilebilir şekilde clienta gelirler. yani clietn istemci yani web tarayıcılar bu dosyaları indirme veya açma işlemini yapabilirler. Biz eğer kendimiz bu dosya tiplerine bir handler yazarsak şifreyi doğru girmeye kullanıcılara dosyalarımızı göndermeyebiliriz. Doğru girdiklerinde ise normal handler ne yapıyorsa o şekilde dosyayı istemciye yollarız
Öncelikle bir kaç rar dosyası bulup bunlardan bazılarını uygulama kök dizinimize bir kısmınıda \secureshare klasörü altına kopyalayalım. sonra bu dosyalara browse edeciğimiz webform1.aspx gibi bir sayfada link verelim.
webform1.aspx'den :
<hr>
güvenli içerik : <br />
<a href="secureshare/a.rar">a.rar</a><br />
<a href="secureshare/b.rar">b.rar</a> <br />
<a href="secureshare/c.rar">c.rar</a><br />
<a href="secureshare/d.rar">d.rar</a>
<hr />
şifresiz- içerik : <br />
<a href="a1.rar" >a1.rar</a><br />
<a href="d1.rar" >d1.rar</a>
Kaydol:
Kayıtlar (Atom)

