передача параметров в источник ado.net

Я хотел передать параметризованный запрос в исходный код ado.net, и я понимаю, что единственный способ сделать это — использовать выражения.

Итак, вот мое выражение

"SELECT
    LEDGER_YR_MO,
    LOCATION,
    FDR_FND_NO,
    FDR_INVST_POOL_CD,
    FISCAL_YR_BEG,
    FISCAL_YR_END,
    POST_DATE,
    FDR_FND_TTL,
    FDR_FND_TYPE_CD,
    FDR_FND_PURP_CD,
    FDR_CR_ELIG_FL,
    FDR_ANN_CR_RATE,
    FDR_MTH_CR_RATE,
    FDR_CR_AMT,
    FDR_TR_ELIG_FL,
    FDR_ANN_TR_RATE,
    FDR_MTH_TR_RATE,
    FDR_60MTH_AVG_SHARE_PRC,
    FDR_TR_AMT,
    FDR_PROJ_GEP_INCM_AMT,
    FDR_TR_AUGMENTATION_AMT,
    FDR_GEP_NET_PAYOUT_AMT
FROM
    FS0TST.UCOP_FDR_TR_CR where 
LEDGER_YR_MO =  '"+ (DT_WSTR,30)  @[User::END_LEDGER_YR] +"'  "

но когда я нажимаю оценить выражение, я вижу пустое место вместо переменной. Кто-нибудь знает возможную проблему: вот выражение оценки выглядит так

SELECT
    LEDGER_YR_MO,
    LOCATION,
    FDR_FND_NO,
    FDR_INVST_POOL_CD,
    FISCAL_YR_BEG,
    FISCAL_YR_END,
    POST_DATE,
    FDR_FND_TTL,
    FDR_FND_TYPE_CD,
    FDR_FND_PURP_CD,
    FDR_CR_ELIG_FL,
    FDR_ANN_CR_RATE,
    FDR_MTH_CR_RATE,
    FDR_CR_AMT,
    FDR_TR_ELIG_FL,
    FDR_ANN_TR_RATE,
    FDR_MTH_TR_RATE,
    FDR_60MTH_AVG_SHARE_PRC,
    FDR_TR_AMT,
    FDR_PROJ_GEP_INCM_AMT,
    FDR_TR_AUGMENTATION_AMT,
    FDR_GEP_NET_PAYOUT_AMT
FROM
    FS0TST.UCOP_FDR_TR_CR where 
LEDGER_YR_MO =  ''

person SQLSERVERDAWG    schedule 27.09.2016    source источник
comment
Проверьте свой параметр END_LEDGER_YR в package. Он должен быть пуст. Дайте ему какое-то значение по умолчанию   -  person dejjub-AIS    schedule 27.09.2016
comment
И выражения — это не только способ для запросов параметров. Вы можете использовать команду SQL в качестве режима доступа к данным с параметром ? и установите значение параметра, нажав кнопку параметров, и сопоставьте с ним переменную   -  person dejjub-AIS    schedule 27.09.2016
comment
@SolowDeveloper, вы не можете выполнять сопоставление параметров с исходными запросами ado.net. Это только с запросами OLEDB.   -  person Tab Alleman    schedule 27.09.2016


Ответы (1)


Когда вы нажимаете кнопку Evaluate Expression, никакой код фактически не выполняется, поэтому единственное, на что SSIS может смотреть, — это статическое значение по умолчанию, которое вы указали для своей переменной.

Если вы хотите видеть значение вместо пробела в Evaluate Expression, вы должны указать своей переменной значение по умолчанию, даже если вы не собираетесь использовать это значение. При выполнении пакета SSIS любой код, который вы используете для заполнения переменной, перезапишет значение по умолчанию, поэтому наличие значения по умолчанию не представляет опасности.

person Tab Alleman    schedule 27.09.2016