คําถาม:
ฉันมี Access DB และตารางSQLที่จัดเก็บข้อมูล ภายใต้ฟีเจอร์เซิร์ฟเวอร์ที่SQL 7.0 ฉันได้SQLฐานข้อมูล Access DB ให้เป็นเพียงฐานข้อมูลSQLฐานข้อมูลอื่น นอกจากนี้ ฉันได้เขียนกระบวนงานที่จัดเก็บไว้ที่คัดลอกระเบียนจาก Access DB ไปยังSQLตาราง การเรียกใช้จาก ISQL/ตัววิเคราะห์คิวรี กระบวนงานที่จัดเก็บไว้จะเรียกใช้และใช้งานได้อย่างถูกต้อง การเรียกกระบวนงานที่เก็บไว้จาก Dexterity จะสร้างข้อความแสดงข้อผิดพลาดต่อไปนี้จาก SQL Server: คิวรีที่แตกต่างกันANSI_NULLS
และ ANSI_WARNINGS ต้องมีการตั้งค่าตัวเลือกเหล่านี้ให้กับการเชื่อมต่อ This ensures consistent query semantics. เปิดใช้งานตัวเลือกเหล่านี้ แล้วเปิดคิวรีของคุณใหม่ ฉันสามารถเรียกใช้กระบวนงานที่เก็บไว้นี้จากความว่อง่องได้ไหม
คําตอบ:
ใช่ แต่เราจะต้องปรับเปลี่ยนกระบวนงานที่เก็บไว้เล็กน้อย เหตุผลล้มเหลวคือการอ่านตาราง SQLอย่างถูกต้องใน Dexterity จะต้องปิดตัวเลือกเหล่านั้นเพื่อให้กระบวนการการโทรที่จัดเก็บไว้ใน Dexterity มีปัญหาเกี่ยวกับการสั่งการเหล่านั้นก่อนที่จะเรียกใช้กระบวนงานที่เก็บไว้ ผู้ใช้ต้องตรวจสอบให้แน่ใจว่าข้อมูลที่ไม่ละเมิดกฎเหล่านี้จะไม่แนะSQLในตารางหลัก ในตัวอย่างด้านล่าง table_access ตารางการเข้าถึง คือตาราง Access ตารางtable_testคือSQLตารางหนึ่ง
if exists (select * from sysobjects where id =
object_id('dbo.access_update') and sysstat & 0xf = 4)
drop procedure dbo.access_update
GO
create procedure dbo.access_update @O_SQL_Error_State int = NULL output
as
INSERT INTO access_table ( DOCNUMBR, DOCAMNT )
SELECT access_test.DOCNUMBR, access_test.DOCAMNT
FROM access_test
GO
เราสามารถปรับเปลี่ยนกระบวนงานที่เก็บไว้เพื่อตั้งค่าคําเตือนของเราดังนี้:
if exists (select * from sysobjects where id =
object_id('dbo.access_update') and sysstat & 0xf = 4)
drop procedure dbo.access_update
GO
create procedure dbo.access_update @O_SQL_Error_State int = NULL output
as
set ANSI_NULLS ON
SET ANSI_WARNINGS ON
exec access_table2 ( DOCNUMBR, DOCAMNT )
GO
ในกรณีนี้ กระบวนงานที่เก็บไว้จะสืบทอดแอตทริบิวต์ของสิ่งที่เรียกกระบวนงานนั้น For this situation,Dexterity calls theaccess_tableprocedure which turns on the ANSI_NULLS & ANSI_WARNINGS and calls the real stored procedure and pass in our parameters.
บทความนี้เป็น TechKnowledge Document ID:10011