none
Datasourceconnection RRS feed

  • Pregunta

  •  

    Estoy desarrollando una aplicacion en visual basic.net 2008, el framework 3.5, windows ultimate y base de datos sql server 2005

    Por cuestiones de requerimiento la base de datos puede ser instalada en cualquier servidor por lo que el servidor puede tener cualquier nombre, el asunto es que el datasource en el cristal report configura el nombre de servidor donde se encuentra la base de datos para cargar las tablas, procedimientos almacenados, vistas, etc en mi caso yo cargo procedimientos almacenados para que por medio de paso de parametros del visual al cristal se genere el reporte.

    Ahora para poder cambiar el nombre de mi servidor en los casos donde sea necesario utilizo el siguiente comando.

    dim rReporte as crystaldescions.engine.documentreport

    rReporte.load(file)
    rReporte.datasourceconnection(0).setconnection("nombreServidor", "NombreBaseDatos",true)

    Como se pueden dar cuenta son cadenas las asignacion de servidor y base de datos con el true le indico que la seguridad integrada esta habilitada.

    El asunto es que desde el depurador se genera cualquier tipo de reporte que requiera pero despues de instalar el programa en otra maquina y querer generar un reporte y llamar al objeto crystalreportview se abre un cuadro de dialogo en el cual me indica que el nombre de base de datos no existe.

    Cabe mencionar que instale el programa en la maquina que uso para desarrollar y ahi si funciona la generacion de reportes.

    Utilize este otro codigo e igual si funciona en mi computadora pero al instalarla en otras no


    Dim rReporte As New CrystalDecisions.CrystalReports.Engine.ReportDocument

    cr.Load(file)

    For Each tbl As CrystalDecisions.CrystalReports.Engine.Table In cr.Database.Tables

    Dim ci As New CrystalDecisions.Shared.ConnectionInfo
    ci.ServerName = "NombreServidor"
    ci.DatabaseName = "NombreBaseDatos"

    Dim tlo As New CrystalDecisions.Shared.TableLogOnInfo
    tlo.ConnectionInfo = ci
    tlo.ConnectionInfo.IntegrateSecurity = True
    tbl.ApplyLogOnInfo(tlo)
    Next

    Como se pueden dar cuenta es la misma informacion solo que ahora ingresada por partes, si alguien sabe como poder resolver mi problema se lo voy agradecer mucho...
    • Cambiado Enrique M. Montejo lunes, 9 de mayo de 2011 17:42 crystal reports (De:Lenguaje VB.NET)
    miércoles, 21 de enero de 2009 23:37

Todas las respuestas

  • Hola  wgpisquiy,

     

    una pregunta: ¿Es posible que los PC's en los que instalas la aplicación no tengan acceso al servidor donde esta la base de datos? Tiene pinta de que esos PC's no pueden acceder al servidor. Tambien es importante mirar si se utiliza la seguridad integrada de windows, que los usuarios tengan acceso a esa base de datos (que tengan los privilegios suficientes para acceder a ella).

     

    Espero que te sirva de ayuda!

     

    Si es así, porfavor, marca la respuesta como válida! Wink

     

    Gracias y suerte!

    jueves, 22 de enero de 2009 14:56
  • Gracias Javier por contestar.

    te cuento que la conectividad entre los clientes y el servidor no tiene problemas ya que se puede insertar, buscar, modificar o eliminar datos, en el caso de la seguiridad integrada le envio en el setconnection "true" para que sepa que si se esta utilizando, el unico problema que tenemos es a la hora de generar el reporte en Crystal Report cuando el nombre del servidor ha sido cambiado.

    Viendo diferencias entre los clientes donde si genera el reporte y donde no, estan en que donde se genera el reporte esta instaldo el
    Microsoft SQL Server Management Studio, le instalamos la herramienta a uno de los clientes que tiene problema con la generacion del reporte y funciono, por otras pruebas que hicimos parece ser que necesito integrar en el paquete de intalacion el sql client native para que a la hora del cambio de servidor en tiempo de ejecucion reconosca el nombre de la base de datos del servidor.

    gracias.


    viernes, 23 de enero de 2009 21:34