Visual Basic - Error con 'DataSource' del objeto 'ITrueDBGridCtrl

Life is soft - evento anual de software empresarial
 
Vista:

Error con 'DataSource' del objeto 'ITrueDBGridCtrl

Publicado por Merche (35 intervenciones) el 03/01/2007 09:06:14
Estoy haciendo una Aplicación en VB6 que conecta con SQL mediante ADO.

Cuando conecto el TrueDBGrid con el Recordset me da el siguiente error.

Error en el método 'DataSource' del objeto 'ITrueDBGridCtrl'
Err.number=-2147417848

el codigo es el siguiente:

Dim db As Database

Set db = New ADODB.Connection
db.Provider = "SQLOLEDB"
db.ConnectionString = " Provider=SQLOLEDB.1;" & _
"TRUSTED_CONNECTION=YES;" & _
"Initial Catalog=" & RUTABD & ";" & _
"Data Source=" & NombreServidor & ""

dim RsDatos as ADODB.Recordset
Set RsDatos = New ADODB.Recordset
RsDatos.CursorLocation = adUseClient
RsDatos.LockType = adLockOptimistic

RsDatos.Open "Select * from TipoCliente where empresa=" & CODIGOEMPRESA & " order by Codigo", db
Set tdbg1.DataSource = RsDatos

Pero no siempre me da el error.
Cuando le doy a aceptar y vuelvo a ejecutar la consulta me da el siguiente error:

La instrucción en "0x132dc57a" hace referencia a la memoria en "0x134eaf70". La memoria no se puede "read"

Haga clic en Aceptar para finalizar este programa

y se me sale del programa.

Agradecería alguna ayuda.
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

RE:Error con 'DataSource' del objeto 'ITrueDBGr

Publicado por Merche (35 intervenciones) el 03/01/2007 09:39:03
Respecto al mensaje anterior se me ha olvidado poner que detrás del set db
pongo
db.CommandTimeout = 0
db.Open
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

RE:Error con 'DataSource' del objeto 'ITrueDBGr

Publicado por Daniel Pro (11 intervenciones) el 03/01/2007 15:45:41
Hermano me parece que se debe a un error en tu ordenador, podria ser un error de lectura en una de las librerias, intenta probar en otra Pc a ver que sucede pues no me parece que sea un error de conexion, tu programación la veo correcta y más bien creo que es uno de esos errores típicos d windows.
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

RE:Error con 'DataSource' del objeto 'ITrueDBGr

Publicado por Merche (35 intervenciones) el 03/01/2007 16:03:09
Ya he probado en varios Pc y sigue pasando lo mismo. falla cuando quiere.
Mi Pc tiene Windows Server 2003 y he probado con otros que tienen otro sistema Operativo. La diferencia es que en cada uno el mensaje de error es distinto pero al final el programa se cuelga.
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

RE:Error con 'DataSource' del objeto 'ITrueDBGr

Publicado por Daniel Pro (11 intervenciones) el 03/01/2007 16:31:50
Realiza una prueba en otra Pc pero en este caso no lo pruebes con el proyecto que tienes, sino que diseña uno nuevo en la otra Pc es decir desde cero y copia y pega la programación que tienes en el proyecto original, luego crea manualmente los objetos en los formularios y ejecuta a ver si ocurre el mismo error, esto te lo dijo porque puede ser que el proyecto que estes ejecutando este corrupto, posiblemente no te de el error, pero si te lo da lo mejor seria que quitaras el TrueDdGrid en ambos proyectos original y el de nuevo y sustituyeras por un DataGrid eso seria para probar si el problema te lo esta dando el TrueDbGrid (cuando en programación hay un problema del cual no sabemos ni tenemos información lo mejor es probar todas las soluciones posibles) recuerda que este es un objeto comercial no propio de Visual Basic (aunque se que es muy bueno). Prueba y comentame los resultados.
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

RE:Error con 'DataSource' del objeto 'ITrueDBGr

Publicado por Merche (35 intervenciones) el 03/01/2007 18:55:19
Este problema me lleva volviendo loca desde hace 2 años. La primera vez que me dió el error quité el TrueDbGrid y lo volví a hacer al principio no fallaba pero luego volvió a fallar. Se que el problema está en el TrueDbGrid porque a veces con solo pinchar una de sus filas se me cuelga sin estar ejecutando ningún código. No puedo cambiarlo por un DataGrid porque necesito mostrar los datos en celdas.
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

RE:Error con 'DataSource' del objeto 'ITrueDBGr

Publicado por Merche (35 intervenciones) el 03/01/2007 19:04:22
No he utilizado nunca el Dbgrid. No se si se pueden hacer las mismas cosas que en el TrueDBGrid de todas formas cambiar ahora al Dbgrid me supondría modificar muchísimos formularios.
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

RE:Error con 'DataSource' del objeto 'ITrueDBGr

