Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Conectar VB a SQL Server

Estas en el tema de Conectar VB a SQL Server en el foro de Bases de Datos General en Foros del Web. Hola: Espero que todos esten muy bien, mi problema es el siguiente: Tengo una aplicacion en Visual Basic 6, esta controla la entrada de visitas ...
  #1 (permalink)  
Antiguo 26/01/2004, 19:44
 
Fecha de Ingreso: enero-2004
Mensajes: 33
Antigüedad: 20 años, 3 meses
Puntos: 0
Conectar VB a SQL Server

Hola:
Espero que todos esten muy bien, mi problema es el siguiente:
Tengo una aplicacion en Visual Basic 6, esta controla la entrada de visitas al lugar donde trabajo. El caso es que se conecta al servidor de SQL. Al ejecutar esta aplicacion en mi PC, trabaja de maravilla.. los problemas vienen cuando quiero ejecutarla desde otra PC.
Le he configurado los ODBC para las PC's en donde quiero se ejecute pero manda un mensaje de "ODBC--> MISC connection failed" (MISC es la BD). Para conectarme escribo el siguiente codigo en VB:

cnn.Open ("dsn=CASETA;uid=intranet;pwd=intranet10")

Lo mas extraño, para mi, es que en mi pc si funciona (en esta lo desarrolle) y en otras no.

Que es lo que falta por hacer?? o que estoy haciendo mal??

Quise intentar con la siguiente instruccion:

Set ODBC_Connection = Server.CreateObject("ADODB.Connection")
ODBC_Connection.ConnectionString = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=intranet;Data Source=Aguser09"
ODBC_Connection.Open

pero me marca un error de que le falta el objeto SERVER.
Si alguien me pudiera ayudar lo agradeceria infinitamente.

Muchisisisisimas gracias.

Atte.
Caseta
  #2 (permalink)  
Antiguo 27/01/2004, 09:02
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 20 años, 6 meses
Puntos: 11
recuerda que estas trabajando en visual basic, el codigo que colocaste es de ASP (Server.CreateObject("ADODB.Connection")
). Si vas a conectarte a sql server debes tener instalado en el computador cliente las herramientas cliente de sql server (librerias, drivers). Cuando creas una conexion con vb a sqlserver haces:

'declaras una coneccion
public coneccion as adodb.connection

'luego instancias y abres una conexion con el servidor
set coneccion=new addodb.connection
conneccion.ConnectionString = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=intranet;Data Source=Aguser09"
coneccion.open

recuerda que:
- user id: es el usuario que puede conectarse a sql server, que ha sido creado con permisos sobre alguna base de datos.
- Data source: es el nombre del servidor sql server
- que debe ir tambien el password, si es que el usuario fue creado de ese modo
__________________
Dedicado a proyectos web, actualmente desarrollando un sistema de diseño de flyers online muy fácil de usar.
  #3 (permalink)  
Antiguo 27/01/2004, 20:56
 
Fecha de Ingreso: enero-2004
Mensajes: 33
Antigüedad: 20 años, 3 meses
Puntos: 0
claudiovega:
muchisisisisisisimas gracias por los tips y mas que nada por la ayuda brindada a esta podre e inocente y joven desarrolladora de bases de datos. Lo joven es porque apenas empiezo

Atte.
Lilir
  #4 (permalink)  
Antiguo 27/01/2004, 21:34
 
Fecha de Ingreso: enero-2004
Mensajes: 33
Antigüedad: 20 años, 3 meses
Puntos: 0
Hola claudiovega:

Que crees?? bueno pues compile el codigo que me pasaste, y no marco ningun error de sintaxis, pero no hace lo que quiero.
Hago un recordcount para poder asignar un numero de llave (en vez de un autonumber), y no cuenta los registros de la tabla que le hago referencia,la siguiente instruccion es:

rst.Open "SELECT * FROM caseta_people ", _
coneccion, adOpenKeyset, adLockOptimistic

y a la instruccion que me pasaste le agregue el pass:
Set coneccion = New ADODB.Connection
coneccion.ConnectionString = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=intranet;password =intranet10 ;Data Source=Aguser09"
coneccion.Open

entonces?? que me falta por agregarle?? o porque no esta contando los registros de la tabla??

con la instruccion que tenia (cnn.Open ("dsn=CASETA;uid=intranet;pwd=intranet10") ) lo hacia pero no lo hacia en ninguna otra pc.

disculpa las molestias y lo preguntona, pero apenas soy nueva en esto, y pues el trabajo es el trabajo!!

gracias por la ayuda, tips, referencias, etc., que me puedas brindar

Atte.
Lilir
  #5 (permalink)  
Antiguo 28/01/2004, 08:16
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 20 años, 6 meses
Puntos: 11
hola:

no todas las propiedades y metodos del objeto recordset estan soportadas por todos los proveedores, encuentro raro que sqloledb no soportase dicha caracteristica, pero probé varios trucos y no hubo manera de que contara los registros. Sin embargo, puedes hacer esto:

rst.open "select count(*) as cuantos from caseta",.......

esto te devuelve en el alias cuantos la cantidad de registros, es decir, puedes hacer lo siguiente:

var_long = rst.fields("cuantos") , para obtener los registros
__________________
Dedicado a proyectos web, actualmente desarrollando un sistema de diseño de flyers online muy fácil de usar.
  #6 (permalink)  
Antiguo 28/01/2004, 16:30
 
Fecha de Ingreso: enero-2004
Mensajes: 33
Antigüedad: 20 años, 3 meses
Puntos: 0
hola:
ijole la verdad que me da mucho gusto que gente que sabe tanto pueda y quiera ayudar a nosotros los que no sabemos tanto.
de verdad agradezco tu ayuda y mas que nada por el tiempo que invertiste en eso.
espero no tener que volver a molestarte!!
muchisisisisimas gracias y cuidate mucho!!

Atte.
Lilir
  #7 (permalink)  
Antiguo 13/02/2004, 07:00
 
Fecha de Ingreso: febrero-2004
Mensajes: 1
Antigüedad: 20 años, 3 meses
Puntos: 0
sobre el recordcount

Prueba ha hacer esto:
- MoveLast y despues un MoveFirst
verás como funciona.
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 14:44.