jak przekazać parametry do źródła ado.net w ssis?

To jest oryginalne zapytanie, które działa poprawnie przy użyciuado.net źródło i korzystanie z dostawców .net dostawca danych ODC określony wewnątrz źródła.

SELECT a.FA_CLNT_ID, a.FA_ACCT_NM, a.ACCT_E_DT, a.POL_PER_CURR_DT, a.POL_PER_NEXT_DT, a.FA_ACCT_NUM, a.GRP_SALES_OFFC_CD, a.ACCT_C_DT   
FROM  gyv2M.DDM_ACCT_STRUC a   
INNER JOIN  
(SELECT max(DDM_ACCT_STRUC_TP) as   DDM_ACCT_STRUC_TP, FA_CLNT_ID 
 FROM gyv2M.DDM_ACCT_STRUC  
 WHERE FA_DM_ROW_DT <= '6/30/2011' AND DM_ROW_E_DT <= '6/30/2011'
 GROUP BY  FA_CLNT_ID) b 
 ON a.DDM_ACCT_STRUC_TP = b.DDM_ACCT_STRUC_TP AND a.FA_CLNT_ID = b.FA_CLNT_ID AND FA_DM_ROW_DT <= '6/30/2011' AND a.DM_ROW_E_DT <= '6/30/2011'

ale muszę go zautomatyzować dla tej DATE pobierającej wartość z tabeli w serwerze sql. Stworzyłem zmienną do przechowywania tej wartości daty, ale chcę użyć tej zmiennej jako parametru do przekazania do powyższego zapytania. Niestety nie znalazłem trybu dostępu do danych: komenda sql ze zmiennej w źródle ado.net. Wyszukałem kilka innych stron i odkryłem, że możemy użyć jakiegoś wyrażenia za pomocą budowniczego wyrażeń. rt kliknij na preperties ..> wyrażenia ..> etc .. pomyślnie ocenił wyrażenia. wyraz wygląda jak poniżej, ale zostałem tam uderzony. Co jest następne ? Jak przekazać wyliczone wyrażenie jako polecenie źródłowe w źródle ado.net? Proszę pomóż.

SELECT a.FA_CLNT_ID, a.FA_ACCT_NM, a.ACCT_E_DT, a.POL_PER_CURR_DT, a.POL_PER_NEXT_DT, a.FA_ACCT_NUM, a.GRP_SALES_OFFC_CD, a.ACCT_C_DT   
FROM  gyv2M.DDM_ACCT_STRUC a   
INNER JOIN  
(SELECT max(DDM_ACCT_STRUC_TP) as   DDM_ACCT_STRUC_TP, FA_CLNT_ID 
 FROM gyv2M.DDM_ACCT_STRUC  
 WHERE FA_DM_ROW_DT <=  '@[User::RepDate]'  AND DM_ROW_E_DT <=  '@[User::RepDate]'
 GROUP BY  FA_CLNT_ID) b 
 ON a.DDM_ACCT_STRUC_TP = b.DDM_ACCT_STRUC_TP AND a.FA_CLNT_ID = b.FA_CLNT_ID AND FA_DM_ROW_DT <=  '@[User::RepDate]'  AND a.DM_ROW_E_DT <=  '@[User::RepDate]'

Aktualizacja

Cześć,

Dziękuję bardzo za odpowiedź. Jak już określiłem, stworzyłem zmienną użytkownika: RepDate z datetime i wykonywalne zadanie sql, które przypisuje datetime do tej zmiennej RepDate. A także Tak, jestem w stanie ocenić wyrażenie i byłem w stanie zobaczyć zapytanie zbudowane w trybie komend ado.net souce sql. oto zapytanie:

SELECT a.FA_CLNT_ID, a.FA_ACCT_NM, a.ACCT_E_DT, a.POL_PER_CURR_DT, a.POL_PER_NEXT_DT, a.FA_ACCT_NUM, a.GRP_SALES_OFFC_CD, a.ACCT_C_DT   
FROM  gyv2M.DDM_ACCT_STRUC a   
INNER JOIN  
(SELECT max(DDM_ACCT_STRUC_TP) as   DDM_ACCT_STRUC_TP, FA_CLNT_ID 
 FROM gyv2M.DDM_ACCT_STRUC  
 WHERE FA_DM_ROW_DT <= @[User::RepDate]  AND DM_ROW_E_DT <=  @[User::RepDate] 
 GROUP BY  FA_CLNT_ID) b 
 ON a.DDM_ACCT_STRUC_TP = b.DDM_ACCT_STRUC_TP AND a.FA_CLNT_ID = b.FA_CLNT_ID AND FA_DM_ROW_DT <=  @[User::RepDate] AND a.DM_ROW_E_DT <=  @[User::RepDate]

Ale otrzymuję następujący błąd podany poniżej. Myślę, że to dlatego, że wewnętrzne zapytanie oczekuje formatu daty „mm / dd / rrrr”, tak jak to określiłem w pierwotnym zapytaniu… ale podajemy datetime ze zmiennej użytkownika. Czy możesz mi powiedzieć, jak przekonwertować format daty i godziny zmiennej użytkownika na określony format, korzystając z wbudowanych funkcji. Próbowałem DT_DAte, ale nie miałem szczęścia.

Error at Data Flow Task 4 [ADO NET Source [1]]: The component "ADO NET Source" (1) was unable to retrieve column information for the SQL command. The following error occurred: ERROR [42601] [IBM][CLI Driver][DB2] SQL0104N  An unexpected token "[" was found following "".  Expected tokens may include:  "CONCAT || / MICROSECONDS MICROSECOND SECONDS SECOND MINUTES".  SQLSTATE=42601
ADDITIONAL INFORMATION:

Pipeline component has returned HRESULT error code 0xC02020FF from a method call. (Microsoft.SqlServer.DTSPipelineWrap)
BUTTONS:
OK

*** Aktualizacja 2 ***

TYTUŁ: Microsoft Visual Studio

Błąd w zadaniu przepływu danych [ADO NET Source [1]]: Komponent „ADO NET Source” (1) nie był w stanie pobrać informacji o kolumnie dla polecenia SQL. Wystąpił następujący błąd: BŁĄD [22007] [IBM] [Sterownik CLI] [DB2] SQL0180N Składnia reprezentacji ciągu wartości daty-godziny jest niepoprawna. SQLSTATE = 22007

DODATKOWE INFORMACJE:

Komponent potoku zwrócił kod błędu HRESULT 0xC02020FF z wywołania metody. (Microsoft.SqlServer.DTSPipelineWrap)

GUZIKI:

dobrze

questionAnswers(2)

yourAnswerToTheQuestion