Foros del Web » Programación para mayores de 30 ;) » .NET »

Data Provider para SQL Server

Estas en el tema de Data Provider para SQL Server en el foro de .NET en Foros del Web. Bajé el .NET Framework 1.1 SDK y el .NET Framework 1.1 Redistributable y los instalé en mi PC que tiene Windows 2000 Profesional. La istalación ...
  #1 (permalink)  
Antiguo 11/12/2003, 00:26
 
Fecha de Ingreso: mayo-2003
Ubicación: Lima
Mensajes: 21
Antigüedad: 21 años
Puntos: 0
Data Provider para SQL Server

Bajé el .NET Framework 1.1 SDK y el .NET Framework 1.1 Redistributable y los instalé en mi PC que tiene Windows 2000 Profesional. La istalación se ejecutó en forma normal.

Recientemente cuando he querido conectarme con el SQL Server 200 Destktop Engine el sistema me indicó que no encontraba el System.Data.SqlCliente.dll y por lo tanto se interrumpía la compilación de fuente que había escrito en código Visual .NET.

El mencionado dll es el .NET Framework Data Provider para MS SQL Server y en efecto cuando lo busqué en mi sistema no lo encontré por ninguna parte.

La documentación del .NET Framework versión 1.1 indica que los siguientes cuatro Data provider ya vienen como parte integrante del .NET Framework 1.1:

- .NET Framework Data Provider para MS SQL Server (System.Data.SqlCliente.dll)
- NET Framework Data Provider para OLE DB (System.Data.OleDb.dll)
- .NET Framework Data Provider para ODBC
- .NET Framework Data Provider para Oracle (System.Data.OracleClient.dll)

Bien mi búsqueda ha descubierto que solo se ha instalado el Data Provider para Oracle (System.Data.OracleClient.dll) y los otros tres Data Provider no existen.

He visitado el Sitio de Microsoft para hacer bajadas pero solo figura para bajar el Data Provider para Oracle ya que este no venía en la versión anterior de .NET framework.

Bien, este problema lo puedo solucionar si alguno de Uds que estan leyendo este mensaje tiene la amabilidad hacer una copia del DLL que más me interesa, que es el System.Data.SqlClient.dll y me lo envía por e-mail a la dirección [email protected] En mi sistema por ejemplo la ubicación de ese tipo de DLLs se encuentra en F:\WINNT\Microsoft .NET\Framework\v1.1.4322\

Agradeceré la ayuda que me puedan dar.

Nota. La conexión con la base de datos Oracle si la puedo realizar. Parece mentira que con un producto de Microsoft (.NET Framework) no pueda conectarme con otro product Microsoft ( SQL Server).

Otro sí: Trabajo solo con comandos de linea para correr aplicativos. Es decir no uso y tampoco tengo instalado el Visual Studio .NET y tampoco pienso instalarlo.
  #2 (permalink)  
Antiguo 11/12/2003, 12:35
Avatar de lucxx  
Fecha de Ingreso: noviembre-2003
Ubicación: Madrid
Mensajes: 321
Antigüedad: 20 años, 5 meses
Puntos: 0
puedes especificar el error que te da?

no creo que sea un problema de la instalación del framework
  #3 (permalink)  
Antiguo 11/12/2003, 20:44
 
Fecha de Ingreso: mayo-2003
Ubicación: Lima
Mensajes: 21
Antigüedad: 21 años
Puntos: 0
El mensaje que sale al tratar de correr el comando para compilar el archivo fuente es tan simple como:
"Error no se encuentra System.Data.SqlCliente.dll Se interrumpe la compilación".

Lo extraño es que solo veo que tengo instalado el Data Provider para Oracle pero no veo a los Data Provider para SQL Server, OLE BD y ODBC en mi sistema. Los he buscado en todo los directorios de mi sistema (trabajo arduo) pero no aparecen.

¿Tu los puedes ver en tu sistema?
  #4 (permalink)  
Antiguo 12/12/2003, 06:11
Avatar de lucxx  
Fecha de Ingreso: noviembre-2003
Ubicación: Madrid
Mensajes: 321
Antigüedad: 20 años, 5 meses
Puntos: 0
Hola tejas:

