Cuestión : Añadir el rowcount al nombre de fichero


Escribí un paquete de SSIS que generará archivos de XML de resultados del procedimiento almacenado. Los datos son movimiento sin embargo una tarea del flujo de datos. Tengo una “cuenta de registro” artículo del flujo de datos que asigna la cuenta de registro usuario nombrado variable del usuario a un “:: rowcount”.

El artículo de la destinación es un componente de la escritura donde tengo la variable del rowcount como inalterable. En mi escritura del vb, estoy creando el nombre de fichero debajo del público elimino PreExecute secundario () “veo la línea 36 de código”.

Cuando está ejecutado, falla con los mensajes de error siguientes:

[Cuenta de la fila [159]] error: El “usuario variable:: el rowcount” especificado por la característica de VariableName no es una variable válida. Necesitar un nombre variable válido escribir a.

[DTS.Pipeline] Error: la “cuenta componente de la fila” (159) falló la fase de la poste-ejecución y volvió el código de error 0xC02020EE.


Sin embargo, el archivo todavía se crea solamente el valor prefijado del usuario:: el rowcount de 0 se añade el nombre de fichero.


¿Cualquier persona tiene cualquier solución a esto?
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
'Componente de la escritura del usuario de servicios de la integración del servidor de Microsoft SQL
'Éste es su nuevo componente de la escritura en Microsoft Visual Basic .NET
'ScriptMain es la clase del entrypoint para los componentes de la escritura

Sistema de las importaciones
Importaciones System.Data
Importaciones System.Math
Importaciones System.IO
Importaciones Microsoft.SqlServer.Dts.Pipeline.Wrapper
Importaciones Microsoft.SqlServer.Dts.Runtime.Wrapper
Importaciones System.Xml