Publicado por Merche (35 intervenciones) el 04/01/2007 09:33:46
Me acabo de instalar una nueva versión de tdbg7.ocx (en concreto TrueDBGrid7_7.0.0303)
y me sigue dando error.
Cuando acceso al Visor de sucesos me da el siguiente error
Aplicación con errores: VB6.EXE, versión: 6.0.89.88, módulo con error: todg7.ocx, versión 7.0.0.303, dirección de error 0x00069a34.

Para obtener más información, vea el Centro de ayuda y soporte técnico en http://go.microsoft.com/fwlink/events.asp.

Por favor si alguien me pudiera ayudar
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

RE:Error con 'DataSource' del objeto 'ITrueDBGr

Publicado por Daniel Pro (11 intervenciones) el 05/01/2007 03:06:52
Como ya lo explicastes el error entonces se debe al TrueDbGrid, deberias de instalar la versión más reciente de este control, al parecer esta muy mejorada es la versión Pro 8.0, recuerda que cuando lo vayas a usar debes quitar los TrueDbGrid de los formularios por seguridad, agregar el nuevo componente a tu proyecto y insertar manualmente los objetos.

Tambien deberias pasarle un antivirus bueno a estos archivos Ocx y hasta a tu Pc ya que hay muchos virus que se insertan en los archivos o modifican el registro de windows silenciosamente y hacen funcionar mal al ordenador.

Muchas veces tambien sucede que elementos comerciales como lo son los TrueDbGrid no estan totalmente bien desarrollados, como te dije antes encuentra la ultima versión e instalala a ver si se soluciona el problema.

Verifica con puntos de interrupción todo tu codigo línea por línea y en todos los sub procedimientos de los formularios, puede ser que algun eventos change, lostfocus, validate u otro se ejecute en medio de la conexión con el TrueDbGrid y sin querer provoque un error en la lectura de paginación de tu Pc debido a un exceso de lectura de memoria, suelen fallar ordenadores hasta Pentium IV cuando hay multiples tareas.

Prueba lo antes expuesto y comentame los resultados nos vemos...
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

RE:Error con 'DataSource' del objeto 'ITrueDBGr

Publicado por Daniel Pro (11 intervenciones) el 05/01/2007 03:18:19
Por cierto me falto comentarte, deberias actualizar el Visual Basic con la ultima versión de su servi pack, no estoy seguro pero creo que es la 6.0 corrige muchos problemas del visual basic, esta es una opción a probar quizas esto te corrija el problema y como te dije buscate la ultima versión del TruDbGrid es muy mejorada.
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

RE:Error con 'DataSource' del objeto 'ITrueDBGr

Publicado por Merche (35 intervenciones) el 05/01/2007 08:34:32
Ya me instalé hace tiempo una Demo del TrueDbGrid 8 para ver si funcionaba. Lo que no hice es quitar los TrueDbgrid de los Formularios y volverlos a poner porque dentro del mismo proyecto tengo mas de 100 formularios. Y seguía fallando pero menos veces.

La última versión de su servi pack ya la tengo.

Tampoco probé a pasar el antivirus.

Lo probaré y te digo
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

RE:Error con 'DataSource' del objeto 'ITrueDBGr

Publicado por Daniel Pro (11 intervenciones) el 05/01/2007 13:59:21
Correcto quita los TrueDbGrid cuando agreges la actualización del Ocx e insertalos nuevamente de forma manual, mandame una pequeña base de datos puede ser en Access con el control ocx del TrueDbGrid y un pequeño formulario, asegurate de que ese proyectico mande el error de manera que yo pueda revisarlo, asi buscare mejor cual es el origen del problema.
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

RE:Error con 'DataSource' del objeto 'ITrueDBGr

Publicado por Merche (35 intervenciones) el 05/01/2007 17:42:32
He probado a sacar un formulario que fallaba a un proyecto nuevo sin actualizar
la ocx y en ese nuevo proyecto no falla.

Es bastante complicado porque solo falla algunas veces. Normalmente ocurre cuando tengo el pc bastante recargado por entrar y salir a varios formularios del proyecto.Cuando salgo de un formulario suelo poner set form=nothing para que no quede nada abierto.

Supongo que ahora no falla en el nuevo proyecto, porque no carga tantos controles.

Me falta pasar el antivirus
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

RE:Error con 'DataSource' del objeto 'ITrueDBGr

Publicado por DanielPro (11 intervenciones) el 05/01/2007 18:48:21
Yo no uso variables de tipo Database porque en una ocasión me dieron problemas, sustitui por variables de tipo New ADODB.Connection y New ADODB.Recordset y no me direron errores para lo que necesitaba en ese momento. Utiliza este código en vez del que tenias:

Dim db As New ADODB.Connection

db.Provider = "SQLOLEDB" ------->Yo no pongo esta línea y funciona bien ya esta en el ConnectionString
db.ConnectionString = "Provider=SQLOLEDB.1;" & _
"TRUSTED_CONNECTION=YES;" & _
"Initial Catalog=" & RUTABD & ";" & _
"Data Source=" & NombreServidor & ""