Lo primero es decirte que yo tampoco veo fisicamente las dll's de sqlClient y OLEDB, solo la de Oracle, pero supongo que sera porque estén compiladas dentro del propio ensamblado System.Data, aunque en espacios de nombre diferentes, y que la de Oracle esta fuera por no ser tan intrinseca a microsoft

El tema es que en los dos post has escrito que en el error te dice:

Cita:
"Error no se encuentra System.Data.SqlCliente.dll Se interrumpe la compilación".
¿Puede ser que al importar el namespace o al establecer la cadena de conexion has escrito SqlCliente en lugar de SqlClient?
Repasa el codigo, porque si es eso, mejor que mejor, no lo se, de todas formas al importar el namespace no hay que poner lo de dll, eso ya no se si es que eso sale en el error o que tambien lo has puesto tu, miralo de todas formas.

Espero que con esto se solucione tu problema, Saludos!
  #5 (permalink)  
Antiguo 15/12/2003, 21:27
 
Fecha de Ingreso: mayo-2003
Ubicación: Lima
Mensajes: 21
Antigüedad: 21 años
Puntos: 0
Hola Lucxx

Regreso despues de un largo fin de semana en el campo lejos de todo contacto con mi PC.

Respecto a tu observación debo decirte que por un error de tipeo puse System.Data.SqlCliente.dll. En realidad es System.Data.SqlClient.dll

Voy a ser más explicito con la situación encontrada:

He creado una copia del script que se muestra como ejemplo en la Documentación de .NET Framework SDK Documentation (Rama Programing with the .NET Framework --> Accessing Data with ADO.NET --> Overview of ADO.NET --> ADO.NET Sample Application).

El codigo es el siguiente:

--------------------------
Imports System
Imports System.Data
Imports System.Data.SqlClient
Imports Microsoft.VisualBasic

Public Class Sample

Public Shared Sub Main()
Dim nwindConn As SqlConnection = New SqlConnection("Data Source=localhost;" & _
"Integrated Security=SSPI;Initial Catalog=northwind")

Dim catCMD As SqlCommand = nwindConn.CreateCommand()
catCMD.CommandText = "SELECT CategoryID, CategoryName FROM Categories"

nwindConn.Open()

Dim myReader As SqlDataReader = catCMD.ExecuteReader()

Do While myReader.Read()
Console.WriteLine(vbTab & "{0}" & vbTab & "{1}", myReader.GetInt32(0), myReader.GetString(1))
Loop

myReader.Close()
nwindConn.Close()
End Sub
End Class

----------------------------------

Este codigo lo he guardado con el nombre "sampleadosql.vb" en la carpeta F:\Ejercicios con SDK\VB

Luego cuando trato de compilar el codigo fuente con el comando que sugiere la documentación, observa que es lo que obtengo como respuesta:

----------------
F:\Ejercicios con SDK\VB>vbc.exe sampleadosql.vb /r:System.dll /r:System.Data.dl
l /r:System.Data.SqlClient.dll /r:System.Xml.dll

Versión 7.10.3052.4 del compilador de Microsoft (R) Visual Basic .NET
para Microsoft (R) .NET Framework, versión 1.1.4322.573
(C) Microsoft Corporation 1987-2002. Reservados todos los derechos.

vbc : Error de la línea de comandos BC2017 : no se encuentra la biblioteca 'Syst
em.Data.SqlClient.dll'
vbc : Error grave BC2000 : Fallo inesperado de inicialización del compilador: El
sistema no puede hallar el archivo especificado.

F:\Ejercicios con SDK\VB>
---------------

Como podrás ver obtengo errores y no se logra ejecutar la compilación.

¿Podrás enviarme un codigo de ejemplo y la orden de compilación que a ti te funcione, para así confirmar si estoy cometiendo un error de interprestación de los ejemplos de la documentación o malfucionamiento de mi sistema?

Gracias
  #6 (permalink)  
