דלג לתוכן הראשי
היכנס דרך Microsoft
היכנס או צור חשבון.
שלום,
בחר חשבון אחר.
יש לך חשבונות מרובים
בחר את החשבון שברצונך להיכנס באמצעותו.

שאלה:
יש לי Access DB וטבלה SQL לאחסן מידע. תחת תכונות שרת מקושר של SQL 7.0, אפשרתי ל- SQL לראות את Access DB כמסד נתונים SQL אחר. כמו כן, כתבתי פרוצדורה מאוחסנת המעתיקה רשומות Access DB לטבלה SQL. הפעלה מ- ISQL/Query Analyzer, הפרוצדורה המאוחסנת פועלת ועובדת כראוי. קריאה לפרוצדורה המאוחסנת מתוך מיומנות מפיקה את הודעת השגיאה הבאה מ- SQL Server: שאילתות הטרוגניות דורשות את ANSI_NULLS ואפשרויות ANSI_WARNINGS כדי
להגדיר את החיבור. פעולה זו מבטיחה סמנטיות עקביות של שאילתה. הפוך אפשרויות אלה לזמינות ולאחר מכן תגיש מחדש את השאילתה. האם ניתן אפילו להפעיל פרוצדורה מאוחסנת זו מתוך מיומנות?


תשובה:
כן, אך נצטרך לשנות מעט את הפרוצדורה המאוחסנת. הסיבה לכך היא ש- כדי לקרוא טבלאות SQL כראוי במיומנות, יש לכבות אפשרויות אלה כך שהתקשרות לפרוצדורות מאוחסנות במיומנות תפתור פקודות אלה לפני הפעלת הפרוצדורה המאוחסנת. המשתמש חייב לוודא שנתונים המפרים כללים אלה אינם מוצגים בטבלת SQL. במדגם שלהלן, table_access היא טבלת הגישה. table_מחשב היא 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



במקרה זה, הפרוצדורה המאוחסנת יורשת את התכונות של מה שקורא לה. עבור מצב זה, מיומנות קוראת theaccess_tableprocedure אשר מפעילה את ANSI_NULLS & ANSI_WARNINGS ולאחר מכן מתקשרת לפרוצדורה המאוחסנת האמיתית ועוברת בפרמטרים שלנו.


מאמר זה היה מזהה מסמך TechKnowledge:10011

תוכן TechKnowledge

זקוק לעזרה נוספת?

מעוניין באפשרויות נוספות?

גלה את יתרונות המנוי, עיין בקורסי הדרכה, למד כיצד לאבטח את המכשיר שלך ועוד.

קהילות עוזרות לך לשאול שאלות ולהשיב עליהן, לתת משוב ולשמוע ממומחים בעלי ידע עשיר.

האם מידע זה היה שימושי?

עד כמה אתם מרוצים מאיכות השפה?
מה השפיע על החוויה שלך?
בלחיצה על 'שלח', אתה מאפשר למשוב שלך לשפר מוצרים ושירותים של Microsoft. מנהל ה-IT שלך יוכל לאסוף נתונים אלה. הצהרת הפרטיות.

תודה על המשוב!

×