30 Kasım 2008 Pazar

Linux uzerinde Upgrade İşlemleri (PHP,Mysql,Apache)

Linux üzerinde çalışırken php, mysql, apache nin son sürümlerini kurmak istediğinizde depodan size en uygun olanı indirtiyorlar.

sudo apt-get install apache2

sudo apt-get install php5

Sıfır kurulum için tamam. Ama ya bu kurduğunuz versiyonu upgrade yada downgrade etmek istiyorsanız yada bu sürüm yerine son stabil olanı kullanmak istiyorsanız ?

O zaman yapılacaklar 2 ye ayrılıyor. Ya elle bunları deryeleceksiniz yada paket yöneticinizden ayarları değiştirip hangi durumda olan sürümü istediğiniz belirteceksiniz.

Kolay olan paket yöneticinizden indirdiğiniz dosyaların tipini değiştirmek.

Bende ubuntu var onun üzerinden gidersek ;

PHP kurulu version PHP Version 5.2.3-1ubuntu6

nano /etc/apt/sources.list dersek


ikinci satıra ;

deb http://packages.dotdeb.org stable all
deb-src http://packages.dotdeb.org stable all

yazın.

sudo apt-get update -- böylece stable relase ler bulunacak

sudo apt-get install php5

yazınca zaten php5 kurulu olduğu için upgrade yapıp yapmak istemediğimizi soracak.

Y deyip geçiyoruz.

Tekrar bir soru gene "y"

işlem bitince php yi kontrol ediyoruz.

PHP Version 5.2.6-0.dotdeb.1

26 Kasım 2008 Çarşamba

Operation must use an updateable query. Microsoft JET Database Engine error '80004005'

"Microsoft JET Database Engine error '80004005'Operation must use an updateable query."

Access veritabanında update/insert/delete işlemi yapmak istediğiniz bu hatayı alabilirsiniz. Sebebi veritabanına yazma yetkisi olmayışıdır. Veritabanına sağ tıklayıp hangi user ile işlem yapıyorsanız ona yetki verin.

Ben bu komutu sitede çalıştırdığımız için "IISUser" için yazma yetkisi verdim.

20 Kasım 2008 Perşembe

Sql Server Bütün Veritabanlarının Yedeğini Alma

Sql Server Yedek Alma

http://www.mssqltips.com/tip.asp?tip=1070



DECLARE @name VARCHAR(50) -- database name
DECLARE @path VARCHAR(256) -- path for backup files
DECLARE @fileName VARCHAR(256) -- filename for backup
DECLARE @fileDate VARCHAR(20) -- used for file name

SET @path = 'C:\Backup\'

SELECT @fileDate = CONVERT(VARCHAR(20),GETDATE(),112)

DECLARE db_cursor CURSOR FOR
SELECT name
FROM master.dbo.sysdatabases
WHERE name NOT IN ('master','model','msdb','tempdb')

OPEN db_cursor
FETCH NEXT FROM db_cursor INTO @name

WHILE @@FETCH_STATUS = 0
BEGIN
SET @fileName = @path + @name + '_' + @fileDate + '.BAK'
BACKUP DATABASE @name TO DISK = @fileName

FETCH NEXT FROM db_cursor INTO @name
END

CLOSE db_cursor
DEALLOCATE db_cursor



Diğer bir yöntem Maintanence Plan yapma. Bunun için Sql Agent Job servisinin açık olması gerekiyor.

http://www.mssqltips.com/tip.asp?tip=1016

19 Kasım 2008 Çarşamba

Zend Studio For Eclipse Kullanım Kılavuzu -1

Daha önce Zend in eski surumunu kullaniliyordum cokda alismistim açıkcası. Ama yeni Zend de gayet güzel ve daha çok özellikleri var.

Fırsat buldukça size bunları anlatacağım.


Aşağıdaki işlemlerin hepsi proje açıldıktan sonra yapılmıştır ;

Öncelikle CVS ayarları ;

Windows/ Open Perspective / Other / CVS Repository Exploring








---------------------------------------------------

Zend Studio For Eclipse BAckround ayarlarını değiştirme ve renklendirme 

Window /Preferences  / General / Editors/ Text Editors







-----

Genel olarak  renk ayarlarini yapmak için yukarda "Syntax Coloring" olarak aratmanız 
yeterli olacaktır.


8 Kasım 2008 Cumartesi

SSIS Paketi Kullanmak

SSIS Paketi Kullanmak;
Bu dökümanda sizlere basit bir ssis paketi yazmayı anlatacağım. Burda yaptıklarım aslında mantık olarak tamamen doğru olduğu için değil daha fazla araç kullanmak için yapılmıştır. Ne dediğimi dökümanı okudukça anlayacaksınız ;

Döküman : http://docs.google.com/View?docid=dgndh2qr_51f9t29tc7
Uygulama : http://www.volkanaltan.com/Dokumanlar/ssis_kullanmak.zip
Paket Şifresi : 123456

SSIS (SQL Server Integration Services)

SSIS bir veri kaynağından (Veritabanı,Dosya vs..) verilerin alınıp arada istenirse işlemlere tabi tutularak
başka bir veri kaynağına aktarılmasıdır. Biz bunu yaparken Visul Studio 2005 kullanacagiz.

