เมื่อไม่นานมานี้ ในระหว่างกระบวนการโครงการ เราประสบปัญหากับแหล่งข้อมูลเมื่อเราจำเป็นต้องโหลดข้อมูลจากฐานข้อมูลที่แตกต่างกัน แน่นอนว่าตาราง DBF ที่ไม่สามารถเชื่อมต่อกับ ADOQUERY ได้ (ไม่ได้ดาวน์โหลดเวอร์ชันแพทช์ แต่มาในภายหลัง พบว่าสามารถเชื่อมต่อได้) จะต้องสร้างด้วย ODBC ในการดำเนินการประมวลผลการเชื่อมต่อ จะต้องสร้าง ODBC แบบไดนามิกเพื่อลดความเป็นไปได้ที่ผู้ใช้จะลบ ODBC ด้านล่างนี้ฉันจะเขียนต้นแบบฟังก์ชัน API และคำสั่งเพื่อสร้าง SQLSERVER และ DBF ตารางที่จะแชร์ (แน่นอนว่า SQLSERVER ไม่จำเป็นต้องสร้างในสถานะ ADO)
SQLConfigDataSource(hwndParent: Integer; fRequest: Integer;lpszDriverString: String; lpszAttributes: String): จำนวนเต็ม;
ใช้ในสถานะการโทร:
ฟังก์ชัน SQLConfigDataSource (hwndParent: Integer; fRequest: Integer; lpszDriverString: String; lpszAttributes: String): Integer; stdcall; ภายนอก 'ODBCCP32.DLL';
สร้าง SQLSERVER ODBC:
SQLConfigDataSource(0, ODBC_ADD_SYS_DSN, 'เซิร์ฟเวอร์ SQL', 'DSN=Record_ODBC'+ chr(0) +'เซิร์ฟเวอร์=(ท้องถิ่น)'+ chr(0) + 'ฐานข้อมูล=ต้นแบบ'+ chr(0) +'คำอธิบาย=DragonPC แหล่งที่มา ODBC ของ SQLServer '+ chr (0));
{DSN: ชื่อแหล่งข้อมูล ODBC ของคุณ
เซิร์ฟเวอร์: ชื่อของเซิร์ฟเวอร์ฐานข้อมูลของคุณ ใช้ (ในเครื่อง) เพื่ออ้างอิงถึงฐานข้อมูลที่ติดตั้งบนเครื่องคอมพิวเตอร์ของคุณ หมายเหตุ: SQL Server 2000 ล่าสุดรองรับคอมพิวเตอร์เครื่องเดียวที่ใช้บริการ SQL Server หลายรายการ ในขณะนี้ คุณต้องระบุ InstanceName ของ SqlSever
ที่อยู่: ระบุที่อยู่ IP เครือข่ายของเซิร์ฟเวอร์ SQL Server
ฐานข้อมูล: ระบุชื่อฐานข้อมูลเริ่มต้น
ภาษา: ระบุภาษาเริ่มต้น
คำอธิบาย : ข้อมูลข้อสังเกต. -
สร้างตาราง DBF ODBC:
SQLConfigDataSource(0, ODBC_ADD_SYS_DSN, 'ไดรเวอร์ Microsoft Visual FoxPRo' + CHR(0), 'dsn=SourceTable' + CHR(0) + 'BackgroundFetch=ใช่' + CHR(0) + 'คำอธิบาย=คำอธิบายของ conexion' + CHR (0) + 'พิเศษ=ไม่ใช่' + CHR(0) +sourcedbstr + CHR(0) +'ประเภทแหล่งที่มา=DBF');
ทุกอย่างยังเหมือนเดิม ยกเว้นว่าต้องใช้เวลานานในการสร้างและแก้ไขตาราง DBF ฉันหวังว่าคุณจะไม่เสียเวลาไปกับการเขียนมันลงไป
หมายเหตุ: เนื้อหาข้างต้นมีไว้เพื่อการอ้างอิงโดยผู้เริ่มต้นที่ประสบปัญหาคล้ายกันเท่านั้น