Pregunta: | 6852 - PROBLEMAS AL CONECTAR CON SQL SERVER |
Autor: | German Espinoza |
Hola programdores de la web del programador. Quiero me den una ayuda estoy realizando un programa desde Visual Basic 5.0
pero primero comense a probar el ejemplo del libro el Aupor es Alfonso gonzales y es de cliente servidor, el programa no da error pero no realiza la consulta de actualizacion he buscado de todas forma y nada Bueno el libro dice que se conecta a una base de datos de Access a traves de la fuente de odbc y yo la estoy haciendo a una fuente de odbc pero para una base de datos de SQL Server ya que ese es el programa es el que tengo en el servidor y el codigoes el siguiente: Dim rc As Integer Dim db As Database Dim henv As Long Dim oSQLServer As Object Dim Coleccion As Object Dim disp As Object Dim hdbc As Long Dim hstmt As Long Private Sub conectar_Click() rc = SQLAllocEnv(henv) rc = SQLAllocConnect(henv, hdbc) rc = SQLConnect(hdbc, \"datos remotos\", SQL_NTS, \"\", 0, \"\", 0) If rc = SQL_ERROR Then MsgBox (\"No puedo conectar con la fuente\") rc = SQLFreeConnect(hdbc) rc = SQLFreeEnv(henv) Exit Sub End If rc = SQLAllocStmt(hdbc, hstmt) comandoSQL$ = \"UPDATE anag SET aedad=edad+1\" rc = SQLExecDirect(hstmt, comandoSQL$, SQL_NTS) rc = SQLFreeStmt(hstmt, SQL_DROP) rc = SQLDisconnect(hdbc) rc = SQLFreeConnect(hdbc) rc = SQLFreeEnv(henv) End Sub Nota: las declaraciones de las funciones API las tengo en un modulo aparte a como lo indica el libro, Hay me disculpan por si los molesto pero se que ustedes son las persona que puedo consultar. Adios y que tenga un buen dia y Buena suerte. Atte% |
Respuesta: | Jose Reynaldo Chavarria Quiñonez |
Hola German:
Yo tengo varios Años trabajando con SQL Server y la foma mas facil y eficiente de conectarte es usando ADO (Active data Objects)sin embargo esto viene hasta VB6.0 en tu caso con VB5.0 te aconsejo que uses RDO (Remote Data Objects) para esto necesitas un DSN (Data Source Name) para sql server y que apunte a tu servidor A continuacion te doy un ejemplo de coneccion usando RDO 'Lo primero es agregar en las referencias del proyecto la referencia para la libreria de "Microsoft Remote Data Object" 'en un modulo si lo queres publico Public RdoEnv As rdoEnvironment Public RsSet As rdoResultset Public RdoCnn As rdoConnection 'En donde quieras hacer conexion Set RdoEnv = rdoEnvironments(0) RdoEnv.LoginTimeout = 15 'Tiempo en segundos strConnect= "DSN=MyDSN;SERVER=MySQLServer;UID=sa;PWD=; APP=MyAplication;WSID=JCHAVARRIA;DATABASE=MyDatabase" Set RdoCnn = RdoEnv.OpenConnection("MyDSN","", , strConnect) 'con esto yo puedo ejecutar comandos usando Execute 'Ejemplo Dim strSQL as String strSQL="Update MyTable SET MyField = 'MyValue'" RdoCnn.Execute(strSQL) 'TambienPuedo Jalar Informacion haciendo uso del Objeto rdoResultset strSQL = "SEELECT * FROM MyTable" Set RsSet = RdoCnn.OpenResultset(StrSQL, rdOpenKeySet, rdConcurLock) 'Posteriormente utiliza el Objeto rsSet |