DTS Import/Export Wizard | SQL Server Performance Forums

SQL Server Performance Forum – Threads Archive

DTS Import/Export Wizard

Estimados compañeros de grupo solicito nuevamente su valiosa ayuda para resolver un problema con la importación de datos. Tengo un archivo en texto plano, con una sola columna, no tiene ningún índice, solo una columna. Estoy buscando subirlo a una tabla de Sql Server2000. Lo hago a través del DTS Import/Export Wizard, lo hace bien, pero cuando reviso la información en la tabla, encuentro que sí subió todas las filas pero en desorden. Solo los primeros 500 o 600 registros tienen el orden que tenían en el archivo de texto original, yo necesito que pasen los datos en el mismo orden que tienen en el archivo de texto pues así necesito manipularlos con otros procesos posteriormente. ¿Alguien sabe porqué el proceso de importación no respeta el orden que tengo en el archivo de texto?. ¿Hay alguna otra manera de realizar la exportación de datos?.
Agradezo la valiosa ayuda que me puedan dar al respecto.
Saludos.
Enrique. Enrique Madrigal
Sí, usted puede poner un Clustered Index en la columna y debe de ordenar lo para usted.
Cierto. Es recomendable crear el Cluster luego de cargar la tabla. Luis Martin
Moderator
SQL-Server-Performance.com All postings are provided “AS IS” with no warranties for accuracy.
Tengo una duda sobre el Cluster. Esta característica funciona si existe una columna por la cual se puede ordenar el archivo. El problema que tengo con mi archivo es que necesito copiarlo tal cual viene del archivo de texto, pero no tiene una columna que se pueda ordenar, ya que el archivo pasa a una sola columna en la tabla destino, y esta columna contiene cartacteres alfanuméricos. ¿Aún así trabaja el cluster?
Gracias y saludos. Enrique Madrigal
El cluster Index almacenará los datos secuencialmente en la misma orden que está en la source data.
Sigo teniendo dudas:
El Clustered Index se crea antes de cargar la tabla o después de cargarla?.
Gracias. Enrique Madrigal
<blockquote id="quote"><font size="1" face="Verdana, Arial, Helvetica" id="quote">quote:<hr height="1" noshade id="quote"><i>Originally posted by LuisMartin</i><br /><br />Cierto. Es recomendable crear el Cluster luego de cargar la tabla.<br /><br />Luis Martin<br />Moderator<br />SQL-Server-Performance.com<br /><hr height="1" noshade id="quote"></blockquote id="quote"></font id="quote"><br /><br />Antes, como lo especificamos anteriormente. [<img src=’/community/emoticons/emotion-2.gif’ alt=’:D‘ />]
Ya he creado el cluster index, y en efecto, ha ordenado el archivo, sin embargo no es el resultado que espero, creo que no me he explicado bien, una disculpa. Veamos, el archivo de texto que quiero subir no tiene un orden numérico ni alfabético, pero así tal cual como está es como quiero que pase a la tabla destino. Al crear el clustered index, el proceso me lo ha ordenado, de acuerdo al índice, con lo que se pierde la secuencia que tiene en el archivo de texto plano y así no me sirve. Espero me puedan orientar con algun consejo.
Gracias. Enrique Madrigal
Crear otra columna ID (IDENTITY) le hace un CLUSTERED INDEX en esta columna, después aga la importación.
Esa es una solución, pero si es una carga que se repetirá en el tiempo, sería razonable revisar la configuración del origen del archivo y asemejarla a la del servidor.
Es decir el orden del sort del SQL Actual es el que decide como se cargará la información tomada externamente, si ese orden no coincide con el del archivo de texto entonces tendrías que aplicar alguna de las dos soluciones anteriores.
Luis Martin
Moderator
SQL-Server-Performance.com All postings are provided “AS IS” with no warranties for accuracy.
¡Hola grupo, buenos días!. Mi problema es el siguiente:
He creado un paqute de transformación de datos en SQLServer 2000, en el cual el origen de los datos es un archivo de texto plano, el cual se carga a una tabla de
sql server. He logrado ejecutar el paquete con código de VB6, mas no he encontrado cómo pasarle al paquete como parámetro la ruta y el nombre del archivo de texto. Por lo
que para que funcione la ejecución del paquete, el archivo debe de existir en la ruta que tiene especificada el paquete DTS la cual queda fija al momento de crear el
paquete. Alguien sabe como puedo pasarle el parámetro de ruta y nombre del archivo al paquete DTS?. Aquí coloco el código con el cual ejecuto el paquete. If FG_ExecuteDTS("DTS_ArchivoContable", "") Then
‘Ejecuta
endif Public Function FG_ExecuteDTS(sDTSName As String, sPkgPwd
As String) As Boolean
On Error GoTo msgerror
Dim oPkg As DTS.Package Set oPkg = New DTS.Package
oPkg.LoadFromSQLServer gsServidor, gsUsrBD, gsPwdBD, ,
sPkgPwd, , , sDTSName, 0 oPkg.FailOnError = True
oPkg.Execute oPkg.UnInitialize
Set oPkg = Nothing
FG_ExecuteDTS = True
Exit Function msgerror:
gsError = Err.Number & " Error en el paquete " &
oPkg.Name & Err.Description
End Function Agradezco de antemano la ayuda que me puedan dar.
Enrique. Enrique Madrigal
Hola que tal, Verifique si usted puede utilizar esto para conseguir una idea cómo obtener la ruta. Dim oConnection As DTS.Connection2
Set oConnection = goPackage.Connections.New("DTSFlatFile") oConnection.ConnectionProperties("Data Source") = "D:TextImportsDTSImport210604.txt"
oConnection.ConnectionProperties("Mode") = 1
oConnection.ConnectionProperties("Row Delimiter") = vbCrLf
oConnection.ConnectionProperties("File Format") = 1
oConnection.ConnectionProperties("Column Delimiter") = ","
oConnection.ConnectionProperties("File Type") = 1
oConnection.ConnectionProperties("Skip Rows") = 0
oConnection.ConnectionProperties("Text Qualifier") = """"
oConnection.ConnectionProperties("First Row Column Name") = False
oConnection.ConnectionProperties("Number of Column") = 0
oConnection.ConnectionProperties("Max characters per delimited column") = 255 oConnection.Name = "Text File (Source)"
oConnection.ID = 1
oConnection.Reusable = True
oConnection.ConnectImmediate = False
oConnection.DataSource = "D:TextImportsDTSImport210604.txt"
oConnection.ConnectionTimeout = 60
oConnection.UseTrustedConnection = True
oConnection.UseDSL = False goPackage.Connections.Add oConnection
Set oConnection = Nothing goPackage.Execute
goPackage.Uninitialize Set goPackage = Nothing Set goPackageOld = Nothing End Sub
Hola, gracias por la ayuda. Estoy revisando el código que me proporcionaste, pero no logro ubicar en donde están los parámetros de conexión. Me da error en la línea:
Set oConnection = goPackage.Connections.New("DTSFlatFile")
El mensaje es: "Variable not defined", me lo marca en la palabra
"goPackage".
A qué se refiere esta palabra.
Gracias. Enrique Madrigal
En tu caso ya declarastes una variable Dim oPkg As DTS.Package cambia el mio gopackage al tuyo oPkg. Como…. Dim oConnection As DTS.Connection2
Set oConnection = oPkg.Connections.New("DTSFlatFile")

HOLA Espainola.<br /><br />Yoy may put the subject in spanish as well .. <img src=’/community/emoticons/emotion-1.gif’ alt=’:)‘ /><br /><br />Aviel Iluz<br />Database Administrator<br />Pacific Micromarketing<br />Melbourne Australia<br />www.pacmicro.com.au<br />
]]>