एसएसआईएस वैरिएबल अन्य चर द्वारा परिभाषित नहीं है जो अद्यतन नहीं कर रहा है

मेरे एसएसआईएस पैकेज में मेरे पास एक चर (जिसे एसक्यूएल कहा जाता है) है जिसमें गतिशील रूप से बनाई गई क्वेरी होती है।
इस क्वेरी का मान रन टाइम पर 2 अन्य चर द्वारा परिभाषित किया गया है।

एक कारण के लिए कि मैं समझने में सक्षम नहीं हूं, चर के समय चर मूल्य बदल नहीं रहा है :-(।
एसक्यूएल वैरिएबल और 2 डिफाईनिंग वैरिएबल अगर मैं सटीक मान की जांच करने के लिए ब्रेकपॉइंट्स और घड़ियों का उपयोग करता हूं। मैं जो देखता हूं वह यह है कि 2 चरों में मेरे द्वारा अपेक्षित मान हैं लेकिन SQL चर इसके मूल संस्करण को रखता है (और इस तरह से चलने वाला भी समाप्त होता है)।

यह एसक्यूएल चर की परिभाषा है:

"select *
from tbl1
where Date_Created>= to_date('"+
reverse(right(reverse(
(DT_WSTR, 20 )DATEADD( "Month", -3, (DT_DATE)@[User::StartDate])),10))
 +"', 'YYYY-MM-DD')
and 
Date_Created <=  to_date('"+
reverse(right(reverse(
(DT_WSTR, 20 )DATEADD( "Month", 3, (DT_DATE)@[User::EndDate])),10))
 +"', 'YYYY-MM-DD')
"

कोई विचार?

2
@ आरवीएफएक्स, मैंने दोनों सेटिंग्स की कोशिश की है लेकिन अपेक्षित नतीजे नहीं हैं :-(
जोड़ा लेखक Gidil, स्रोत
अपने एसक्यूएल वैरिएबल पर "अभिव्यक्ति के रूप में मूल्यांकन" के बारे में क्या सच है या गलत पर सेट किया जा रहा है?
जोड़ा लेखक rvphx, स्रोत
मुझे अपने एक एसपी में भी इसी तरह की समस्याएं थीं। यदि उन कथनों में से एक <कोड> रिवर्स (दाएं (रिवर्स ((DT_WSTR, 20) DATEADD ("महीना", -3, (DT_DATE) @ [उपयोगकर्ता :: स्टार्टडेट])), 10)) का मूल्यांकन कुल मिलाकर पूरी क्वेरी को हटाया जा सकता है। यदि एक्सप्रीशन शून्य पर मूल्यांकन करता है, तो आपका मूल एसक्यूएल उपयोग किया जाता है।
जोड़ा लेखक TsSkTo, स्रोत
पूरी चीज <कोड> रिवर्स (दाएं (रिवर्स ((DT_WSTR, 20) DATEADD ("महीना", -3, (DT_DATE) @ [उपयोगकर्ता :: स्टार्टडेट])), 10)) दोनों के लिए डालने का प्रयास करें एक चर के अंदर बयान और देखें कि यह क्या मूल्यांकन करता है।
जोड़ा लेखक TsSkTo, स्रोत
वही स्थिति। मैं अपना प्रश्न पोस्ट करने वाला था लेकिन फिर एहसास हुआ कि वहां पहले से मौजूद है। कोई विचार मदद करेगा। अभिव्यक्तियां बहुत सरल और स्पष्ट हैं और वे ठीक मूल्यांकन करते हैं लेकिन रन टाइम के दौरान पुराने मानों का उपयोग किया जाता है, मैंने अभी भी एक ही स्थिति को चलाने से पहले पैकेज को पुनर्निर्माण करने का प्रयास किया। मुझे आश्चर्य है कि प्रोजेक्ट या समाधान किसी कैश या कुछ में चर के temp मानों को सहेजता है एसएसआरएस समान परेशानी देता है जो ताज़ा या अद्यतन डेटा नहीं दिखा रहा है, उस स्थिति में हमें प्रोजेक्ट फ़ोल्डर में जाना होगा और xxx.data फ़ाइल को हटाना होगा और फिर यह डे
जोड़ा लेखक ZeExplorer, स्रोत

1 उत्तर

मुझे यह समस्या हो रही थी और यह मेरी अभिव्यक्ति में एक प्रकार का कास्ट मुद्दा बन गया।

उपयोगकर्ता चर "tableName" प्रकार स्ट्रिंग है। उपयोगकर्ता चर "myID" प्रकार int32 है। उपयोगकर्ता चर "theQry" प्रकार स्ट्रिंग है। मूल्यांकन करेंएक्सएक्सप्रेस = सच और यह मेरी अभिव्यक्ति थी:

"select *
from "+ (DT_STR, 5,1252) @[User::tableName] +
"WHERE id = "+ (DT_STR, 5,1252) @[User::myID]

मैं वॉच पैनल में देख सकता था कि "टेबलनाम" और "myID" का मान अपडेट हो रहा था लेकिन "क्यूरी" ने कभी नहीं किया।

जैसे ही मैंने उपयोगकर्ता चर "टेबल नाम" पर कास्ट फ़ंक्शन हटा दिया, "क्यूरी" अपडेट करना शुरू कर दिया।

"select * from "+ @[User::tableName] + "WHERE id = "+ (DT_STR, 5,1252) @[User::myID]
1
जोड़ा