Por:Raul Macias
El error 20599 Cannot open SQL Server o en español No se puede abrir el servidor de SQL se presenta en algunos Windows XP y Windows Vista al querer abrir el control de Crystal Reports en su método Action=1 y querer conectarlo a una base de datos de SQL o Access, la solución que encontré después de investigar en varios foros(frustrándome al no encontrar una solución 10 horas mas de Psicólogo),hacer una recolección de versiones de archivos de aquí y de por allá decidiéndome ponerme a prueba y error a tratar de encontrar la solución de el problema, dando como resultado un conjunto de archivos que fueron los siguientes:
Archivo |
Versión |
p2ssql.dll | 8.5.0.19 |
p2sodbc.dll | 8.5.0.72 |
ntwdblib.dll | 2000.2.8.0 |
cpeaut32.dll | 8.5.0.9 |
crpe32.dll | 8.5.0.217 |
Crystl32.OCX | 8.0.0.4 |
Solución 1
- En algunos equipos con solamente copiar el archivo p2ssql.dll y ntwdblib.dll en el directorio C:\Windows\System32 se soluciono el problema(No es necesario registrarlos con REGSRV32.exe).
- Ejecutar la aplicación con el problema para ver si ya no se presenta el error 20599.
Solución 2
Después de que no funciona la Solución 1
- Des registrar el Crystl32.OCX con el REGSRV32.exe(C:\Windows\System32\REGSRV32.exe /u [Path]\Crystl32.OCX).
- Respladar los archivos a remplazar si existen en C:\Windows\System32.
- Copiar los archivos cpeaut32.dll,crpe32.dll,Crystl32.OCX en C:\Windows\System32 (registrar en el orden cpeaut32.dll,crpe32.dll,Crystl32.OCX).
- Ejecutar la aplicación con el problema para ver si ya no se presenta el error 20599.
En el 99% de los equipos en los que se aplico esta receta de cocina se corrigió el error.
Hasta el momento después de 2 Años que se presento la primera ves el error esta es la solución que encontré.
Archivos: Descargar
Observación
El Archivo REGSRV32.exe se encuentra en la ruta C:\Windows\System32\
English Text
Error 20599 Cannot open SQL Server (Cyrstal Reports 8 and 8.5)
The error 20599 Can not open SQL Server in Windows XP and Windows Vista when they wanted to open the Crystal Reports control method in Action = 1 and want to connect to a database SQL or Access, the solution I found after research in various forums (disappointed not to find a psychologist more than 10 hours), a collection of versions of files from here and there I decided to try and error to try to find the solution of the problem, resulting in a set of files that were:
File |
Version |
p2ssql.dll | 8.5.0.19 |
p2sodbc.dll | 8.5.0.72 |
ntwdblib.dll | 2000.2.8.0 |
cpeaut32.dll | 8.5.0.9 |
crpe32.dll | 8.5.0.217 |
Crystl32.OCX | 8.0.0.4 |
Solution 1
- On some computers with just copy the file p2ssql.dll and ntwdblib.dll in C: \ Windows \ System32 solves the problem (need not register with REGSRV32.exe).
- Run the application to see if the problem is no longer the error 20599.
Solution 2
After that it does not work Solution 1 .
- Unregister Crystl32.OCX record with REGSRV32.exe (C: \ Windows \ System32 \ REGSRV32.exe / u [Path] \ Crystl32.OCX)
- Backup files to replace if they exist in C: \ Windows \ System32.
- Copy files cpeaut32.dll, crpe32.dll, Crystl32.OCX in C: \ Windows \ System32 (register in order cpeaut32.dll, crpe32.dll, Crystl32.OCX).
- Run the application to see if the problem is no longer the error 20599.
In 99% of the equipment in which it applies kitchen prescription error was corrected.
So far after 2 years to present the first time this error is the solution I found.
Files: Download
Comment
The file REGSRV32.exe is in the path C: \ Windows \ System32 \
Como y de donde puedo bajar los archivos mencionados en tu solución 1
Agradeceré pronta respuesta
Que tal, desde aquí los puedes descargar:
http://www.raulmacias.com.mx/archivosblog/imgblog/crystalreports/DllsSystem32.zip
Si te funciona la solución te agradecería que me lo hicieras saber.
Suerte
Los archivos los modifique de ubicación: http://www.raulmacias.com.mx/archivosblog/imgblog/crystalreports/DllsSystem32.zip
GRACIAAAAAAASSSS!!!!!!!!
Llevabamos con este tema ni se sabe, en algunos, funcionaba, en otros no, y gracias a la «colección completa de las dlls crystalianas de RaulMacías», todo arreglado.
De verdad, gracias.
Un fuerte abrazo
dominio3d.
Muchas Gracias por poner a descargar los archivos dll tenía serios problemas con un a versión vieja de Crystal, con su apoyo pudimos eliminar el error run-time 20352.
Muchisisisiismas Gracias
Que bueno que te sirvieron los archivos.
La verdad es que no funcionó, si corro el reporte solo desde crystal funciona bien pero al llamarlo desde mi programa de Visual Basic 6, sigue arrojando el mismo error.
Lo que me he percatado es que si el reporte lo modifico y no muestro ningún campo, aunque el reporte este conectado al procedimiento almacenado de sql, lo muestra, sin embargo, cuando lo vuelvo a modificar y muestro registros, me arroja el error.
Antes que nada perdón por la tardanza en contestarte pero estuve desconectado, como recomendación te sugiero que veas como dejaste la conexión en tu reporte y después veas como estas le pasas la conexión al active x de Crystal en este post tengo un ejemplo de un proyecto de Visual Basic, dos reportes que utilizan una tabla y un procedimiento almacenado y la forma de abrir la conexión a SQL server desde el mismo Crystal Reports y desde Visual Basic.
Quedo en espera de tus comentarios.
[…] un post anterior explique cuales eran las Dlls que había encontrado para evitar el error 20599 Cannot Open SQL […]
SI EN CRYSTAL REPORT 8.5 SE UTILIZA UNA BD DE ACCESS 2003 ENLAZADA CON VB6, Y EN SU EVENTO CR1.ACCION = 1 SE MUESTRA EL ERROR 20599 NO SE PUEDE ABRIR EL SERVIDOR SQL, PUES LA SOLUCION PARA ELLO ES REDIRECCIONARA NUEVAMENTE EL ORIGEN DE LA BASE DE DATOS, DEBIDO A QUE SE INTENTO CONECTAR CON UN SERVIDOR ANTERIORMENTE. CAMBIANDO LA OPCION DESDE MAS ORIGENES DE DATOS Y ENLAZARLO CON MICROSOFT.JET. 4.0 Ó 3.51 DEPENDIENDO DE LA FORMA DE USO DE LA BD.
Hola. En tu solució 2 dices que se debe registrar el archivo Crystl32.OCX y das una instruccion. Pero ¿como registro ese archivo? ¿donde tecleo esa instruccion?. Gracias
Des registrar el Crystl32.OCX con el REGSRV32.exe(C:\Windows\System32\REGSRV32.exe /u [Path]\Crystl32.OCX).
Desde la consola de MS-Dos de windows.
El archivo y proceso regsvr32.exe es un proceso que pertenece al sistema operativo Windows y es empleado para registrar librerías DLL y controles ActiveX en le registro de Windows.
Ubicación típica:
C:\Windows\system32\regsvr32.exe
Hola. La opcion 1 no funcionó. La opcion 2 no entiendo como hacer eso de registrar el Crystl32.OCX con el Regsvr32. ¿Como hago eso?¿Donde lo hago?¿Donde tecleo esa instruccion?. Gracias
Desde la consola de MS-Dos de windows.
Tengo una aplicacion entre vb6 y una bd en formato access 2000, al generar el reporte en crystal 8.5 y al llegar a la instrucción cr1.Action = 1 me da el error 20599 Cannot open SQL Server, ya registre las dlls como mencionaste pero sigue apareciendo el error, no se como solucionarlo, si alguien del foro sabe como lo puedo corregir se los agradeceria de antemano muchas gracias
Mil y Mil gracias, Habia una compañera q no daba con el chiste y le logre solucionar!
Que bueno que te sirvió la solucion.
Saludos
Estimados, la solucion es bantante simple, abran el reporte refresquen los datos y listo, chao mensaje de error….. bless
esta solucion es una porqueria no funciona…
si sirve
ejecuta los pasos del 2do punto
Yo tenia un error igual pero con el paso No.1 se soluciono.
al llamar el reporte salia ese error,
solo me baje p2ssql.dll y el ntwdblib.dll lo copie de SQL .
Gracias por poner esta info, porque me pase horas buscando.
saludos
Hola! mil gracias por los intentos de ayuda! que veo que a algunos les ha funcionado, pero a mi no.
he bajado los dlls que dice Raul y los he puesto tanto en la carpeta de c:\windows\crystal como en c:\windows\system32
pero a la hora de registrar con regsvr32 el p2ssql.dll me lanza el siguiente error:
«p2ssql.dll was loaded, but the DllRegisterServer entry point was not found
this file can not be registered»
estoy desarrollando un aplicativo en vb6 apuntando a una base de datos SQL Server 2005 Express y el Crystal Report 8.5
El OLE DB Provider que estoy usando es el SQL Native Client. y he probado cambiarlo a Microsoft OLE DB Provider for SQL Server y nada.
NOTA: el «Error 20599 Cannot open SQL Server» me esta dando desde la pc que estoy usando como desarrollador, o sea, no es en el cliente.
de mas esta decir lo mayor agradecido que estaria si alguien podria hechar una mano.
yo otra vez.
miren, navengando y navegando, me tope con este comentario:
«El error de Cannot open SQL Server, lo dice cuando no puede entrar a obtener los datos de las tablas que necesita para generar el informe. Las causas pueden ser por que no tenga la contraseña de acceso o por que el ODBC o conexión a la base de datos no sea correcto.»
lo que se me encendio algo en el cerebro.
y es esto, cuando creo el reporte en CR lo creo con el usuario «sa» y cuando lo intento invocar desde el aplicativo, lo hago con otro usuario cualquiera y ahi esta el error.
para probarlo, antes de asignarle la conexion a cr.connect, cambie el string y le puse sa y su clave y listo, lo hizo.
ahora a investigar si vale la pena cambiar este string cada vez que vaya a imprimir un reporte o como hacer que el crystal entienda que es otro usuario y lo deje pasar.
gracias de todas formas y acepto sugerencias.
No tienes que registrar los DLL solo el OCX
Las librerias solo deber copiadas en la ruta mencionada y el OCX si registrarlo
Gracias por el aporte
conmigo funciono a la maravilla
Saludos
Estimado puedes subir el archivo de nuevo el link se encuentra malo.
Gracias por la solución pero de dónde puedo bajar el archivo Zip con los DLL y el OCX porque el Link esta roto?. Me urge la solución.
De aqui se puede bajar: http://www.raulmacias.com.mx/archivosblog/imgblog/crystalreports/DllsSystem32.zip
Hola a todos …ya se me quito el error 20 599 …ahora me aparece el 20728 en tiempo de ejecucion «f» … si alguien sabe y pueda aportarme la solucion de antemano gracias
Buenas, por fvaor podías subir de nuevo los ficheros que no puedo acceder. Espero que el problema no sea mio.
Saludos y gracias de antemano
Mi BBDD es de Access. Como cosa curiosa es que tengo otro informe que si que lo saca pero, como digo, en otro sin diferencia aparente me da el famoso error.
amigo, esta bueno, el atriculo, pero los archivos no lo puedo bajar. ¿Cuando vuelves a subirlo?
Listo ya quedaron en donde mismo:
http://www.raulmacias.com.mx/archivosblog/imgblog/crystalreports/DllsSystem32.zip
hola ya intente las dos opciones y no me funcionan, solo que no pude registrar crpe32.dll solo lo copie, y la opcion
«y es esto, cuando creo el reporte en CR lo creo con el usuario “sa” y cuando lo intento invocar desde el aplicativo, lo hago con otro usuario cualquiera y ahi esta el error.
para probarlo, antes de asignarle la conexion a cr.connect, cambie el string y le puse sa y su clave y listo, lo hizo.»
no se como hacerla me podrian ayudar!!!
Ya viste el hacer el reporte de esta forma: https://raulmacias.wordpress.com/2009/07/13/evitar-el-error-20599-cannot-open-sql-server-de-crystal-reports/
estoy viendo la liga que colocaste en tu mensaje, la vdd soy nueva en crystal, hice un reporte el cual tiene subreportes y en mi maquina si funciona pero en otros equipos no, hace como si mostrara pero truena en el rptReporte.Action = 1, el reporte lo hago ingresando en odbc no en More Data Sources que por cierto a mi no me da la opcion de Microsoft Sql Server y al intentar crear otro odbc seleccionando configuracion cliente en alias del servidor y nombre del servidor tengo el nombre del servidor no la ip pero no me acepta usuario sa marca sqlsate 28000
Sera por los subreportes??
pos data mil gracias por contestar, ojala con tu ayuda pueda solucionar mi problema 😀
sabes como asignar el origen de datos al reporte desde vb antes de llamarlo, ya ke en un equipo al abrir directamente el reporte en crystal me pide que signe el origen de datos y despues me muestra la informacion
En el ejemplo que tengo en la pagina https://raulmacias.wordpress.com/2009/07/13/evitar-el-error-20599-cannot-open-sql-server-de-crystal-reports/ , existe una variable:
sConexion = _
“Provider=SQLOLEDB.1;Persist Security Info=False;” & _
“User ID= “ & sUsuario & _
“;Initial Catalog=” & sBaseDeDatos & _
“;Data Source=” & sServidor & _
“;Password=” & sPSW & _
“;”
Que ahi es donde le paso los datos de la conexion en:
CrystalReportTabla.Connect = sConexion ‘Cuando es una tabla
Puedes descargar el ejemplo de:
http://www.raulmacias.com.mx/archivosblog/imgblog/crystalreports/democrystal.zip
gracias gracias por tu apoyo, ya enconte mi error, resulta que genere un odbc con un nombre pero en el sistema se conecta a otro odbc por eso no hay conexion, hice una prueba en un equipo ke no funcionaba generando un odbc con mi nombre y se abrio pero tendria que generarlo en todos los equipos y pues no, me piden cambiar el reporte el cual se me complico hacerto porq soy nueva en crystal y ahora que lo intento hacer de nuevo tengo conflictos para ligar los subreportes, mm tengo que cambiarle el odbc al que esta ligado ( el nombre ) …… sabes como??
Hola Tengo un programa de VB que genera reporte en Crystal Reports y esta conectado a una bd de Sql Server 2008, en todas las maquinas cleintes funciona correctamente el programa, pero tengo una que tiene Windows 7 de 32 bits, el programa funciona bien en esta maquina inclusive manda un preliminar de los reportes pero el problema se presenta cuando mando a imprimir y es cuando manda el error: 20599 Cannot Open Sql Server. Probe con la solucion 1 y no funciono. No he probado con la 2 porque no se como registrar los archivos, mucho te agradecere de ser posible que me ayudes …….. También quise bajar los archivos de tu lilnk pero me manda un error de extension
Gracias
hola aqui de nuevo, y cambiando el tema, quiero enviar mi rpt de crystal a pdf en codigo vi este ejemplo en internet
Encontré esto en la página de Crystal a ver si funciona :
Dim appl As New CRAXDRT.Application
Dim rep As CRAXDRT.Report
Private Sub Command1_Click()
Set rep = appl.OpenReport(«c:\mytest.rpt», 1)
rep.ExportOptions.DiskFileName = «c:\pdf_report.pdf»
rep.ExportOptions.DestinationType = crEDTDiskFile
rep.ExportOptions.FormatType = crEFTPortableDocFormat
rep.Export False
End Sub
pero no me da la opcion de exportoptions?? sabes cual es la forma correcta
slds y gracias
gracias tu solución es de mucha ayuda
Que bien, suerte.
hOLA, mE ENCONTRE CON EL ERROR 20599 AL MOMENTO DE GENERAR REPORTE DE SUA, SOLO DI COPIE Y PEGUE LOS ARCHVOS EN LA LIGA QUE PROPORCIONASTE Y ME FUNCIONO DE MARAVILLA, Y ESO ME FUNCIONO EN WNDOWS 7; GRACIAS POR EL APORTE… Y MAS PARA UNA QUE NO ES PARA NADA PROGRAMADOR O MANEJA CRYSTAL O ALGO ASI…
GRACIAS ME AYUDO BASTANTE…
Excelente, me resolvió la vida en 1 2 3!
Hola Raul…
Muchas gracias por este aporte, llevaba mucho tiempo buscando una solución a este error y con las dll que dejas en el link http://www.raulmacias.com.mx/archivosblog/imgblog/crystalreports/Dlls pude eliminar ese error..
Estoy muy agradecida y ojala existieran mas personas como tu que comparten sus conocimientos.
Buen día:
Gracias por el aporte, estaba buscando esa solución.
Saludos
Zafiro:
Hola Raul, le quedo altamente agradecida por su aporte, la dificultad quedo resuelta utilizando la primera opción. Dios lo bendiga en todas las áreas de su vida.
Alguna vez ya habia solucionado este problema (hace 10 años creo) y ya no me acordaba como, muchas gracias la verdad facilitaste un buen la solucion a el problema…..
deberia existir mas apuntes asi tan puntuales…. felicidades!!!!!
Es curioso, pero yo lo corregí asigandole permisos de administrador al usuario sobre un dominio…..
Excelente!! Tuve problemas con el SUA del IMSS al querer generar cualquier cédula o reporte (en cálculos) me mandaba el error 20599 — Cannot open SQL Server Me bastó con la solución 1 de este tutorial. Descargué las dll’s que nos proporcionas. Respaldé las viejitas. La nueva p2sodbc.dll la copié en C:\Windows\System32 y en C:\WIndows\Crystal y listo!. Mil gracias por el aporte.
Muchisimas Gracias me ayudaron bastante tus DLL’s, logre solucionar el error 20728 f .
Que bien!!!