0

我想将参数传递给使用 ado.net 作为查询源的 MySQL 查询。

SELECT *  
FROM   userinfo
WHERE  load_date > '2012-01-07' 
AND    load_date < '2012-01-14'

我在 sql server 中有一个设置表,其中包含我的值:

SELECT  startdate, enddate 
FROM   tblsetting

我已经设法将这些值传递给 SSIS。如果我对我的 sql server 表运行查询,我可以使用它:

SELECT *  
FROM    userinfo
WHERE   load_date > ? 
AND     load_date < ?

但是当我将源更改为 ado.net,连接到 mysql 服务器时,它不喜欢这种语法。谁能解释我错过了什么?

4

1 回答 1

0

您可以编写 SQL 表达式并将其存储为类型的变量String

"SELECT *  
 FROM    userinfo
 WHERE   load_date > '" +  (DT_WSTR,20) @[User::YourDateTimeVar]  + "''
 AND     load_date < '" +   (DT_WSTR,20)@[User::YourDateTimeVar]  + " ' "

然后将此变量用于Data Flow Task.Write 表达式中存在的属性,单击 DFT 并选择 Properties 。单击表达式并Ado.NET sql command从对话框中的属性中进行选择

在此处输入图像描述

选择上述属性的变量。此处的ADO_SRC_Orale[SqlCommand]属性将替换为您的名称ADO.NET source

在此处输入图像描述

于 2013-05-07T04:44:11.493 回答