Buscar este blog
martes, 2 de junio de 2009
EJECUTAR BCP COMO PROCESO DESDE VB.NET 2008
Dim objProcess As System.Diagnostics.Process = New System.Diagnostics.Process
objProcess.EnableRaisingEvents = True
objProcess.StartInfo = New System.Diagnostics.ProcessStartInfo()
objProcess.StartInfo.UseShellExecute = False
objProcess.StartInfo.RedirectStandardOutput = True
objProcess.StartInfo.RedirectStandardError = True
objProcess.StartInfo.FileName = "bcp"
objProcess.StartInfo.Arguments = "mydatabase.dbo.mytable out c:\mybackup -S mydatabaseserver -c -t"""" -r \n -T -U sa"
objProcess.Start()
objProcess.WaitForExit()
Dim s1 As String = objProcess.StandardOutput.ReadLine()
Dim s2 As String = objProcess.StandardOutput.ReadLine()
If (s2.Substring(0, 5) = "Error") Then
archivoLog.WriteLine("ERROR " & Date.Now.ToString() & " " & s1 & " " & s2)
Return False
Else
archivoLog.WriteLine("OK " & Date.Now.ToString() & " Finalizando proceso de backup de la tabla POSCuentasXCobrarCliente.")
Return True
End If
Espero que este codigo le pueda ser de utilidad a alguien, y que no tenga que esta casi un dia buscando informacion sobre esto :D
lunes, 1 de junio de 2009
IMPORTAR TABLA DE SQL EXPRESS 2005 A ARCHIVO DE TEXTO SEPARADO POR PIPES (|)
Para realizar esto se necesita del comando bcp que viene como una utilidad por default al instalar el SQL Express 2005. Este proceso se realiza por completo en la consola de Windows, en este caso estoy utilizando Windows XP.
Cabe aclarar que para las versiones de SQL Express y Developer, no se puede ejecutar exitosamente este comando desde una computadora la cual no es la misma donde se encuentre la instancia del servidor donde esta la tabla de la base de datos que queremos exportar.
- Para iniciar abrimos la consola de Windows (Inicio -> Ejecutar -> cmd)
- En la consola de Windows abierta escribimos el siguiente comando:
Explicacion:
Primero se escribe el nombre de comando bcp.
Despues escribimos el nombre de la tabla que se desea exportar, iniciando con el nombre de la instancia de la base de datos donde se encuentra.
El texto out indica que se va a exportar la tabla.
Siguiente, se escribre el nombre del archivo destino, que es donde se guardaran los datos de la tabla.
El tag -S indica que se proveera el nombre del servidor de base de datos
El tag -c indica que se exportaran los datos de la tabla como carateres (esto lo recomiendo personalmente bastante)
El tag -t indica que se proveera del caracter para separar las columnas, en este caso el caracter sera el simbolo de pipe ()
El tag -r indica que se proveera el caracter de fin de linea, en este caso es el de fin de linea (\n)
El tag -T indica que se utilizara una trusted connection a la base de datos.
El tag -U indica que se proveera el nombre de usuario para conectar se a la base de datos.
Y listo hemos exportado la tabla seleccionada, utilizando como separador el caracter pipe ().
Espero que esto le sea de ayuda a alguien mas, y que no tenga que pasar mas tiempo investigando por la red, el punto es hacer las cosas que alguien mas ya ha hecho lo mas rapido posible, para poder dedicar el tiempo a algo mas importante.
viernes, 22 de mayo de 2009
COMO ESCRIBIR LOS SIMBOLOS "MAYOR QUE" (>) Y "MENOR QUE" (<) EN HTML
< Menor Que = &lt;
> Mayor Que = &gt;
PD: Por cierto... para mostrar el simbolo amperson (&) se utiliza la cadena &.
CARGANDO INFORMACION DE UN ARCHIVO XML A UN DATASET
En este codigo lo que se hace es crear un string que contiene el path fisico del archivo xml el cual se encuentra dentro de mi mismo proyecto web. Posterior a esto declaro un nuevo DataSet y esta parte que viene ahora es la que no comentaban en la mayoria de sitios que encontre y era el crear un nuevo DataTable. Asi que se crea el nuevo DataTable se le asignan las columnas que tendra que son creadas en relacion a los campos que tiene el archivo XML, despues de esto agregamos la DataTable al DataSet, por cierto el nombre de la tabla tambien se debe escribir en funcion del archivo XML, despues utilizamos el metodo ReadXml del DataSet y despues de esto podemos ordenar el cotenido en funcion de algun campo si asi lo deseamos.
En mi caso deseaba agregar el resultado a un DropDownList, asi que a cotinuacion dejo un ejemplo del archivo XML y el codigo que utilice en VB.NET.
archivo.xml
<?xml version="1.0" encoding="utf-8" ?>
<reporte>
<nombre_reporte>
<id>1</id>
<nombre>Reporte 1</nombre>
</nombre_reporte>
</reporte>
archivo.aspx.vb
Dim archivoXml As String = Server.MapPath("./Includes/XML/XMLReportNameFile.xml")
Dim dsXmlData As DataSet = New DataSet
Dim dtXmlTable As DataTable = New DataTable("nombre_reporte")
dtXmlTable.Columns.Add("id", Type.GetType("System.Int32"))
dtXmlTable.Columns.Add("nombre", Type.GetType("System.String"))
dsXmlData.Tables.Add(dtXmlTable)
dsXmlData.ReadXml(archivoXml, XmlReadMode.InferSchema)
dsXmlData.Tables("nombre_reporte").DefaultView.Sort = "id"
ddlReporte.DataSource = dsXmlData.Tables("nombre_reporte").DefaultView
ddlReporte.DataTextField = "nombre"
ddlReporte.DataValueField = "id"
ddlReporte.DataBind()
PD: Por cierto para poder utilizar la clase DataSet se debe de importar la libreria System.Data y el ddlReporte es el nombre del dropdownlist
martes, 19 de mayo de 2009
HACIENDO UN BACKUP Y RESTAURANDO UN SITE COLLECTION
- Utilizar las herramientas graficas que provee el administrador de MOSS, en donde nos permite hacer un backup de un site collection o de una web application para luego ser restaurada, pero resulto que esto solo me funciono dentro de la misma farm. Intentando hacerlo desde otra farm probe asignarle permisos a todo para que se pudiera realizar la operacion, pero siempre mostraba un error que no se tenian permisos para el archivo xml que guarda los datos de configuracion de los backups ralizados.
- La segunda forma fue utilizando SQL Server Express 2005, para lo cual se trataba de hacer backup a la base de datos de la web application, despues restaurar esta base de datos en el servidor de base de datos de la nueva farm, crear una nueva web application, y posterior a eso relacionar la web application con la base de datos restaurada. Resultado? tampoco funciono, no se pudo relacionar de forma correcta la web application con la base de datos restaurada.
Despues de esto lei un poco sobre el comando stsadm que provee MOSS 2007, asi que me decidi a probarlo; y pues resulto que si funciono, lo que se debia de hacer era ejecutar el comando export del stsadm para sacar la web application y el site collection, mover el archivo generado a la nueva farm y ahi ejecutar el comando import del stsadm.
Para ejecutar el stsadm se debe de ir a la carpeta donde se encuentra el .exe desde la consola, la cual en una instalacion estandar se encuentra en la siguiente ubicacion:
"C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\BIN\"
La sintaxis de los comandos para exportar e importar son las siguientes:
Export (realiza el backup):
stsadm -o export -url [http://nombre_del_sitio:puerto] -filename [nombre_del_archivo_de_backup]
Import (reestablece el backup, necesita que ya exista la web application creada con un site collection creado):
stsadm -o import -url[http://nombre_del_sitio:puerto] -filename [nombre_del_archivo_de_backup]