Buscar este blog

sábado, 12 de septiembre de 2009

CONFIGURANDO JAVA EE5 SDK CON IDE ECLIPSE PARA JAVA

Hace algun tiempo tenia ganas de utilizar el IDE Eclipse para desarrollo con Java, asi que me decidi a descargarlo de esta ubicacion, asi como la version de Java EE 5 de esta ubicacion.

Despues de haber descomprimido el archivo .zip que resulta de la descarga de Eclipse y de haber instalado el ejecutable que resulta de la descarga de Java se debe de configurar para que Eclipse pueda utilizar el nuevo JRE que viene con la descarga de Java; cabe resaltar que la ruta en la que se instala Java por defecto es "C:\Sun".

Para empezar debemos de abrir la carpeta que se crea cuando se descomprime el .zip de la descarga de Eclipse. En esta carpeta se encontrara un ejecutable (.exe) con el nombre eclipse.exe. Damos doble clic sobre este para abrir la interfaz grafica de Eclipse.

Una vez cargada la interfaz grafica de Eclipse damos clic sobre el menu Window->Preferences, de manera que nos muestre la siguiente ventana:


En esta ventana buscamos la opcion Java, en el arbol de la derecha, y lo expandimos (dando clic sobre el signo "+" que se encuentra al lado izquierdo de la opcion, para que se vea de la siguiente forma:


En esta opcion seleccionamos la opcion "Installed JREs". En la cual nos mostrara la siguiente pantalla, que es donde muestra los jres que hay instalados y que ha reconocido Eclipse. En este caso se muestra un jre de una instalacion de java anterior (si este es el caso, unicamente se debe de seleccionar el check box que esta al lado izquierdo del nombre del jre que se desea utilizar) pero en mi caso deseo agregar una version de Java mas reciente, por lo que en esta pantalla se debe de dar clic sobre el boton "Add..." que se encuentra al lado derecho de la ventana.


Cuando damos clic sobre el boton "Add..." nos mostrara una nueva ventana en donde nos pide seleccionar el tipo de JRE que se desea agregar. En este caso seleccionaremos "Standard VM". Damos clic sobre el boton "Next".


En la siguiente pantalla nos pide que seleccionemos la carpeta home del JRE que se desea agregar, en este caso en que esta instalado Java en la ruta por defecto, navegamos dando clic sobre el boton "Directory..." hasta la ruta "C:\Sun\SDK\jdk\jre" y damos clic sobre el boton "OK" del explorador de archivos. Al cerrarse este explorador de archivos se cargara de forma automatica el nombre de JRE y las librerias del sistema del JRE.


Damos clic sobre el boton "Finish" y mostrara de nuevo la primera ventana que abrimos unicamente que ahora con el nuevo JRE agregado, damos clic sobre el check box que esta al lado izquierdo del nombre del nuevo JRE para que se utilice por defecto este JRE y damos clic sobre el boton "OK" en la parte inferior de la ventana.


Con esto estara configurado el nuevo JRE para ser utilizado con el IDE Eclipse para Java.

viernes, 4 de septiembre de 2009

PASO DE PARAMETROS DE REPORTING SERVICES 2008 A ORACLE 10g EXPRESS

Desde hace rato queria publicar esta entrada, unicamente por si en algun momento volvia a tener esta misma interrogante, ¿como realizar consultas con parametros utilizando Reporting Services 2008 y Oracle 10g Express Edition?

Esta duda surge, porque en mi dia de labores me toco hacer esto exactamente, y pues los ejemplos que se encontraban en la red (que eran Reporting Services - SQL Server) las consultas eran realizadas de esta forma:

SELECT * FROM MyTable WHERE Filter = @Parameter

Pero que pasa cuando se hace esto con Oracle??? pues da un error que falta especificar un campo, y esto se debe nada mas y nada que menos a que Oracle para poder recibir parametros no utiliza "@" si no que utiliza ":"; esto quiere decir que escribien la consulta con sus parametros de esta forma:

SELECT * FROM MyTable WHERE Filter = :Parameter

hace que todo funcione como si nada hubiera pasado, sencillo no?

domingo, 16 de agosto de 2009

CORRIGIENDO PERMISOS EN EL DIRECTORIO EXISTENTE /PostgreSQL/8.3/data ... INITDB: NO SE PUDO CAMBIAR LOS PERMISOS DEL DIRECTORIO PostgreSQL/8.3/data

Entre otras cosas, este fin de semana quise ver que era lo que hacia tan especial a PostgreSQL, ya que nunca habia tenido la oportunidad de utilizarlo y pues ya que es el mejor DBMS Open Source que existe en el mercado segun muchos comentarios en la red, pues quise ver de que era de lo que hablaban.

Pues tristemente al momento de instalarlo me tope con casi 12 hrs, divididas en dos dias, de estar intentando instalarlo en mi computadora, la cual corre sistema operativo Windows. El error que mostraba en pantalla al terminar la instalacion era el siguiente:


"Installation may not complete correctly. The database cluster initialization failed."

y el error que resaltaba dentro del log de instalacion (que en mi caso se encuentra en la ruta "E:\Documents and Settings\usuario\Configuración local\Temp\install-postgresql.log") era el siguiente:

corrigiendo permisos en el directorio existente E:/PostgreSQL/8.3/data ... initdb: no se pudo cambiar los permisos del directorio E:/PostgreSQL/8.3/data¯: Permission denied
Failed to initialise the database cluster with initdb


Estuve buscando la mayor parte del tiempo en la red y encontre muchos comentarios respecto a dicho error, siendo la sugerencia de solucion mas comun al problema la asignacion de permisos al usuario postgres sobre la carpeta de instalacion de PostgreSQL, especialmente sobre la carpeta data de la instalacion. Despues de buscar y probrar y probar encontre este
foro en donde se hablaba que habian intentado instalar PostgreSQL con el siguiente archivo postgresql-8.3.7-1-windows.exe que curiosamente era el mismo instalador que yo estaba ejecuando y pues una de las respuestas era que se probara utilizar otro ejecutable el postgresql-8.3.7-1-windows.exe, y pues despues de tanto haber estado intentando instalarlo, no estaba de mas esperar unos cuantos minutos a que se descargaran 35Mb de esta pagina.

Al final desinstale el Postgres que tenia instalado desde panel de control e instale el nuevo ejecutable que habia descargado e increiblemente todo solucionado :D

Al parecer el primer ejecutable que habia descargado posee algunos bugs y era por eso que no permitia dar el acceso a la carpeta de data ni ejecutar los scripts que necesitaba ejecutar. En el foro que comente antes algunas personas lograron solucionar su problema de esta forma, algunos otros no, pero gracias a Dios, fui uno de los que si pudo :D.

jueves, 4 de junio de 2009

COMO SABER SI EXISTE UNA TABLA EN SQL SERVER 2005 DESDE VB.NET

Como les habia comentado, no me gusta pasar mucho tiempo buscando como hacer algo que deberia ser sencillo. Esta vez me tocaba buscar como hacer para saber si existe o no una tabla en SQL Server 2005 desde VB.NET 2008.

Estuve buscando durante aproximadamente 3 horas, viendo como conectarse con la libreria ADO, ejecutar la cadena de SQL con el metodo executeNonQuery, capturar el resultado de este con un listener y un monton de cosas, y al final escogi irme por un camino mas sencillo: SQL Server debia de almacenar los datos de las tablas que existian en algun lugar y yo sabia el nombre exacto de la tabla que queria buscar; sabia el nombre del esquema, del catalogo y el nombre de la tabla, asi que todo lo que tenia que hacer era una consulta a ese lugar donde SQL Server almacena el nombre de las tablas, y pues resulta que la consulta era tan sencilla como esto:

SELECT * FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_CATALOG = 'myCatalog' AND
TABLE_SCHEMA = 'mySchema' AND
TABLE_NAME = 'myTable';


Y listo, al final al pasar esto a codigo para saber si existia o no la tabla, todo quedo de esta forma:

Dim sqlString As String = "SELECT COUNT(1) FROM INFORMATION_SCHEMA.TABLES "
sqlString &= "WHERE TABLE_CATALOG = 'myCatalog' AND "
sqlString &= "TABLE_SCHEMA = 'mySchema' AND "
sqlString &= "TABLE_NAME = 'myTable'"


Dim objCommand As System.Data.SqlClient.SqlCommand = New System.Data.SqlClient.SqlCommand(sqlString, objConnection)
Dim exist As Integer = Integer.Parse(objCommand.ExecuteScalar().ToString())


If (exist = 1) Then
MsgBox("SI EXISTE!!!")
ElseIf (exist = 0) Then
MsgBox("NO EXISTE!!!")
End If


Espero que les sea de utilidad y que esto los pueda ayudar a solucionar sus problemas.

martes, 2 de junio de 2009

EJECUTAR BCP COMO PROCESO DESDE VB.NET 2008

Para ejecutar BCP desde codigo en VB.NET 2008, basta con escribir el siguiente codigo:


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 (|)

Nueva tarea asignada y tristemente fueron casi 13 horas investigando como hacer esta "dificil" :@ tarea, no soy de las personas que les agrada el no conocer una tecnologia y tomarse todo ese tiempo para saber que hacer.

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.

  1. Para iniciar abrimos la consola de Windows (Inicio -> Ejecutar -> cmd)
  2. En la consola de Windows abierta escribimos el siguiente comando:
bcp nombre_db.dbo.nombre_tabla out c:\nombre_archivo_destino.txt -S nombre_servidor -c -t"" -r \n -T -U user

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

    Dado que padezco de que se me olviden las cosas, y cuando se me olvidan las cosas despues tiendo a buscarlas nuevamente en internet, perdiendo de esta forma parte del tiempo, escribo este post, para poderme recordar como escribir estos simbolos en html:

    < Menor Que = &lt;

    > Mayor Que = &gt;

    PD: Por cierto... para mostrar el simbolo amperson (&) se utiliza la cadena &amp.

    CARGANDO INFORMACION DE UN ARCHIVO XML A UN DATASET

    Entre las labores del dia de hoy tenia que cargar el contenido de un archivo xml a un dataset, y pues como no tenia ni idea de como hacerlo tuve que googlear un poco, despues de probar un poco de codigo que habia encontrado al fin encontre el que me funciono.

    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

    Despues de dar vueltas y vueltas y vueltas por la red, buscando una forma de poder sacar un backup a un site collection dentro de MOSS 2007, y buscando como restaurarlo posteriormente en otra farm, por fin encontre como hacerlo.
    Durante este proceso tambien encontre varias formas de no hacerlo, como por ejemplo:
    1. 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.
    2. 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]

    lunes, 9 de marzo de 2009

    CAMBIAR EL PUERTO POR DEFECTO DE WAMPSERVER 2.0

    Estoy trabajando un proyecto que necesita ejecutarse sobre un servidor Apache-PHP, y necesitaba poder ejecutar el WampServer sin que creara conflictos con el IIS. La solucion que habia estado utilizando para esto era ingresar al apartado de servicios de Windows y deshabilitar los servicios del IIS, pero el dia de hoy me decidi a buscar una verdadera solucion y pues la encontre en este link, asi que a continuacion muestro el proceso a seguir explicado en español.
    1. Se debe de iniciar el servicio de WampServer de forma que el icono de WampServer se muestre en la barra de tareas del escritorio de Windows.
    1. Se daba clic sobre el icono anterior de forma que despliegue el menu contextual del WampServer. En este menu nos movilizamos a traves de la siguientes opciones: Apache > httpd.conf, y de estar forma se abrira el archivo con el mismo nombre. Este archivo puede ser encontrado tambien en la ubicacion: C:\wamp\bin\apache\Apache2.2.11\conf.
    1. En este archivo se debe de editar la linea 46, en donde se debe de escribir el numero de puerto que se desea utilizar, en este caso usare el puerto 82.

    1. En este mismo archivo nos dirigimos a la linea 171, en donde se debera de agregar el mismo numero de puerto de la linea anterior, en este caso estamos utilizando el 82.


    1. Ahora debemos de editar otro archivo para esto, nos dirigimos a la ubicacion C:\wamp y abrimos el archivo wampmanager.tpl.
    2. En este archivo se deben de editar las lineas 120, 121 y 122, agregando el puerto el cual utilizara la conexion de estos servicios. Aqui se debe escribir el puerto que se escribio en el archivo anterior; en este caso es el puerto 82.

    1. Ahora guardamos ambos archivos y los cerramos, y reiniciamos el servicio de WampServer y con esto podremos escribir en la barra de URL del navegador de Internet: http://localhost:82 y con esto nos mostrara la pagina de WampServer en el navegador de Internet.
    Y con esto la con esto la configuracion esta terminada.

    jueves, 5 de marzo de 2009

    AUN SIRVE EL OIDO :D

    Despues de mucho tiempo (casi 4 años), un poco influenciado por el tan agradable concierto de Fernando Delgadillo en Guatemala, y motivado por sucesos en mi vida personal, me vi forzado a darle un break a mi diario vivir y detenerme a sentir un poco... a escuchar... y pues como bien era mi costumbre escapar de lo que me rodea con un poco de musica.




    No esta terminada aun, es unicamente el intro, pero es lo que por el momento me ha permitido lograr este tiempo lejos de la guitarra. Cualquier correcion que encuentren, por favor haganmelo saber, asi se podra tener esta cancion lo mejor posible.

    domingo, 18 de enero de 2009

    MOSTRANDO ESPACIOS EN BLANCO EN HTML

    Despues de haber realizado, una busqueda de aproximadamente 10 minutos, para encontrar algo que ya habia hecho hace mucho, y muchas veces pues escogi escribir este post.
    Mi busqueda era acerca de como mostrar espacios en blanco en HTML sin utilizar CSS, y pues es tan simple como escribir la siguiente cadena:

    &nbsp

    La cual representa un espacio en blanco en HTML, por lo que cada vez que se quiera agregar espacios en blanco en HTML antes de una cadena de texto, puede utilizar esta simple y pequeña cadena.