Clase pública ScriptMain
    Hereda UserComponent
    Interruptor dévil como StreamWriter
    'Además de usar la declaración de las importaciones System.Xml una referencia se debe agregar a
    'Asamblea de System.Xml  (selecta Proyecto-Agregar la referencia del IDE)
    Amortiguar el xWriter como XmlTextWriter
    Amortiguar OutputFileType como secuencia “.csv o .xml”
    Amortiguar al revés como número entero


    El público elimina PreExecute secundario ()

        'Leer solamente las variables
        Amortiguar el gsPickUp como la secuencia = Me.Variables.gsPickUp “D:\ftproot\Out\Avid”
        Amortiguar el gsPickUpFilename como la secuencia = Me.Variables.gsPickUpFilename “1_AVID_”
        Amortiguar el gsPickUpFileExtn como la secuencia = Me.Variables.gsPickUpFileExtn “.csv”
        Amortiguar el gsMemoText como secuencia = texto de la nota de Me.Variables.gsMemoText “: acreditar el ajuste”
        Amortiguar el gsStatementText como secuencia = texto de declaración de Me.Variables.gsStatementText “: acreditar el ajuste”
        Amortiguar el gsRunMode como secuencia = Me.Variables.gsRunMode la “ACTUALIZACIÓN”
        Amortiguar el gsFileType como secuencia = Me.Variables.gsFileType
        Amortiguar el nombre de fichero como secuencia = gsPickUp y “\” y gsPickUpFilename
        'Cnt dévil como número entero = Me.Variables.rowcount
        'Cnt dévil como la variable = Dts.VariableDispenser.LockOneForRead (“usuario:: rowcount”, cnt)
        Contador = Variables.rowcount
        nombre de fichero = nombre de fichero y (formato (ahora (), “yyyyMMddHHmm”) .ToString) y” _ “y contrario


        'MsgBox (nombre de fichero)


        OutputFileType = gsPickUpFileExtn

        Si OutputFileType = “.xml” entonces
            nombre de fichero = nombre de fichero y gsPickUpFileExtn
            'xWriter = nuevo XmlTextWriter (Me.Connections.XMLConnection.ConnectionString, nada)
            'xWriter.WriteStartDocument ()
            'xWriter.WriteComment (“archivo de cliente analizado usar la escritura”)
            'xWriter.WriteStartElement (“x”, “cliente”, “http://some.org/name ")
            'xWriter.WriteAttributeString (“nombre de fichero”, Me.Connections.XMLConnection.ConnectionString)
            xWriter = nuevo XmlTextWriter (nombre de fichero, nada)
            'xWriter.Formatting = Formatting.Indented
            'xWriter.Indentation = 0
            xWriter.WriteStartDocument ()
            xWriter.WriteComment (“archivo de cliente analizado usar la escritura”)
            xWriter.WriteStartElement (“x”, “comunicación”, "")
            'xWriter.WriteAttributeString (“tipo”, gsFileType)



        Terminar si



    Terminar el submarino




    El público elimina ParsedInput_ProcessInputRow secundario (la fila de ByVal como ParsedInputBuffer)

        Contador += 1


        Si OutputFileType = “.xml” entonces
            xWriter.WriteString (Environment.NewLine)
            xWriter.WriteStartElement (“x”, “comunicación”, "")
            xWriter.WriteAttributeString (“tipo”, “LogCall”)


            xWriter.WriteElementString (“CommunicationLog_CallId”, Row.CommunicationLogCallId.ToString)
            xWriter.WriteElementString (“CommunicationLogId”, Row.CommunicationLogId.ToString)
            xWriter.WriteElementString (“LMDealershipCode”, Row.LMDealershipCode.ToString)
            xWriter.WriteElementString (“MQDealershipId”, Row.MQDealershipId.ToString)
            xWriter.WriteElementString (“ChannelCode”, Row.ChannelCode.ToString)
            xWriter.WriteElementString (“VersionId”, Row.VersionId.ToString)
            xWriter.WriteElementString (“InstanceId”, Row.InstanceId.ToString)
            xWriter.WriteElementString (“SendDateTime”, Row.SendDateTime.ToString)
            xWriter.WriteElementString (“TimeZone”, Row.TimeZone.ToString)
            xWriter.WriteElementString (“CampaignType”, Row.CampaignType.ToString)
            xWriter.WriteElementString (“CampaignCode”, Row.CampaignCode.ToString)
            xWriter.WriteElementString (“CampaignName”, Row.CampaignName.ToString)
            xWriter.WriteElementString (“CustomerFirstName”, Row.CustomerFirstName.ToString)
            xWriter.WriteElementString (“CustomerLastName”, Row.CustomerLastName.ToString)
            xWriter.WriteElementString (“CustomerAddress1”, Row.CustomerAddress1.ToString)
            xWriter.WriteElementString (“CustomerAddress2”, Row.CustomerAddress2.ToString)
            xWriter.WriteElementString (“CustomerCity”, Row.CustomerCity.ToString)
            xWriter.WriteElementString (“CustomerState”, Row.CustomerState.ToString)
            xWriter.WriteElementString (“CustomerZip”, Row.CustomerZip.ToString)
            xWriter.WriteElementString (“CustomerHomePhoneNumber”, Row.CustomerHomePhoneNumber.ToString)
            xWriter.WriteElementString (“CustomerCellPhoneNumber”, Row.CustomerCellPhoneNumber.ToString)
            xWriter.WriteElementString (“CustomerEmailAddress”, Row.CustomerEmailAddress.ToString)
            xWriter.WriteElementString (“VIN”, Row.VIN.ToString)
            xWriter.WriteElementString (“DMSEventDateTime”, Row.DMSEventDateTime.ToString)
            xWriter.WriteElementString (“DMSEventType”, Row.DMSEventType.ToString)
            xWriter.WriteElementString (“DMSRetailCode”, Row.DMSRetailCode.ToString)
            xWriter.WriteElementString (“IsTest”, Row.IsTest.ToString)
            xWriter.WriteElementString (“ToPhoneNumber”, Row.ToPhoneNumber.ToString)
            xWriter.WriteElementString (“FromPhoneNumber”, Row.FromPhoneNumber.ToString)
            xWriter.WriteElementString (“RecordingFileName”, Row.RecordingFileName.ToString)
            xWriter.WriteElementString (“escritura”, Row.Script.ToString)
            xWriter.WriteElementString (“ProcessDateTime”, Row.ProcessDateTime.ToString)
            xWriter.WriteElementString (“SourceCode”, Row.SourceCode.ToString)
            xWriter.WriteElementString (“SourceId1Name”, Row.SourceId1Name.ToString)
            xWriter.WriteElementString (“SourceId1Value”, Row.SourceId1Value.ToString)
            xWriter.WriteElementString (“SourceId2Name”, Row.SourceId2Name.ToString)
            xWriter.WriteElementString (“SourceId2Value”, Row.SourceId2Value.ToString)
            xWriter.WriteElementString (“SourceId3Name”, Row.SourceId3Name.ToString)
            xWriter.WriteElementString (“SourceId3Value”, Row.SourceId3Value.ToString)


            xWriter.WriteEndElement ()
            'xWriter.WriteString (Environment.NewLine)
            'Escribir (“
") Terminar si Terminar el submarino El público elimina PostExecute secundario () Si OutputFileType = “.xml” entonces 'xWriter.WriteStartElement (“RecordCount”) 'xWriter.WriteString (Me.Variables.rowcount.ToString) 'xWriter.WriteEndElement () 'xWriter.WriteEndElement () xWriter.WriteEndDocument () xWriter.Close () Terminar si Terminar el submarino Terminar la clase

Respuesta : Añadir el rowcount al nombre de fichero

Solución encontrada. Por alguna razón no tuvo gusto de variable que era poblado dentro de la tarea del flujo de datos. Qué lo hice se puebla el usuario:: exterior variable del recordcount de la tarea del flujo de datos y del x en el componente de la escritura
Agregué la variable a la lista inalterable de variable y agregué la escritura abajo en mi escritura del vb.:

Amortiguar los expedientes como secuencia = (Me.Variables.recordcount.ToString)

nombre de fichero = nombre de fichero y (formato (ahora (), “yyyyMMddHHmmssfff”) .ToString) y” _ “y expedientes
Otras soluciones  
 
programming4us programming4us