adodb

Topic: 
 

จากการทดลองนำเข้าข้อมูล dbf ในครั้งก่อน พบข้อผิดพลาดในการแปลงอีกอันนึง คือ สระอำ
หลังจากแปลงมาแล้ว พบว่าส่วนใหญ่จะแปลงได้ถูกต้อง ยกเว้นบางคำที่เขาแปลงออกมาเป็น 2 อักขระ
คือประกอบด้วย นิคหิต ( _ํ ) กับสระอา ( า ) แทนที่จะเป็นสระอำอักขระเดียว
ซึ่งยังไม่ทราบว่าเกิดจากสาเหตุอะไร (อาจเป็นข้อมูลต้นทางไม่ดีก็เป็นได้)

 

ต้องการพอร์ตข้อมูลที่เป็น dbf ของ Visual Foxpro มาลงใน postgres โดยใช้โมดูล adodb
ค้นกูเกิลเจอโมดูลในการอ่าน Visual Foxpro dbf ที่
เว็บของคุณ Yusdi Santoso หมวด Software Repository

ใช้งานได้ดีทีเดียว เพราะอ่าน Memo Field ของ Visual Foxpro ออกหมด

แต่ดันพลาดตอนไม่ได้ตรวจสอบข้อมูลของ Memo Field เพราะเขาเอาไบต์ที่เป็น Null มาด้วย ('\x00')

 

ลองทดสอบวัดประสิทธิภาพแบบคร่าว ๆ เพื่อหาวิธีการเขียนโค๊ด

เริ่มต้นด้วยการสร้างคลาสเพื่อจับเวลาก่อน

class TimeIt:
  import time
  def __init__(self):
    self.p_start=time.time()
  def use(self):
    t_now=time.time()
    t_use=t_now-self.p_start
    self.p_start=t_now
    return t_use

ตามด้วยการสั่งจากเชลล์ของไพธอน

import adodb
conn = adodb.NewADOConnection("postgres")
cur = conn.Connect(host, user, password, db)
sql = """CREATE TABLE test (wordid SERIAL, word VARCHAR(255), PRIMARY KEY (wordid))"""
cur = conn.Execute(sql)

แบบที่ ๑

def f1():
  ttt = TimeIt()
  for i in range(1000):
Topic: 
 

ก่อนอื่น จะสร้างฐานข้อมูลเพื่อใช้เป็นตัวอย่างก่อน
โดยจะสร้างตารางเป็นสมุดโทรศัพท์ ใส่ข้อมูลเบื้องต้นไป 5 แถว
(อย่าเชื่อ syntax มากนะครับ เริ่มหัดใหม่เหมือนกัน)

import adodb

driver = 'postgres'
host = 'host'
user = 'user'
password = 'password'
db = 'db'

conn = adodb.NewADOConnection(driver)
cur = conn.Connect(host,user,password,db)

sql = """\
  CREATE TABLE phone (
  pid INT,
  name VARCHAR(50),
  phone VARCHAR(50),
  category VARCHAR(50),
  update DATE,
  rem TEXT,
  img BYTEA)"""
cur = conn.Execute(sql)

from datetime import datetime
today = conn.DBDate(datetime.date(datetime.today()))

sql = "INSERT INTO phone \
Topic: 
 

เกร็ด

  • ปกติเราไม่สามารถสร้าง database จากคำสั่ง connection ได้ เช่น
    >>> conn=adodb.NewADOConnection('postgres')
    >>> conn.Connect('host','user','password','')
    Traceback (most recent call last):
      File "<stdin>", line 1, in ?
      File "/usr/lib/python2.4/site-packages/adodb/adodb.py", line 199, in Connect
        self._connect(host,user,password,database)
      File "/usr/lib/python2.4/site-packages/adodb/adodb_postgres.py", line 46, in _connect
        self._conn = psycopg.connect(dsn)
    psycopg.OperationalError: FATAL:  database "user" does not exist

Pages

Subscribe to RSS - adodb
 

Syndicate

Subscribe to Syndicate

Who's online

There are currently 0 users online.