วันพฤหัสบดีที่ 11 มิถุนายน พ.ศ. 2552

set oracle client for turbogears2

ให้ทำการ download
Oracle Database 10g Express Edition Client
ได้ที่
http://www.oracle.com/technology/software/products/database/xe/htdocs/102xewinsoft.html
มาเพื่อเป็นเหมือนตัวแทน oracle client
ในที่นี้ไว้ที่ drive d: ก็จะได้

D:\XEClient\bin

สามารถเปลี่ยน directory ได้ตามความพอใจครับ

ทำการ set

ORACLE_HOME = D:\XEClient

ได้ที่
คลิ๊กขวาที่
My Computer >> properties >> System Properties >> Advanced
กดปุ่ม
Environment Variables
จะ set ที่ User หรือ System Valiables ก็ได้ครับ

---------------------------
หลังจากนั้น ก็ทำการติดตั้ง cx_Oracle เป็น utility สำหรับ ติดต่อ Oracle สำหรับ python
ไปยัง web
http://cx-oracle.sourceforge.net/
เลือก download ที่:
Windows Installer (Oracle 10g, Python 2.5)

หลังจากนั้นให้ทำการติดตั้ง โดยให้เลือก directory ที่เราเคยติดตั้ง tg2env ครับ
โดย default ตัวติดตั้ง รู้สึกจะไปที่ python25 ให้ทำการเปลี่ยนครับ เพราะเราไม่ได้ทำให้ python
แต่กำลังทำบน environment turbogears2

เมื่อติดตั้งเสร็จ ภายใต้ folder tg2env จะมี cx_Oracle-doc เพิ่มเข้ามา ถ้าลง ผิดก็ลงใหม่ครับ
เมื่อเลือก Install อีกทีมันจะถามว่า จะ Repair หรือ Remove

เมื่อเสร็จแล้วก็ลองเข้าโดย

cd tg2env/Scripts
activate.bat

python
>> import cx_Oracle
>>


ไม่ขึ้น error ก็ใช้ได้ครับ

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

set ให้ trubogears2 ติดต่อ Oracle Database
ให้แก้ไขที่ file development.ini
ทำการ comment บรรทัดต่อไปนี้ ด้วยเครื่องหมาย # :

#sqlalchemy.url = sqlite:///%(here)s/devdata.db

เพิ่ม บรรทัดนี้เข้าไป :

sqlalchemy.url =oracle://user:password@61.47.7.241:1521/xe


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

กรณี database set เป็น ascii หรือ อื่น ๆ ที่ไม่ใช่ utf-8
(แต่ถ้าเป็น utf-8 อยู่แล้วก็อาจไม่ต้องทำครับ)
เราจะเป็นต้องเปลี่ยน language oracle เครื่องเราให้อ่านภาษาไทยออก
โดยการ set registry ที่ run พิมพ์:

regedit

จะขึ้น Registry Editor ขึ้นมา เลือกที่

HKEY_LOCAL_MACHINE >> SOFTWARE >> ORACLE >> ??? >> NLS_LANG

ไม่แน่ใจว่า ภายใต้ folder oracle อาจมี sub folder ย่อยไปอีก อาจต้องตามเข้าไปหาในนั้น
เปลี่ยน ค่าใน

NLS_LANG = .UTF8

set ค่าให้กับ turbogears2 ผ่านทาง sqlalchemy เพิ่ม:

sqlalchemy.convert_unicode=True
sqlalchemy.encoding='utf-8'

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

ไม่มีความคิดเห็น: