ข้ามไปที่เนื้อหาหลัก
การสนับสนุน
ลงชื่อเข้าใช้
ลงชื่อเข้าใช้ด้วย Microsoft
ลงชื่อเข้าใช้หรือสร้างบัญชี
สวัสดี
เลือกบัญชีอื่น
คุณมีหลายบัญชี
เลือกบัญชีที่คุณต้องการลงชื่อเข้าใช้

คําถาม:
ฉันมี 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

TechKnowledge Content

ต้องการความช่วยเหลือเพิ่มเติมหรือไม่

ต้องการตัวเลือกเพิ่มเติมหรือไม่

สํารวจสิทธิประโยชน์ของการสมัครใช้งาน เรียกดูหลักสูตรการฝึกอบรม เรียนรู้วิธีการรักษาความปลอดภัยอุปกรณ์ของคุณ และอื่นๆ

ชุมชนช่วยให้คุณถามและตอบคําถาม ให้คําติชม และรับฟังจากผู้เชี่ยวชาญที่มีความรู้มากมาย

ข้อมูลนี้เป็นประโยชน์หรือไม่

คุณพึงพอใจกับคุณภาพภาษาเพียงใด
สิ่งที่ส่งผลต่อประสบการณ์ใช้งานของคุณ
เมื่อกดส่ง คำติชมของคุณจะถูกใช้เพื่อปรับปรุงผลิตภัณฑ์และบริการของ Microsoft ผู้ดูแลระบบ IT ของคุณจะสามารถรวบรวมข้อมูลนี้ได้ นโยบายความเป็นส่วนตัว

ขอบคุณสำหรับคำติชมของคุณ!

×