Crystal Report - Apuntar a otra Base de datos

 
Vista:

Apuntar a otra Base de datos

Publicado por Juan Carlos (1 intervención) el 15/12/2000 00:00:00
Hola Amigos.

Tengo un problema y espero que me ayudeis a resolverlo.

Estamos realizando una aplicacion en la que utilizo los Crystal Report 8.0. Diseño los reports sobre una base de datos en local, para poder pillar la estructura de los campos. Esta aplicación debe funcionar en cualquier cliente, sobre un servidor SQL Server, por lo ke desde codigo, y previo paso de parametros tales como ServidorSQL y Nombre de la base de datos, intento decirle a crystal de donde debe pillar los datos mediante las funciones SetLogonInfo y SetTableLocation, pero por alguna razón, no lo hace del todo bien, y a la hora de mostrar el informe, me aparece el fallo "Tabla física no encontrada".

Quizá alguno de ustedes haya trabajado con estas funciones y pueda echarme una mano en el tema.

Un Saludo
Juan Carlos.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Apuntar a otra Base de datos

Publicado por tecniCam (4 intervenciones) el 15/12/2000 00:00:00
Tanto a Crystal como a VB no debe dársele la ubicación (Path) de la base de datos ni de los directorios (carpetas) de antemano.
A ver si me explico: Le das la dirección cuando lo estás creando y luego, en las propiedades dse lo borras.
Luego, en el programa, al entrar, Form_Load o en Main le pones sólo el nombre de la base de datos o el del report,anteponiendo el Path relativo, para, aunque cambie de sitio al instalar, losiga encontrando.
Usa la Función AddPath() o similar.

MÁS SOBRE EL ASUNTO PULSANDO ABAJO.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Apuntar a otra Base de datos

Publicado por Juan Carlos (18 intervenciones) el 18/12/2000 00:00:00
Hola

Quizá me expliqué mal... no tengo problemas al encontrar el informe... tengo problemas al decirle a un informe, de que base de datos tiene que coger los datos.

Osea... yo diseño unos informes apuntando a una base de datos SQL Server que tengo en local... con lo que si ejecuto esos informes en mi maquina, con mi servidor, estos funcionan perfectamente.

Ahora me llevo esos informes a casa del cliente, el cual tiene allí una base de datos en un servidor, y multiples maquinas clientes. A la hora de decirle al report que debe coger los datos del nuevo servidor, el cual tiene otro nombre, es cuando las cosas empiezan a fallar.

Utilizo las funciones SetLogonInfo para cambiar el servidor de datos, y settablelocation, para decirle al report la nueva direccion de la tabla que utiliza.

Pero algo no funciona, por que cuando va a mostrar el report (repito... el report ya está encontrado y cargado) este me da el error "database not found" (no es este exactamente pero tiene el mismo significado)

Un Saludo y gracias por tu ayuda
Juan Carlos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Apuntar a otra Base de datos

Publicado por Antonio (6 intervenciones) el 18/12/2000 00:00:00
Hola.

Yo ahora mismo tengo el mismo problema, y la unica forma que he tenido de resolverlo, de forma temporal, claro esta, es instalar en el cliente el CR8 y actualizar alli los report, con la base de datos apropiada. De todas formas creo que debe existir la forma de indicar desde codigo vb este mecanismo y si me entero procurare hacertelo saber.

Un saludo

Antonio Caballero.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Antonio!!! Esto te interesa :))

Publicado por Juan Carlos (18 intervenciones) el 20/12/2000 00:00:00
Al fin solucioné lo de apuntar a otra base de datos... y como casi siempre, fue con ayuda del azar...

Buscando unas librerías por Windows\system, encontré un programita (Windbver.exe), que cuando lo ejecutas, te da info sobre una librería (NTWDBLIB.DLL) la cual no se por que, no se encuentra en las maquinas clientes en W98, aunque si el ejecutable...

Pues bien... en tu maquina local donde instalaste SQL Server, esa librería si existe, con lo que lo unico que tienes que hacer es copiarla dentro de Windows\system de las maquinas clientes... y voilá, ya funciona :)

