четверг, 11 марта 2010 г.

XSL - ужас!

XSL - шаблоны. Вроде удобно, понятно. Циклы, проверки, подгрузка шаблонов. Но... как сделать обычный HTML-комментарий? Шаблонизатор съедает его!

Оказалось нужно
<!-- я коммент -->
мутировать в ужас:
<xsl:text disable-output-escaping="yes">&#60;!-- я коммент --&#62;</xsl:text>

Омг! И скрипты... тоже... нужно мутировать...

среда, 3 марта 2010 г.

Python 2.6 в CentOS5

Подсмотрено тут.

wget http://python.org/ftp/python/2.6.4/Python-2.6.4.tar.bz2

tar -xjf Python-2.6.4.tar.bz2

cd Python-2.6.4

yum install -y gcc make zlib-devel bzip2-devel openssl-devel readline-devel sqlite-devel gdbm-devel ncurses-devel

./configure --prefix=/opt/python26 --with-zlib=/usr/include

make

make install

ln -s /opt/python26/bin/python2.6 /usr/bin/python2.6

python2.6 -V

Теперь 2.6 версия вызывается через python2.6

Установка easy_install:

wget http://pypi.python.org/packages/2.6/s/setuptools/setuptools-0.6c11-py2.6.egg#md5=bfa92100bd772d5a213eedd356d64086

sh setuptools-0.6c11-py2.6.egg

ln -s /opt/python26/bin/easy_install-2.6 /usr/bin/easy_install-2.6

easy_install-2.6 --help

Соответственно вызывать через easy_install-2.6

Настройка работы с MSSQL с линукса (CentOS 5)

Столкнулся с написанием скриптов для работы на линукс-сервере с MsSQL-базой на питоне. Основная проблема - сообщение типа


pyodbc.ProgrammingError: ('42000', '[42000] [FreeTDS][SQL Server]Unicode data in a Unicode-only collation or ntext data cannot be sent to clients using DB-Library (such as ISQL) or ODBC version 3.7 or earlier. (4004) (SQLExecDirectW)')


Как же так? Просто нужно настроить использование правильной версии драйвера.

Итак. Первое - запись о драйвере в /etc/odbcinst.ini
[FreeTDS]
Description=TDS driver
Driver=/usr/lib/libtdsodbc.so
Setup=/usr/lib/libtdsS.so
FileUsage=1

Второе - добавить запись о сервере в /etc/freetds.conf
[myServer]
    host=192.168.0.2
    port=1433
    tds version=8.0
Особенно прошу учесть "табы" перед параметрами! У меня без них запись не срабатывала!

Третье - добавить DSN-запись в /etc/odbc.ini
[myDNS]
Description=my dsn
Driver=FreeTDS
Database=my_db
Servername=myServer

Теперь код для работы с бд выглядит так:
import pyodbc
conn = pyodbc.connect("dsn=myDSN;UID=%s;PWD=%s;" % ('sa','pass'))
cursor=conn.cursor()
cursor.execute("select 'test' as x;")
row=cursor.fetchone()
if row:
    print row

Успехов!