Öncelikle konuyu iyi kavrayabilmek için bir senaryo yazalım. Onun üzerine projemizi yapalım.

Soru : İçindeki dataları aynı olan fakat bazen birinden fazla diğerinde eksik veya tersi durumların olduğu İki farklı veritabanı arasında tablo bazlı senkornizasyon işlemi nasıl yapılır ?

Öncelik soru biraz karışık gözüktüğü için tesbit yapalım.

Local_db ve Remote_db iki veritabanı. Bu veritabanlarının localde bir yerde olduğunu varsayıyoruz.
A1 ve B1 tabloları için mevcut datalar aşağıdaki gibidir.

Local_db .A1 Remote_db .A1
1 1
2 2
7 5
8
9

Bunların eşitenmesi için A1 deki fazla datanın B1’ e, B1 deki fazlaların (varsa) A1’e geçilmesi gerekiyor.
Burdaki veritabanları farklı serverlarda bulunuyor. Bunlara ulaşmak için Linked Server (Daha önce anlatmıştık.) kullanabiliriz. O zaman bu işlem için şu şekilde bir Sql cümleciği yazmamız gerekicekti.



Select Ldb.*,Rdb.* From local_db.dbo.A Ldb

left join remote_db.dbo.A Rdb ON Rdb.PrID = Ldb.PrID


Yukardaki sorgu bize şöyle bir sonuç verecektir.



Bizim istediğimiz ise Local db de olan fakat remote db de olmayan dataları Remote Db ’ ye girmek.
Bunun için Locale A Remote a B dersek. A-(A∩B) yapiyoruz. (A tablosundan A kesişim B yi çıkartıyoruz, sadece B’ de olan datalar bize kalıyor.)


Select Ldb.*,Rdb.* From local_db.dbo.A Ldb

left join remote_db.dbo.A Rdb ON Rdb.PrID = Ldb.PrID

WHEre Rdb.PrID is null




Görüldüğü üzere B ‘ ye girmemiz gereken datalar ortaya çıktı. Şimdi bunu tam işe yarar hale getiriyoruz.


INSERT INTO Remote_db.A (PrID)

Select Ldb.PrID From local_db.dbo.A Ldb

left join remote_db.dbo.A Rdb ON Rdb.PrID = Ldb.PrID

WHEre Rdb.PrID is null


Çalıştırınca “(3 row(s) affected)” yazısı çıkıyor. İşlem başarılı.

Şimdi bu yaptığımız işlemde yazdığımız Sql cümleciğini SSIS kullanarak yapacağız.


Önce proje oluşturuluyor.
....

7 Kasım 2008 Cuma

Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY093]: Invalid parameter number: no parameters were bound' in

Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY093]: Invalid parameter number: no parameters were bound' in diye uzar gider bu hata.

Zend Framework içindeki Zend_Table yapısını kullandığınızda eğer PHP sürümünüz
5.1.2 ve altındaysa bu hatayla karşılaşmanız muhemel. Türkçe karakterlerde sorun çıkartıyor.

ı,ö,ü,ş,ğ,ç vs..

Ben sp içinde data insert ederken bu hatayı aldım.

Çözüm olarak PHP sürümü yükselttik sorun çözüldü. (php 5.2.6)

Sql Server 2005 Data Compare

Sql Server 2005 de Data Compare yapmak için kendi içindeki bir aracı kullanabilirsiniz.
Ama bunu sizin yerinize kolaylaştırmışlar. Oldukça da güzel.

TableDiffGui

Burda da yorumları okuyabilirsiniz.
http://weblogs.sqlteam.com/mladenp/archive/2007/08/10/60279.aspx

php xml parser error : 4

Php xml parser error : 4

Almasi zor bir hata :)

Bu hatayi aliyorsaniz çektiğiniz datanın unicodunda bir terslik var demektir . Data eksik veya hatalı okunuyordur.

Muhtemelende file_get_content fonksiyonu kullandiginizda veya fopen de karsinize çıkmış olabilir.

Bunu engellemek için ;


function file_get_contents_utf8($fn) {
$content = file_get_contents($fn);
return mb_convert_encoding($content, 'UTF-8',
mb_detect_encoding($content, 'UTF-8, ISO-8859-1', true));
}


http://tr2.php.net/manual/en/function.file-get-contents.php#85008

4 Kasım 2008 Salı

Login failed for user 'volkan'. The user is not associated with a trusted SQL Server connection. (Microsoft SQL Server, Error: 18452)

Login failed for user 'volkan'. The user is not associated with a trusted SQL Server connection.
(Microsoft SQL Server, Error: 18452)

Sql Server 2005 de login olmak istediğinizde bu hatayı alıyorsanız sebebi Login modun uygun olmamasıdır. Bunun için;
Microsofta bakabilirsiniz.
http://support.microsoft.com/kb/555332

Ayrıca , MSSMS ile Databse bağlantısı açtıktan sonra ( win authentication)
1. üzerine sağ tıklayıp Property
2. Security
3. Server authentication mode : SQL Server and Windows Authentication mode seçin.
4. Login auditing : Failed logins only
5. Sql serveri yeniden başlatın.