Antiguo 16/12/2003, 09:51
Avatar de lucxx  
Fecha de Ingreso: noviembre-2003
Ubicación: Madrid
Mensajes: 321
Antigüedad: 20 años, 5 meses
Puntos: 0
Hola Tejas:

mirando el ejemplo que me dices, en el comando para compilar que sugiere la documentación no veo por ninguna parte lo de

/r: system.data.sqlClient.dll

(corrigeme si me equivoco, porque lo estoy mirando en la documentación ya que no tengo los samples instalados)
lo que veo es:

Cita:
vbc.exe sample.vb /r:System.dll /r:System.Data.dll /r:System.Data.OracleClient.dll /r:System.Xml.dll
entonces, entiendo que has sustituido /r:System.Data.OracleClient.dll por sqlClient; deduzco (ya que en los ensamblados del sistema no habia ninguna sqlClient.dll) que no hace falta importarla ya que no existe como tal, y que con importar System.Data ya es suficiente. Prueba a compilarlo con la orden:

vbc.exe sampleadosql.vb /r:System.dll /r:System.Data.dll

(por lo que he visto en el ejemplo tampoco hace falta el system.data.xml). De todas formas no lo he probado ya que aqui no tengo el SDK, pero creo que puede ser eso. Pruebalo y nos cuentas.

Saludos
  #7 (permalink)  
Antiguo 17/12/2003, 08:14
Avatar de lucxx  
Fecha de Ingreso: noviembre-2003
Ubicación: Madrid
Mensajes: 321
Antigüedad: 20 años, 5 meses
Puntos: 0
Mejor:

vbc.exe /t:library /r:System.dll,System.Data.dll sampleadosql.vb

aunque lo usual es crearse un archivo .bat:

CompilarEjemplo.bat
--------------------------

set salida = c:\inetpub\wwwroot\miAplicacion\bin\ejemplo.dll
set ensamblados = System.dll,System.Data.dll
vbc /t:library /out:%salida% /r:%ensamblados% ejemplo.vb
pause

Espero que hayas resuelto el problema...Hasta luego

Última edición por lucxx; 17/12/2003 a las 08:16
  #8 (permalink)  
Antiguo 18/12/2003, 01:39
 
Fecha de Ingreso: mayo-2003
Ubicación: Lima
Mensajes: 21
Antigüedad: 21 años
Puntos: 0
Hola lucxx:

Si, estás en lo cierto. Adapté el comando que sale en la documentación. Ahí aparece el comando para la conexión a Oracle pero sin embargo los códigos de ejemplo son para SQL Server por eso lo adapté en consecuencia. Fue un error mío no advertir de esta adaptación.

Bien, ingresé el comando que recomendaste:
----------
F:\Ejercicios con SDK\VB>vbc.exe sampleadosql.vb /r:System.dll /r:System.Data.dll
Versión 7.10.3052.4 del compilador de Microsoft (R) Visual Basic .NET
para Microsoft (R) .NET Framework, versión 1.1.4322.573
(C) Microsoft Corporation 1987-2002. Reservados todos los derechos.

F:\Ejercicios con SDK\VB>
-----------

Ahora la ejecución del comando para compilar no me dió ningun error, lo cual indicaba que se había creado un ejecutable.
Efectivamente ahora se había creado el archivo sampleadosql.exe.

Ejecuté el archivo creado con el siguiente comando para ver que sucedía:

----------
F:\Ejercicios con SDK\VB>sampleadosql.exe

-------------

Pero enseguida me apareció una ventana con el título "Just-In-Time Debugging" con el siguiente mensaje:

"Please repair the installation of the most recent version of Visual studio .NET or remote Debugging components.
Alternatively, execute the following command as an Administrator to manually repair the JIT Debugger component registration.
F:\Archivos de programa\Archivos comunes\Microsoft Shared\VS7Debug\vstjit.exe /RegServer"

La verdad que me quedé estático sin saber que hacer y la ventana desapareció. Cuando pulsé Enter en la linea de comando apareció el siguiente mensaje en la consola:

