قيمة الإرجاع مباحث أمن الدولة من إجراء مخزن داخل القيادة OLE DB

StackOverflow https://stackoverflow.com/questions/487366

سؤال

وأنا ترحيل البيانات التي يجب إدراجها باستخدام الإجراءات المخزنة التي توجد بالفعل. الإجراءات المخزنة لدى المعلمات وقيمة العائد (من بيان حدد) من معرف للصف المدرجة. ضمن DB القيادة OLE في جهاز مباحث أمن الدولة، يمكن أن أدعو قيم العمود الإجراء مرور المخزنة كمعلمات ووعادة ما تستخدم معلمات الإخراج على إجراء مخزن للتعامل مع "المعرف" الإخراج؛ ولكن أنا غير متأكد كيف يمكن التعامل مع قيم الإرجاع عندما يستخدم الإجراء مختارة لإرجاع قيمة الهوية. هنا هو مثال على ما كنت قد استخدمت من قبل والذي يعمل ولكن أنا بحاجة لالتقاط القيمة التي تم إرجاعها من اختيار:

exec dbo.uspInsertContactAddress
@Address = ?,
@ContactID = ?,
@DeliveryMethodId = ?,
@ID = ? output,
@Version = ? output
هل كانت مفيدة؟

المحلول

والطريقة وجدت أنني يمكن أن تفعل هذا الذي كان في الواقع بسيط جدا:

exec ? = dbo.StoredProc @param = ?, @param2 = ?

وبعد ذلك سوف @ RETURN_VALUE تظهر على المتوفرة أعمدة الوجهة

نصائح أخرى

لا تستخدم أسماء المتغيرات في الممتلكات SqlCommand، مجرد علامات استفهام و"OUT" أو "OUTPUT" تسمية معلمات الإخراج.

والحيلة لانتزاع قيمة معلمة الإخراج هو وضع التحول العمود المستمدة في خط الانابيب قبل DB القيادة OLE لإدخال العمود (تعيينها إلى متغير مباحث أمن الدولة) لالتقاط نتيجة الإجراء.

OLEDB قيادة التحول والهوية أعمدة لل لمحة عامة جيدة مع شاشة غطاء من كيفية القيام بذلك. انظر أيضا المهملات الوجهة محول عن الوجهة المهملات المستخدمة في الحلقة الأولى. إنها أداة قوية لديها المتاحة لتصحيح مثل هذه الامور.

إذا الإجراء المخزن بإرجاع resultset و، فأنت بحاجة للاستيلاء عليها:

DECLARE @results TABLE (
    [ID] INT NOT NULL
)

INSERT @results ([ID])
EXEC dbo.uspInsertContactAddress @Address = ?, @ContactID = ?, @DeliveryMethodId = ?, @ID = ? output, @Version = ? output

SELECT * FROM @results 

ملحوظة: أنا استخدم متغير TABLE. قد تحتاج إلى استخدام جدول مؤقت اعتمادا على الإصدار الخاص بك SQL خادم.

ولقد استخدمت دائما تعيين المعلمة في تنفيذ المهام SQL مع الكثير من النجاح. بيان SQL هو "nameofstoredproc EXEC؟،؟ OUTPUT"، مع علامات استفهام تحدد موقع من المعلمات وOUTPUT إذا كانت المعلمة يبلغ حجم انتاجها.

ويمكنك تحديد المعلمات في رسم الخرائط مع الاسم المناسب متغير والتوجيه (المدخلات والمخرجات، ReturnValue) ونوع البيانات. منذ بروك المخزنة تعود على البيانات التي تريدها عبر مجموعة نتائج، ثم تحديد اتجاه المتغيرات لجمع ID والإصدار كما ReturnValue. يجب أن تعمل على ما يرام بالنسبة لك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top