Visual Basic - Error 3706 en tiempo de ejecución

Life is soft - evento anual de software empresarial
   
Vista:

Error 3706 en tiempo de ejecución

Publicado por ostopa (11 intervenciones) el 25/09/2015 11:11:01
Hola a todos,

Tengo un problema y no sé que puede ocurrir.

Hasta ahora venía desarrollando en un PC con Visual Basic 6 y con .NET. Me conectaba con ADO a una base de datos que tengo en un servidor en red. Bueno pues ahora he cambiado el PC, e instalado Visual Basic 6 (Con sus service pack correspondientes), el .NET y es imposible realizar la conexión.


Tengo puesta la Referencia "Microsoft ActiveX Data Objects 2.8 Library" y el código que utilizo es el siguiente:

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Dim CONN As ADODB.Connection
Dim RSX As ADODB.Recordset
Dim TXT As String
 
    On error goto ERROR:
 
    Set CONN = nothing
    Set RSX = nothing
 
    Set CONN = New ADODB.Connection
    Set RSX = New ADODB.Recordset
 
    CONN.ConnectionString = "Provider=SQLOLEDB; Initial Catalog=PRUEBAS-DB; Data Source=DA1;
                                               "integrated security=SSPI; persist security infor=True; user id = sa; password = sa;"

    CONN.Open
    
    TXT = "select * from personas"

    RSX.Open TXT, CONN, adOpenStatic
    
    
    RSX.Close
    CONN.Close

ERROR:

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

Como os digo, en ambos ordenadores tengo el mismo código y en este nuevo cuando llega al "CONN.open" me sale el siguiente error:

Error '3706' en tiempo de ejecución:

No se encontró el proveedor especificado. Es posible que no esté
instalado correctamente.


Bueno, pues esto es. Espero que podáis ayudarme ya que llevo un par de días y estoy medio loco.

Muchas gracias.
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

Error 3706 en tiempo de ejecución

Publicado por Rafael (65 intervenciones) el 25/09/2015 11:40:10
Si has instalado el VB6 despues del VB.net checa aqui

PRB: Jet 3.51 OLE DB Provider is not installed with MDAC 2.1 or later
http://support.microsoft.com/default.aspx?scid=kb;EN-US;Q197902

How to ensure Jet 3.5 is installed correctly (Part I)
http://support.microsoft.com/kb/240377/EN-US

Y ya nos contaras...
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
Imágen de perfil de xve

Error 3706 en tiempo de ejecución

Publicado por xve (178 intervenciones) el 25/09/2015 17:29:21
Hola Ostopa, creo que tienes un problema de comillas, no?
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
Imágen de perfil de Wilfredo Patricio Castillo

Error 3706 en tiempo de ejecución

Tu problema está en la parte donde dice:

persist security infor

debería ser:

persist security info=

Saludos cordiales
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

Error 3706 en tiempo de ejecución

Publicado por ostopa (11 intervenciones) el 26/09/2015 14:01:47
Buenos días,

En cuanto al comentario de RAFAEL, decirte que instalé en primer lugar Visual Basic 6 y después el .NET.

En cuanto a XVE y WILFREDO deciros que es un error de tecleo cuando escribí el mensaje, en el desarrollo lo tengo bien puesto.

No se os ocurre otra cosa por la que no pueda conectar y me devuelva siempre el mismo error. Os recuerdo que no es en ningún PC cliente sino en el mío donde estoy desarrollando.

Descargué una aplicación que te dice que MDAC tienes instalado, pero al ejecutarlo me devuelve un error y no me lo dice.

¿Sabéis si es conveniente desinstalar todos los MDAC que tengas y dejar solo el último? Si es así, podéis indicarme como hacerlo, tanto la desinstalación como la instalación. Os lo digo porque he descargado la 2.8 SP1 de Microsoft y no hay instalación como tal solo dice que descomprimas el contenido del fichero en una ubicación del disco y ya está.

Gracias de nuevo.
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

Error 3706 en tiempo de ejecución

Publicado por Juan Gilberto (278 intervenciones) el 27/09/2015 00:46:34
Este es un ejemplo de como los hacia yo
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Global MiConStr     As String
Global MiSQL        As ADODB.Connection
 
        MiConStr = "Provider=SQLOLEDB.1;" & _
                   "UID=sa;" & _
                   "PWD=B1Admin;" & _
                   "Persist Security Info=False;" & _
                   "Initial Catalog=ABCDEF;" & _
                   "Data Source=SERVERABC"
 
    Set MiSQL = New ADODB.Connection
        MiSQL.CursorLocation = adUseClient
        MiSQL.ConnectionString = MiConStr
        MiSQL.Open
        MiSQL.CommandTimeout = 0
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