Dim RsDatos As New ADODB.Recordset

RsDatos.CursorLocation = adUseClient
RsDatos.LockType = adLockOptimistic

RsDatos.Open "Select * from TipoCliente where empresa = " & CODIGOEMPRESA & " order by Codigo", db
Set tdbg1.DataSource = RsDatos

Echele un vistazo a esta página web http://support.microsoft.com/kb/302995/es Explica cuales son los Servi Pack que actualizan al proveedor de SqlServer y corrigen errores de perdida de memoria.

Mandame el Proyectico como te dije con el ocx y access asi lo probare con programas que tengo con muchos formularios
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

RE:Error con 'DataSource' del objeto 'ITrueDBGr

Publicado por Daniel Pro (11 intervenciones) el 05/01/2007 19:21:45
Muy importante cierra las conexiones en todos los formularios de la siguiente forma para que no queden abiertas en memoria por si acaso (Donde colocarás la programación que te di), primero el recordset y luego la conexión:

RsDatos.Close
db.Close

El lugar donde deben quedar estas dos líneas de programación dependera de donde declares las variables Dim db As New ADODB.Connection y Dim RsDatos As New ADODB.Recordset, si la declarás dentro de un subprocedimiento deberias colocarlas al final de ese subprocedimiento antes del End Sub.
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

RE:Error con 'DataSource' del objeto 'ITrueDBGr

Publicado por Merche (35 intervenciones) el 10/01/2007 18:59:52
He intentado sacar un formulario que tengo en Access 2003 y que suele fallar a un proyecto nuevo pero a partir de ahí ya no me vuelve a fallar.
Otra cosa que me sucede es que cuando pincho en modo diseño varios botones a la vez (Con la tecla de mayúsculas) y luego vuelvo a pinchar uno que ya estaba seleccionado, en vez de quitarlo de la selección me da un error parecido al del grid y se me sale del programa. Cuando les quito la propiedad picture ya no me vuelve a pasar. Debe ser un problema de memoria.

He consultado la página que me pusiste y pone que actualice SQL con un Servi Pack pero si fuese problema de SQL Server no fallaría con Acces. En Visual Basic tengo la última versión de Servi Pack
ya no se si puede ser problema del SQL, del Access, Visual Basic, TrueDBGrid o qué
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

RE:Error con 'DataSource' del objeto 'ITrueDBGr

Publicado por Daniel Pro (11 intervenciones) el 11/01/2007 08:07:12
No te desanimes, a problemas grandes soluciones grandes, el error ocurre porque parece que tu proyecto es muy grande es decir tiene demasiados objetos y ya tu Pc se quedo pequeña ante esto, prueba ese proyecto en una maquina muy potente, el error es del sistema operativo y sucede cuando intenta leer y procesar información de todos esos objetos que hay en tu proyecto (tienes más de 100 formularios imaginate), intenta alivianar el uso de memoria de tu Pc y veras que sera menos la cantidad de veces que sale el error, no es una solución ideal pero por lo menos ya te daras cuenta al probar que ese es el misterioso origen de este rollo, es más ya te has dado cuenta por ti misma ya que un error que te ocurre en ese proyecto con tantos formularios, al extraer ese formulario y procesar por separado no da el error, no te desanimes más bien sientete muy orgullosa de haber realizado tan mostroso sistema estoy seguro de que son pocos los que han hecho algo tan Grande!!!
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

RE:Error con 'DataSource' del objeto 'ITrueDBGr

Publicado por Merche (35 intervenciones) el 11/01/2007 08:41:30
Muchas gracias. El problema es que cuando hago un ejecutable y lo llevo a otras máquinas mas potentes también falla con distintos sistemas operativos.
¿Eso es normal?
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

RE:Error con 'DataSource' del objeto 'ITrueDBGr

Publicado por Daniel Pro (11 intervenciones) el 15/01/2007 06:23:59
Has lo que te dije, quita las variables DataBase y usa Adodb, tienes que asegurarte de cerrar la conexion al cerrar los formularios (primero el recordset y luego la conexion), es posible que queden conexiones abiertas a la base de datos y de alli provenga el error de lectura de memoria por sobrecarga, otra cosa es que pruebes tambien quitando el visual basic y lo reistales a ver si se soluciona el problema, prueba poner puntos de interrupción en cada linea donde actue el TrueDbGrid para ver donde ocurre el problema, intenta actualizar el ocx a la version más reciente y por lo que preguntas, pues no es normal que mande error en otras maquinas, hay un defecto en el proyecto o en el TrueDbGrid.

Podrias probar tambien, limpiar los datos almacenados en la memoria ram del ordenador cada vez que abras algun formulario, buscate una programación para esto con el objeto de tener memoria limpia cada vez que se abran las ventanas de tu proyecto.

Trata de que tu proyecto se ejecute usando pocos recursos del sistema, intenta alivianar más los formularios pues parece un error de lectura de la memoria, creo que se puede solucionar buscando la forma que tu programa use menos memoria y recursos del sistema operativo.
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