RSS Feed

Posts Tagged ‘lo’

  1. python ile mssql sunucu bağlantısı

    August 3, 2009 by Oğuz Yarımtepe

    NEU öğrenci veri tabanı zamanında MsSQL sunucu üzerinde inÅŸa edildiÄŸinden benim de yazacağım uygulamada bir ÅŸekilde ona baÄŸlanmam gerekti. Åžu aralar MsSQL den MySQL’e göç devam etse de ÅŸimdilik pek haz etmesem de sevgili Ms sunucu ile konuÅŸmam gerekecek.

    Pardus altında Ms sunucuya veri tabanı bağlantısı yapabilmek için FreeTDS  ve unixODBC ikilisini kullandım. unixODBC, Unix için ODBC arayüzü olarak geçen ve Pardus 2008.2 ile varsayılan kurulu gelen bir paket. Ayar dosyalarına bakmak için

    $ odbcinst -j
    unixODBC 2.2.12
    DRIVERS…………: /etc/unixODBC/odbcinst.ini
    SYSTEM DATA SOURCES: /etc/unixODBC/odbc.ini
    USER DATA SOURCES..: /home/oguz/.odbc.ini

    Varsayılan olarak odbcinst.ini ve odbc.ini dosyaları boÅŸ geliyor Pardus’ta. Birazdan odbc.ini’yi elliyor olacağız. Önce FreeTDS kurulumu yapmak gerekiyor. Pardus depolarında henüz olmayan bir paket kendileri. Bu durumda her fani gibi kaynağını çekip derleyip kurmamız gerekiyor. http://www.freetds.org/ adresine girdiÄŸimizde kararlı sürümünü indirip tar.gz dosyasını açtıktan sonra aÅŸağıdaki adımları takip etmek yeterli oluyor kurulum için.

    $ ./configure –enable-msdblib

    $ make

    $ sudo make install

    Kurulum varsayılan olarak /usr/local/ altına dosyalarını yerleştiriyor. /usr/local/etc/freetds.conf dosyasındaki ilgili alanı şu şekilde değiştiriyoruz:

    [egServer70]
    ·   host = sunucu ip numarası
    ·   port = 1433
    ·   tds version = 8.0

    Bu dosya içerisindeki ; ile başlayan ve işimize yarayacağını düşündüğümüz satırları da açabiliriz. Ben tds version kısmını [gloabal] altında 5.0 olarak değiştirip başındaki noktalı virgülü kaldırmışım. Ayrıca log satırını da açmışım.

    sonra da odbc.ini dosyasını elliyoruz:

    [dsn]
    Description = MSSQLSERVER
    Driver = /usr/local/lib/libtdsodbc.so
    Servername = egServer70
    Database = baglanilacak veri tabanı adı

    Åžimdi de pyodbc kullanarak bu iÅŸleri kullanabileceÄŸimiz hale getirelim.

    In [1]: import pyodbc

    In [2]: pyodbc.connect(‘DSN=dsn;UID=oguz;PWD=.pass:parolaniz. .’)
    Out[2]: <pyodbc.Connection object at 0xb770f200

    Burada en kritik nokta sevgili Ms sunucunun parolayi .pass:bilmemne. . formatinda alıyor olması. Bunu onca uÄŸraÅŸtan sonra hala bir giriÅŸ sorunu yaÅŸarken, bir de windows bilen birileriyle bakalım ÅŸu olaya deyince öğrendim. Cahillik zor ÅŸey vesselam 🙂