Error 3706 en tiempo de ejecución

Publicado por ostopa (11 intervenciones) el 27/09/2015 09:56:09
Lo primero, Juan Gilberto, agradecerte tu opinión.

Hoy no puedo probarlo porque no estoy en el trabajo, pero mañana mismo lo haré.
Aun así, decir que la diferencia es el provider (juraría que ya he probado con ese) y las abreviaturas del usuario y la contraseña, pero como te digo mañana probaré a ver si hay suerte.

En casa tengo instalado en el PC un SQL Server 2012 y con el código que tengo puesto al inicio funciona perfectamente, al igual que en el PC antiguo del trabajo. Por tanto deduzco que debe ser otro el "maldito" problema, pero lo dicho mañana pruebo y os informo a todos.

Gracias y 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

Error 3706 en tiempo de ejecución

Publicado por ostopa (11 intervenciones) el 28/09/2015 08:19:29
Bueno, lo he probado y NO funciona.

¡¡Dios, qué desesperación!!!
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

Error 3706 en tiempo de ejecución

Publicado por ostopa (11 intervenciones) el 30/09/2015 14:04:03
¿No se os ocurre nada?

He probado a crear una conexión desde el "Administrador de orígenes de datos ODBC" en la pestaña "DNS de usuario" con el origen de datos "SQL Server" y conecto perfectamente con la base de datos, la prueba de conexión de da exitosa, por tanto deduzco que me debe faltar algún componente o algo así para que desde el desarrollo no pueda establecer la conexión.

También he probado a insertar en un formulario el control "Microsoft ADO Data Control 6 (SP6)" y en las propiedades de ADODC, en la pestaña general y seleccionar la opción "usar cadena de conexión", pulso el botón "generar" y no hace nada, es decir, no sale la pantalla de "propiedades de vínculos de datos" que debe mostrar.

A ver si alguno, con estos datos, se le ocurre algo, POR FAVOR.

Muchas gracias.
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

Error 3706 en tiempo de ejecución

Publicado por ostopa (11 intervenciones) el 06/10/2015 12:46:32
Bueno, os cuento a ver si con esto os doy claridad para que me intentéis ayudar y resolver el problema con ADO.

He intentado hacer la conexión a la base de datos mediante RDO y lo hace perfectamente con el siguiente código:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
Private Function ConectarDB2() As Boolean
Dim rs As rdoResultset
Dim cn As New rdoConnection
Dim cl As rdoColumn
Dim er As rdoError
 
On Error GoTo ERROR
 
    With cn
 
        .Connect = "uid=sa;pwd=*****;server=DA1;driver={SQL Server};database=DB_PRUEBAS;DSN='';"
        .CursorDriver = rdUseNone
        .EstablishConnection rdDriverNoPrompt
 
        Set rs = cn.OpenResultset("select pr_cod, pr_tipo, pr_nombre from personas order by pr_cod")
 
        For Each cl In rs.rdoColumns
            Debug.Print cl.OrdinalPosition, _
            cl.Name, cl.Value
        Next
 
    End With
 
    GoTo SALIR
 
ERROR:
 
    For Each er In rdoErrors
        Debug.Print er.Description
    Next er
 
    Resume Next
 
SALIR:
 
End Function


¿Por qué con ADO me sale este error y no establezco la conexión?

Gracias.
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
Imágen de perfil de Daniel

Error 3706 en tiempo de ejecución

Publicado por Daniel (13 intervenciones) el 07/10/2015 22:01:48
Se que es medio chapuzero, pero inserta en un form un datacontrol (y desde ahi genera la cadena de conexion a tu base), despues pegas lo que genero a tu conectionString y fijate si ayuda en tu problema, recorda que siempre que la creas desde el datacontrol te deja testearla antes, si funciona eliminas tu datacontrol y solo usas la cadena que genero.
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

Error 3706 en tiempo de ejecución

Publicado por ostopa (11 intervenciones) el 08/10/2015 08:04:31
Gracias Daniel por tu aporte.

Lo que dices ya lo he hecho pero cuando editas la propiedades del control "data control", al pulsar en el botón de "generar" con la opción "usar cadena de conexión" marcada, no hace nada cuando debería de aparecer una pantalla para elegir tipo de conexión, servidor, base de datos, etc.

Creo que ya lo comenté anteriormente.

Si se te ocurre otra cosa no dudes en comentarlo, llegados a este punto cualquier cosa puede ser posible.

Gracias.
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