Tanto tiempo malgastado en esto... y resulta que lo soluciono sin querer y gracias al azar...

Espero que te sirva.
Un Saludo
Juan Carlos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Apuntar a otra Base de datos

Publicado por hector (106 intervenciones) el 28/12/2000 00:00:00
Lo que yo realizo en estos caso sin meterme en el codigo es que al diseñar un reporte apuntando a una base de datos todos los campos ven a una tabla o tablas para que puedan ver a otra base de datos es que en la opcion de set location pulsando en el boton que llebva el mismo nombre solamente me logeo a el otro servidor y automaticamente me pone las tablas que ahora van a ver en este solamente una observacion las tablas y los campos deben de ser de el mismo tipo y longuitud por lo que no causaria problemas
como trabajo en una red trato de hacer que todos los reportes se encuentren en una sola locacion y programar para que desde visual o desde otro programa los invoque espero le sirva OK
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Apuntar a otra Base de datos

Publicado por José Luis (3 intervenciones) el 28/03/2001 17:07:46
Conectarse:
Set mApp = New CRAXDRT.Application
mApp.LogOnServer "pdssql", "SERVIDOR", "BD", "USUARIO"

Desconectarse:
mApp.LogOffServer "pdssql", "SERVIDOR", "BD", "USUARIO"

De esta forma podrás conectarte a una BD de un SQL server
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Apuntar a otra Base de datos

Publicado por Analista (2 intervenciones) el 01/12/2005 23:57:19
¿Puedes escribirme ese código para conectarme a un servidor sql server 2k mediante un odbc?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Apuntar a otra Base de datos

Publicado por JSM (2 intervenciones) el 09/06/2006 11:21:46
Por si vale de ayuda...

Yo creo los informes con Crystal en ficheros .rpt. Luego con VB los agrego a mi proyecto como un DSR. (respeta toda la estructura y formato creado con Crystal). y estos DSR son llamados por VB desde un formulario con un objeto CRViewer1.
En este formulario introduzco el siguiente codigo para cambiar el SET LOCATION de las tablas en tiempo de ejecución. La BBDD es un SQL Server y la forma de conectar es usando un DSN.

Dim ReportGC620I07 As New informeDSR
Dim ConexionGC620I07 As ADODB.Connection

Private Sub Form_Load()
Dim consulta As String
consulta = (SENTENCIA SQL)

Set ConexionGC620I07 = New ADODB.Connection
ConexionGC620I07.ConnectionString = "FILE NAME=" & rutabd & bd

ConexionGC620I07.Open
RegistrosGC620I07.ActiveConnection = ConexionGC620I07


RegistrosGC620I07.CommandType = adCmdText
RegistrosGC620I07.CommandText = consulta

Dim i
Dim name As String

For i = 1 To ReportGC620I07.Database.Tables.Count
name = ReportGC620I07.Database.Tables(i).name
ReportGC620I07.Database.Tables(i).SetLogOnInfo rutabd & bd, tipoBBDD, "SEGE", "SEGE"
ReportGC620I07.Database.Tables(i).SetTableLocation tipoBBDD & ".dbo." & name, "", ""
Next i

' (Si el informe tiene subreport esto es necesario)
For i = 1 To ReportGC620I07.Subreport1.OpenSubreport.Database.Tables.Count
name = ReportGC620I07.Subreport1.OpenSubreport.Database.Tables(i).name
ReportGC620I07.Subreport1.OpenSubreport.Database.Tables(i).SetLogOnInfo rutabd & bd, tipoBBDD, usuario, password
ReportGC620I07.Subreport1.OpenSubreport.Database.Tables(i).SetTableLocation tipoBBDD & ".dbo." & name, "", ""
Next i

ReportGC620I07.SQLQueryString = consulta

.... luego el codigo continua definiendo las propiedades visuales del report.

SALUDOS
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Apuntar a otra Base de datos

Publicado por Raul (1 intervención) el 18/03/2010 20:32:47
La libreria pspsql es exclusiva para sql server.........para Mysql ¿Cual es?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar