ssis如何通过代码更新数据流源的sqlcommand 100zaiai2003]

发布时间:2017-3-23 20:29:01 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"ssis如何通过代码更新数据流源的sqlcommand 100zaiai2003]",主要涉及到ssis如何通过代码更新数据流源的sqlcommand 100zaiai2003]方面的内容,对于ssis如何通过代码更新数据流源的sqlcommand 100zaiai2003]感兴趣的同学可以参考一下。

    原因:安装系统后,无法通过sqlcommand来实现参数的使用。如果将代码设置为select * from t_table where column1 > ?无法识别参数。这个问题搞不定     解决方案:希望通过脚本组建或者数据流的事件脚本,通过脚本来进行字符串替换,实现参数的功能。         问题:如何在包的脚本组件中,通过代码引用已经定义的数据流源的sqlcommand属性,这样我就可以通过代码来实现参数查询的功能。或者在包的事件程序中,onPreExecute事件中处理这个任务。     知识缺陷:由于一直没有接触vb.net不知道如何通过代码来引用已有对象,成了我的痛。     希望不吝赐教!

该回复于2012-02-22 13:03:27被版主删除

参数无法识别是什么意思? 在参数那一栏选择这个参数的变量就可以了

我现在的项目是从oracle extract数据,不过思想差不多。 用txt文件放置.sql的模板,然后用SSIS的vb或c# script去赋参数和调用.sql然后spool数据。

现在的问题就是不知道如何通过vb来调用txt文件 请明确!

 Dim sqlTerm As String         Dim sr As IO.StreamReader         Dim sw As IO.StreamWriter         Dim content As String         Dim qryPath As String         Dim batPath As String         'Set the standard template location, which will be overwritten with the final location         qryPath = "your query file path"         batPath = "your batch file path"         ' Build a sql query file per request         sqlTerm = " AND EXTRACT(Year from OTINSTALL.INSTALL_DATE) = " + CStr(y) + " AND EXTRACT(MONTH from OTINSTALL.INSTALL_DATE) = " + CStr(m)         sr = New IO.StreamReader(String.Format("{0}.sql", qryPath))         content = sr.ReadToEnd()         content = content + sqlTerm         sr.Close()         qryPath = Regex.Replace(qryPath, "Templates", "Queries")         sw = New IO.StreamWriter(String.Format("{0}{1}.sql", qryPath, timeSlice))         sw.Write(content)         sw.Close() 就把txt的内容当作string来看待,改replace就replace改append就append

IO.StreamReader 这个是个什么对象,能否引用已经定义好的数据流源。我想您可以解决我的问题。 我在SSIS中已经定义了数据流任务,然后有一个数据流源,oleDB类型。有一个sql语句,在这个数据流源对象的sqlcommand属性中,如何在代码中引用这个数据流源的sqlcommand属性!????

Imports System.Data.SqlClient ... Public Class ScriptMain     Inherits UserComponent     Dim connMgr As IDTSConnectionManager100     Dim sqlConn As SqlConnection     Dim sqlCmd As SqlCommand     Dim sqlParam As SqlParameter     Public Overrides Sub AcquireConnections(ByVal Transaction As Object)         connMgr = Me.Connections.MyADONETConnectionManager         sqlConn = CType(connMgr.AcquireConnection(Nothing), SqlConnection)     End Sub     Public Overrides Sub PreExecute()         sqlCmd = New SqlCommand("INSERT INTO Person.Address2(AddressID, City) " & _             "VALUES(@addressid, @city)", sqlConn)         sqlParam = New SqlParameter("@addressid", SqlDbType.Int)         sqlCmd.Parameters.Add(sqlParam)         sqlParam = New SqlParameter("@city", SqlDbType.NVarChar, 30)         sqlCmd.Parameters.Add(sqlParam)     End Sub     Public Overrides Sub MyAddressInput_ProcessInputRow(ByVal Row As MyAddressInputBuffer)         With sqlCmd             .Parameters("@addressid").Value = Row.AddressID             .Parameters("@city").Value = Row.City             .ExecuteNonQuery()         End With     End Sub     Public Overrides Sub ReleaseConnections()         connMgr.ReleaseConnection(sqlConn)     End Sub End Class 参考 Override the AcquireConnections method to connect to the external data source。例子里是ado.net,不过在 [code=VB.NET] Dim cm As ConnectionManager Dim cmParam As Wrapper.IDTSConnectionManagerDatabaseParameters90 Dim conn As OleDb.OleDbConnection cm = Dts.Connections("oledb") cmParam = CType(cm.InnerObject, Wrapper.IDTSConnectionManagerDatabaseParameters90) conn = CType(cmParam.GetConnectionForSchema(), OleDb.OleDbConnection) 描述了如何获取oledb的connection 然后override PreExecute 可以创建或配置sqlcommand [/code]

感觉还是没有指出问题,很怀念【邹建】的回答问题方式。一般大众,还是一般的智慧,只有智者才能够指点。

上一篇:SQLSERVER +SP4补丁整合 如何做ISO 30Sunnynanbing]
下一篇:谁会CUBE,求CUBE资料 40hongyingquan]

相关文章

相关评论

本站评论功能暂时取消,后续此功能例行通知。

一、不得利用本站危害国家安全、泄露国家秘密,不得侵犯国家社会集体的和公民的合法权益,不得利用本站制作、复制和传播不法有害信息!

二、互相尊重,对自己的言论和行为负责。

好贷网好贷款