Controlar errores del driver=sql server?

Me estoy conectando con el Proveedor de Microsoft OLE DB para SQL Server desde
el control data de visual basic. En la propiedad .connect del data especifico los
parámetros que me hacen falta para conectarme. Si estos parámetros son correctos, perfecto.
El problema está en que si el servidor, la BD o otro parámetro especificado no es correcto,
aparece un formulario del propio driver pidiendo los datos para poder realizar la conexión.
Mi pregunta es si puedo controlar los errores del driver sql server desde visual basic o
anticiparme a la salida del formulario del driver.

1 respuesta

Respuesta
1
Dime que cadena de conexión estás usando. En principio eso sucedía con ODBC pero no me suena que suceda con OLEDB directamente.
Estoy utilizandolo asi :
En la proiedad .connect del control pongo (utilizo lo mismo para el objeto)
ODBC;DRIVER=SQL Server;Trusted_Connection=No;UID=a1;PWD=a1;Database=Gestion1_2002;QueryLogTime=0;WSID=MANUEL;APP=Data_Access97_SQLServer2000;Server=MANUEL
Siendo :
a1 --> el usuario (la password coincide con el)
Gestion1_2002 --> el nombre de mi BD
MANUEL --> el nombre de la estación de trabajo (q en este caso, es el mismo q el nombre del servidor)
Lo que sucede es que te estás conectando a través de odbc y no de ole-db directo. En portalsql.com el primer artículo que escribí tienes las cadenas de conexión puedes revisarlo.
En cualquier caso y de memoria podrías cambiarlo por algo así
PROVIDER=SQLOLEDB;Initial Catalog=Gestion1_2002;User id=a1;Password=1;trusted_connection=no;Data Source=Manuel
Buenas. Lo que me propones de memoria ya se que vale para realizar la conexión. Eso ya lo probé en su día. Estuve mirando en la web que me decías, pero no encontré ese articulo. Gracias igualmente.
Una pregunta más : ¿Cuál es la conexión mejor y más rápida de conectarme a sql server? ¿Con lo que estoy utilizando (a través de odbc) o a través de ole-db directo? ¿O existe alguna otra mejor o solo son distintantas maneras de poder conectarnos?
Gracias. Un saludo
http://www.configuracionesintegrales.com/miguele/conectarbd.asp?articulo=1
Ese es el artículo.
Es más rápido a través de ole-db tienes una capa menos(ole db no tiene que conectarse a odbc) pero no creo que notes demasiadas diferencias.
El cliente más rápido hoy es el Sqlclient del .NET framework pero salvo que programes en Visual Studio .NET no puedes usarlo.
Bien. Gracias. Ya vi el articulo. Esta muy bien. Es interesante. Pero, ese código se aplica a controles y objetos ADO. ¿Cómo seria en Dao (con un control por ejemplo)?
Un saludo nuevamente.
Ado, la verdad es que ado no ofrece grandes rendimientos contra Sql-Server, hicieron un invento, algo de ado direct o algo así. Pero hace mucho tiempo que no uso eso (Gracias a Dios por otra parte). Te paso un link que seguramente te sirva. Es un documento que está en inglés pero que habla de formas de conectarse y nombra alguna con ADO. El autor es Fernando Guerrero, autor de SQl-SErver 2000 con ejemplos, uno de los mejores libros de SQL-SErver que conozco.
http://www.callsql.com/en/Articles/connecting%20to%20sql%20server.zip
Buenas:
El articulo que me descargue de esa dirección es muy bueno. Perdona, pero creo que no me entendiste la pregunta antes. ¿Mi pregunta era como uso OLEDB direct para conectarme a sql server utilizando un control DAO (Data1)? No ADO(ADODC)
Gracias. La verdad es que hasta ahora esto esta siendo muy satisfactorio. Todo me va a servir de gran ayuda. A ver si sabes como solucionar lo expuesto en el párrafo anterior.
Chao
Son dos tecnologías distintas y no compatibles desgraciadamente. Siento mucho ser portador de estas noticias pero es lo que hay. Microsoft de hecho ya no incluye soporte para DAO en su MDAC, la distribución del acceso a datos.
'Se que puede ser muy complicado pero yo me plantearía cambiar a ADO.
Saludos Cordiales.
Miguel EGea
PD. En portal sql también hay una colaboración de Jose Luis Moga que habla de controles pero son ADO no DAO.
Muchas Gracias por la ayuda pero, solo una cosa más ...
Bien. Si me conecto entonces como hice hasta ahora, Dao con el driver=sql server,
¿Cómo podría anticiparme a los errores de conexión si esta fallase?
Existe algun parametro q controle errores, dentro de la cadena de conexion q te remitia en el primer mensaje?
data1.connect =
"ODBC;DRIVER=SQL Server;Trusted_Connection=No;UID=usuario;PWD=contraseña;Database=BD_pruebas;QueryLogTime=0;WSID=estaciondtrabajo;APP=nombre_de_la_aplicacion;Server=Servidor"
Un saludo.
Por lo que yo leo aquí.
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/office97/html/output/F1/D2/S5A25F.asp
creo que eso te va a saltar siempre que el password no sea correcto.
en este otro
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/office97/html/output/F1/D2/S5A25F.asp
tienes bastante información sobre el objeto connectio, con odbcDirect..
Bueno. La verdad es que al final no encontré lo que buscaba, pero todas las anotaciones del día son y serán de gran ayuda. Si soluciono, te lo haré llegar. Un saludo y muchas gracias.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas