Problemas con conexiones ado

Como estás
He visto tus respuestas y me han parecido muy acertadas y muy claras. Espero me puedas ayudar:
Estoy desarrollando una aplicación manejada con el DED. La tengo en una red con un servidor con SQL 7.0 y Visual Basic 6.0 en mi Estación de trabajo. Tengo unos formularios de consulta de varias tablas (a veces 2 y a veces 3) con ADODC Y DATAGRIDS. Para explicarlo mejor: uno de los formularios maneja 2 tablas, cada una, con ADODC. El primer adodc muestra unos campos de la primera tabla y el segundo adodc da origen a un DATAGRID con campos de la segunda tabla. En el primero tengo la propiedad connection string con una cadena de conexión así :
FILE NAME=C:\Subsidio\ConTraEmp.dsn
como record source:
Select * from dbo.empresas;
Y en el segundo adodc tengo la propiedad connection string con un origen de conexión (usar archivo de vinculo a datos) con la misma cadena anteriormente mencionada.
En record source :
SELECT IdTrabajador, Apellidos, Nombres, FechaAfiliacion, FechaNacimiento, EstadoCivil, Sexo, Categoria, sueldo, NumeroBenef, CuotasOrd, cuotasesp, status, AñoSuspension, Messuspension,CobroSimultaneo FROM dbo.Afiliados ORDER by Apellidos;
-----------------------------------------------------------------
Tengo dentro de los procedimientos lo siguiente:
------------------
Option Explicit
Private Sub Adodc1_EndOfRecordset(fMoreData As Boolean, adStatus As ADODB.EventStatusEnum, ByVal pRecordset As ADODB.Recordset)
Adodc1.Recordset.MoveLast
End Sub
Private Sub Adodc1_MoveComplete(ByVal adReason As ADODB.EventReasonEnum, ByVal pError As ADODB.Error, adStatus As ADODB.EventStatusEnum, ByVal pRecordset As ADODB.Recordset)
'
Dim strSQL As String
Dim strClave As String
'
' Cree una selección por mostrar en la cuadrícula
If "" & Adodc1.Recordset.Fields("IdEmpresa") = "" Then
strClave = "0"
Else
strClave = Adodc1.Recordset.Fields("IdEmpresa")
End If
'
strSQL = "SELECT IdTrabajador, Apellidos,Nombres, " _
& "FechaAfiliacion, FechaNacimiento, sexo, Categoria, Sueldo, CuotasOrd, cuotasEsp, status, CobroSimultaneo, añoSuspension, mesSuspension " _
& " from dbo.afiliados WHERE IdEmpresa=" & strClave
Adodc2.RecordSource = strSQL ' Asigne el nuevo origen de registros
Adodc2.Refresh ' Actualice su información
Set Dbgrid.DataSource = Adodc2
Dbgrid. ReBind ' Actualice la cuadrícula
'
End Sub
-----------------
Todo esto me funciona bien en este equipo. Pero cuando llevo esta aplicación a mi computador personal que también tiene SQL 7.0 Y VISUAL BASIC 6.0; pero que tiene un nombre de servidor de SQL diferente me da el siguiente error de compilación en el evento :
Private Sub Adodc1_EndOfRecordset :
La declaración del procedimiento no coincide con la descripción del evento o procedimiento del mismo nombre.
Preguntas:
.- ¿Qué puede estar pasando?
.- ¿Puedo cambiar el nombre de mi servidor de SQL sin reinstalarlo?
. - ¿Puedo cambiar el nombre de mi máquina sin instalar el sistema operativo? (Windows/98 es el que tengo en este momento.)
.- ¿Debo trabajar con otras conexiones estos formularios?
Nota: Antes funcionaba en mi equipo, pero después de que tuve que reinstalar el sistema operativo y todo lo demás; no volvió a funcionar. Y el enredo que se me presentó fue al dar el nombre a la maquina y al servidor de SQL.
Si se necesitan más aclaraciones.

1 Respuesta

Respuesta
1
Feliz día!
Bien he observado el código y como usted justifica la estructura del código no produce tal error en la maquina 1, sino en una maquina 2... Bien vayamos a la parte software de la maquina 2:
Fíjese bien en la version de Visual Basic 6.0 que tenga instalado quizás la maquina 1 le hayan instalado una version de mejora (SERVICE PACK) aveces se producen este tipo de incoherencias... al cargar una aplicación en un Visual Basic sin Service Pack que en una version de visual Basic mejorado (con Service Pack), EN CONCLUSIÓN: Fíjese en la VErsion interna del Visual Basic... Esto es... abra Vb, [Menu ayuda] y luego [Acerca de]>> fíjese que en ambas maquinas las versiones de VB... ambas coincidan.
- En cuanto al nombre del Servidor SQL, trabajo con el lenguaje SQL, pero no tengo a mi alcance la forma en que se debe configurar un Tipo de Servidor SQL, ya que uso las Sentencias SQL como código incrustado dentro de Vb, me temo no poder ayudarte con el servidor SQL... desconozco la forma de cambiar el nombre del servidor de SQL, lo que si es cierto es que en el proceso de instalación ese parámetro es solicitado.
- Para cambiar el nombre de la maquina sin reinstalar el sistema operativo... Vaya a panel de control, doble click en el icono RED y luego seleccione la ficha IDENTIFICACIÓN...>>>en el campo NOMBRE DE PC: puedes cambiar el nombre de la maquina.
- Bien, debe fijarse también en el Origen de Datos DNS, quizás esta olvidando algún detalle dentro del archivo DSN.
Bien revisa estos detalles, de lo contrario cuéntame como te fue!
Éxitos!
Rodrigo
Como estás Rodrigo.
Leí tu respuesta y te la agradezco grandemente. Sin embargo, te voy a hacer otra solicitud y, si puedes ayudarme, me sería de gran utilidad:
Veo, que tu forma de trabajar, lo mismo que las explicaciones que das son muy interesantes y muy explícitas. Por eso, me gustaría que me pudieras enviar algunos ejemplos; no importa si son sencillos o complejos. Para mi, la mejor forma de aprender es analizando algo ya hecho; o preguntando a quien sabe; y yo vivo en una ciudad pequeña y no se consigue fácilmente a alguien que domine el Visual basic sobre todo trabajando además con SQL, ya que la mayoría de quienes trabajan aquí en Programación se han orientado hacia otros lenguajes. Te cuento que a veces me gasto días enteros luchando con los manuales y con las ayudas de Visual basic, para poder solucionar algún problema y a veces no lo puedo solucionar.
Por lo pronto te solicito un ejemplo que contenga uno o más Datagrids y que presente los datos ordenados; ya que en los formularios que tengo, no he podido lograrlo a pesar que en la propiedad record source le digo ORDER BY (XXX).
De antemano, te agradezco tu esfuerzo.
Ramon!
Con gusto! Lo haré! Dame esta semana y te envío unos buenos ejemplos!
Éxitos!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas