คลังเก็บบล็อก

db2:odbc


code เดิมติดต่อ database ผ่าน odbc (ถ้าเขียนใหม่ แนะนำให้ใช้ pdo จะดีกว่าครับ มี .dll อยู่ใน folder ที่ download มา) ดังนั้นจำเป็นต้องลง เวอร์ชั่นให้ตรงกับ windows ถ้าเราใช้ windows 64 bit ก็ต้องใช้ ก็ต้องใช้ version 64 เท่านั้น bit version 32 bit ลงได้แต่จะไม่มี odbc driver ใน ODBC Data Source Administrator
ถ้า db2 อยู่คนละเครื่องอาจจะลง db2 connect เพื่อที่จะลง driver เพิ่ม จะเจอใน fix tool ครับ
เราจะสามารถกำหนด datasource ได้ 3 แบบครับ

  1. user dsn จะสามารถใช้ได้เฉพาะผู้สร้างเท่านั้น
  2. systems dsn ผู้อื่นสามารถเรียกใช้ได้
  3. file dsn คือการเก็บ config ไว้ในรูปแบบไฟล์

แต่เพราะเครื่องผมเป็น windows 64 bit จะพบกับ error

SQLSTATE Error Description
IM014 The specified DSN contains an architecture mismatch between the Driver and Application (DM) 32-bit application uses a DSN connecting to a 64-bit driver; or vice versa.

ตอนนี้ยังไม่มี php 64 bit สำหรับ windows อย่างเป็นทางการครับ สรุปคือตันครับ คงต้องหาวิธีอื่น

โฆษณา

DB2


ผมรับงานที่ใช้ database db2 ต่อจากคนอื่นมาชิ้นหนึ่ง
ครั้งแรกที่ได้พังเกี่ยวปัญหาที่น้องเค้าเจอมา export ไม่ได้ คำสั่ง sql ไม่ได้มาตราฐาน (ติดใจ MySql กัน ) ก็บอกกับตัวเองว่า “งานเข้าละ”

ถึงเวลาไปทำงานที่บริษัทลูกค้า เจอกับเครื่องไข่ในหิน เปิดเว็บจากข้างนอกได้ แต่ remote เข้ามาไม่ได้ เอาไงดี ถ้าต้องมาทุกวันก็ค่ารถบานปลายแน่ ทางที่ดีต้อง copy database ไปทำงานที่บริษัท แจคพอร์ตแรก export ได้แต่เอาเข้าไม่ได้ซะงั้น เครื่องเดียวกันนะเนี่ย search เจอคู่มือใน net
Using DB2 utilities to clone databases across different platforms

พิมย์คำสั่งเท่าไหร่ก็ error แปลไม่ได้ความ ลองกี่ครังก็เหมือนเดิม เครียด เอาใหม่ อ่านในคู่มือดีๆ มันเหมือน dos นะอืม ลองดูอีกที dos จริงๆด้วย export ออกมาได้ (ขอโทษครับผมต้องทำงาน มาทำที่พี่ทุกวันไม่ได้จริงๆ)

กลับมาถึงบริษัทอารายอีกเนี่ยลงบนเครื่องไม่ได้ (windows 7) ไม่เป็นไร vmware ก็ได้ยอมช้าหน่อย import ไม่ได้ครับ ผ่ายบุคลมาปิดเอร์แล้ว (นโยบายให้พนักงานไปทำโอฟรีที่บ้าน)

จะลง vmware ก็หนัก ไม่มีเวลา ลองแก้ให้ลงดูอีกครั้ง เจอ error sql5005c เหมือนที่ทำงาน พี่เกิ้ลบอกให้ add user ที่ใช้อยู่เข้าไปในกลุ่ม DB2ADMNS และ DB2USERS ok ผ่านด่านแรก
ด่านสองใช้คำสั่ง ตามตัวอย่างไม่ได้เจอ error command line environment not initialized แปลว่า “ข้อผิดพลาดสิ่งแวดล้อม บรรทัดคำสั่งไม่เริ่มต้นได้” คืออะไรหว่า อย่าบอกดีกว่ามั่ย งง search จนรู้ว่าให้ใช้ db2cmd แทน db2 ในที่สุดก็เคลียร์ด่านสอง
เหลือ ติดต่อ database ไม่ไหวแล้วครับขอพักก่อน ทำมาทั้งวันได้แค่นี้ ถ้าเป็น mysql คงเสร็จภายใน 15 นาทีไปแล้ว รวมเวลาจิบกาแฟแล้วด้วย ยุ่งยากขนาดนี้มันมีอะไรดีเนี่ย!

%d bloggers like this: