Friday, January 27, 2006

Having problems while deleting Office objects?

Do you encounter problems while deleting objects in Office applications with VSTO 2005 - Visual Studio Tools for Office 2005? This is because of the underlying Office Object model and although you seem to be doing the right thing with iterating through the objects in a collection and deleting them - and the compiler does not raise any errors - most of the time at runtime your code results with unexpected behavior. (it deletes the wrong object, does not delete all objects etc.)

Here is a code with problem:

foreach (Outlook.Attachment _attachment in _mailItem.Attachments)
{ _attachment.Remove }


So here is what you should do: instead of deleting during iteration, create a new .NET Collection, add the objects (in our example attachments) to that collection within the foreach clause and after that delete the objects in the .NET collection.

Happy coding!

Wednesday, January 04, 2006

Türkiye'den 7600 fotoğraf!

Dick Osseman Türkiye'yi köşe bucak gezerek 7600 fotoğraf çekmiş ve bunları internet'te yayınlamış. Aşağıdak adresten fotoğraflara ulaşabilirsiniz.

http://www.pbase.com/dosseman/

Monday, January 02, 2006

Business Contact Manager - Database creation was unsuccessful


Business Contact Manager 2003'ü yükledikten sonra veritabanı yaratılması sırasında (Database Setup) "Database creation was unsuccesful" hatası alıyorsanız BCM kurulumu için biraz uğraşamanız gerekecek :)

Bu hatanın nedeni MSDE (Microsoft Sql Desktop Engine) veritabanı kurulumunda Collation'ın Turkish_CI_AS olarak kurulmasından kaynaklanıyor. Collation nedir diyorsanız: Veritabanlarında alfabetik, numerik ya da belirli bir mantik cercevesinde siraya koyma işinin nasıl yapılacağını tanımlayan bir ayar. Regional Settings Turkish olarak ayarlandığında MSDE de Türkçe'ye uyumlu olmak için bu ayarı Turkish_CI_AS olarak kuruyor.

Ne yazık ki BCM bu şekilde kurulamıyor çünkü Collation'ın LATIN1_GENERAL_CI_AS olarak kurulması gerekiyor. Collation'ı sonradan değiştirmek mümkün değil. (mümkün olabilir ama oldukça zahmetli)

En iyisi

1) BCM'i outlook 2003 üzerine kurun.
2) BCM Service Pack 1'i kurun.
3) Program ekle kaldir'dan MICROSOFTSMLBIZ adlı Sql veritabanını kaldırın.
4) BCMV2UPD.exe yi bir klasör e extract edin. Bunun için Winzip, winrar kullanabilirsiniz.
5) daha sonra yine bir exe yaratılıyor. Onu da aynı şekilde bir klasöre açın.
6) Şimdi SQLMSDE diye bir klasör yaratılmış olmalı
7) Command Prompt'dan bu klasöre erişin ve şunu yazın:

setup.exe SAPWD="AStrongSAPassword" INSTANCENAME="MICROSOFTSMLBIZ" COLLATION="LATIN1_GENERAL_CI_AS" /L*v C:\MSDELog.log

Burada sırasıyla:

a) MSDE için bir strong password tanımlıyoruz. daha strong bişey yazabilirsiniz.
B) SQL instance'ının adını tanımlıyoruz. (bu aynen kalsın)
c) Collation'ı gerektiği şekilde ayarlıyoruz
d) Windows Authentication ( /L*v)
e) log'u şuraya yaz.

8) Kurulum bittikten sonra BCM'i yeniden çalıştırın. Bu defa database sorunsuz yaratılacak.

Kolay gelsin!