--------------
Excepción no controlada: System.Data.SqlClient.SqlException: El servidor SQL Server no existe o se ha denegado el acceso.
at System.Data.SqlClient.ConnectionPool.GetConnection (Boolean& isInTransaction)
at System.Data.SqlClient.SqlConnectionPoolManager.Get PooledConnection(SqlConn
ectionString options, Boolean& isInTransaction)
at System.Data.SqlClient.SqlConnection.Open()
at Sample.Main()

F:\Ejercicios con SDK\VB>
-------------

Luego de esto seguí la recomendación que apareció en el mensaje de la ventana del depurador Just-in-time que se visualizó cuando ejecuté por primera vez sampleadosql.exe, por ello ingresé el siguiente comando:
------
F:\Archivos de programa\Archivos comunes\Microsoft Shared\VS7Debug>vstjit.exe /RegServer
-----

Y el sistema no me respondió nada solo me devolvió al prompt "F:\Archivos de programa\Archivos comunes\Microsoft Shared\VS7Debug>".
Con lo cual supuse que se había reparado el JIT Debugger component registration.

Así que ahora con más confianza ingresé nuevamente la orden:

---------
F:\Ejercicios con SDK\VB>sampleadosql.exe
----------

Y nuevamente se visualizó la ventana con título "Just-In-Time Debugging", pero esta vez el mensaje fué el siguiente:

"An exeption 'System.Data.SqlClient.SqlExeption' has ocurred in sampleadosql.exe.
posible Debuggers:
New instance of Microsoft CLR Debugger 2003

Do you wnat to debug using the selected debugger"

Al pulsar el boton "Yes" de la ventana para aceptar la sugerencia se visualizó otra ventana con el título "Microsoft CLR Debugger" con el siguiente mensaje:

"An unhandled exeption of type 'System.Data.SqlClient.SqlExeption' ocurred in System.data.dll
Additional information: Error del sistema"

Hago notar que en la consola apareció nuevamente el mensajé que se vió cuando se ejecutó sampleadosql.exe por primera vez.

Bien, los ultimos mensajes de la ventana Just-In-Time coinciden con el de la consola.

Definitivamente me están diciendo que tal vez el error se encuentra en el código fuente. Algo me falta. Tendré que investigar en el código fuente que es lo que esta causando que en el mensaje de la Consola haya aparecido la frase "....el Servidor SQL Server no existe o se ha denegado el acceso....."

Luego de todo este ajetreo que he pasado tengo que agradecerte bastante mi estimado lucxx.
Aunque no he logrado el propósito final de acceder a los datos del MSDE (SQL Server 200 Destktop Engine ) al menos con tu ayuda he avanzado un buen trecho al lograr compilar el archivo fuente.

No he probado las dos sugerencias de tu último mensaje debido a que con la sugerencia de tu penúltimo mensaje se ha logrado realizar la compilación. Pero te aseguro que las probaré cuando descubra por que no puedo conectarme al Servidor SQL Server.
  #9 (permalink)  
Antiguo 19/12/2003, 21:41
 
Fecha de Ingreso: mayo-2003
Ubicación: Lima
Mensajes: 21
Antigüedad: 21 años
Puntos: 0
Hola de nuevo

Esta vez para decirles que al fín logré completar mi cometido de conectarme a SQL Server 2000 desktop Engine.

Con la ayuda de Lucxx logré compilar el código fuente pero me quedó el problema de que no podía conectarme al Servidor SQL.

El problema se encontraba en la siguiente cadena de conexión que estaba empleando:

-----
"Data Source=Localhost;Integrated Security=SSPI;Initial Catalog=northwind;"
-----

El nombre del "Data Source" era todo el problema. Lo cambié a "Data Source=LEON" y asunto terminado; me conecté immediatamente.

LEON es el nombre de mi instancia pero yo lo ignoraba. Lo averigué de forma fortitua cuando ejecuté el utilitario "svrnetcn.exe" para investigar sobre los protocolos de conexión disponibles y en la pestaña GENERAL vi un campo con la etiqueta Nombre de Instancia y la frase LEON.
Dicho sea de paso LEON es el nombre de mi PC que elegí cuando instalé Windows 2000 Pro hace más de 1 anio.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:05.