16 พฤษภาคม 2550

การนำตาราง .dbf ของ Visual FoxPro มาเปิดใช้งานบน SQL Server 2005

สำหรับท่านที่ใช้ตาราง dbf ในการเก็บข้อมูลต่างๆ แต่ยังไม่อยากขนย้ายข้อมูลทั้งหมดของท่านขึ้นไปไว้ยัง SQL Server 2005 แต่ต้องการนำข้อมูลที่เป็น dbf เหล่านั้นมาใช้งานบน SQL Server จำทำได้อย่างไร ?

วันนี้เราจะเมา (มา) เสนอวิธีการที่ทำให้ท่านเปิดใช้งาน dbf ภายใต้ sql server เออ เมาจริงๆ เขียนวกไปวนมา

วิธีการก็ไม่ยากไม่เย็นอะไร ก็แค่สร้าง view ใน SQL Server เพื่อไปดึง ตารางข้อมูล dbf มา ซึ่ง view ก็เหมือนเป็นทางผ่าน ส่วนขอมูลก็ถูกบันทึกไว้ใน dbf เหมือนเดิม

ตัวอย่างการสร้าง VIEW บน SQL Server 2005 ทำดังนี้

CREATE VIEW DBF_CUSTOMER
AS
SELECT * FROM OPENROWSET('MSDASQL','Driver=Microsoft Visual FoxPro Driver;SourceDB=c:\Test\data;SourceType=DBF','SELECT * FROM CUSTOMER')

จากคำสั่งข้างต้นจะเป็นการสร้างวิวโดยนำตาราง Customer.dbf ที่เก็บอยู่ภายใต้ floder ชื่อ c:\Test\data มาทำการสร้าง

สำหรับท่านที่มีตารางชื่ออ่านก็เปลี่ยนได้ตามต้องการ

การคิวรีข้อมูลด้วยคำสั่ง SELECT ก็ไม่มีอะไรมากมาก เช่น

SELECT * FROM DBF_CUSTOMER

ท่านก็จะเห็นกับข้อมูลที่เก็บอยู่ใน Customer.dbf แสดงออกมา ง่ายไหม

แล้วถ้าต้องการ update ก็สั่งดุ่ยๆ

UPDATE DBF_CUSTOMER SET CUS_NAME = 'นายแสนดี' WHERE CUS_CODE = '0001'

เห็นไหมว่ามันง่ายๆๆๆๆ มากๆ

แล้ว insert ล่ะ ก็ไม่ยาก สำหรับการเพิ่มข้อมูลในส่วนของ values ต้องใส่ให้ครบทุกคอลัมน์น่ะ เดี๋ยว error ไม่รู้ด้วย เช่น

INSERT INTO DBF_CUSTOMER
VALUES('00999','นายขอบคุณ')

แล้ว Delete ล่ะ เขียนแบบนี้นะ

DELETE FROM DBF_Customer WHERE CUS_CODE = '00999'

เห็นไหม เห็นไหม การนำ dbf มาจัดการผ่าน SQL Server 2005 ไม่ยากอย่างที่คิด

ท่านก็สามารถนำไปเขียนด้วยภาษาเช่น VB, ASP.Net หรือ Visual FoxPro หรือ ภาษาใดๆก็ได้ผ่านทาง SQL Server จะขึ้น web หรือ ไปแนว Client/Server ก็ตามสะดวก

4 ความคิดเห็น:

ไม่ระบุชื่อ กล่าวว่า...

ขอบคุณมาก ๆ เลยครับ กำลังหาวิธีทำแบบนี้อยู่พอดี

ไม่ระบุชื่อ กล่าวว่า...

ขอบคุณจริง ๆ กำลังหาอยู่พอดี

ไม่ระบุชื่อ กล่าวว่า...

ผมลองใช้กับ .dbf แล้วไม่ได้ผลนะครับ ไม่ทาบว่าใช้ได้แต่ .dbc ใช่ไหมครับ

ไม่ระบุชื่อ กล่าวว่า...

เขียนคำสั่ง update insert และ delete มัน error
The requested operation could not be performed because the OLE DB provider 'MSDASQL' does not support the required transaction interface.

"I Believe in You"

Copyright(c) 2007 - 2022 by Kasem Kamolchaipisit.