Clarion - Problemas con Clarion 5 y SQL

 
Vista:

Problemas con Clarion 5 y SQL

Publicado por Maria Jose (2 intervenciones) el 04/05/2010 11:37:44
Buenas tardes.

Trabajo en una empresa en España en la que tenemos una aplicación
desarrollada en Clarion 5. Hay un proceso en el que, teniendo la base
de datos en Topspeed, no ha dado ningún problema pero hemos traspasado
a un cliente a Sql Server 2008 y el proceso ha empezado a dar
problemas.

Los pasos del proceso de una ventana son:
1. Se abren bastantes ficheros.
2. Se realizan cálculos y modificaciones en ellos dentro de un Logout.
3. Se cierran estos ficheros.
4. Se abren otros ficheros y se inicializan variables globales.
5. Se realizan cálculos y modificaciones en ellos dentro de un nuevo
Logout.
6. Se cierran estos ficheros.
7. Se abren los ficheros del punto 1.

La primera vez que se realiza el proceso no hay problemas, pero la
segunda o tercera vez que se lanza (sin haber cerrado la ventana) da
un error de Windows XP unas veces del c5runx.dll y otras del
c5mssx.dll (ver los archivos adjuntos del visor de sucesos). En el
c5log.txt me escribe, a veces:

Error: Corrupt block/Unknown block type freed. This is probably
caused by freeing a static variable or a bad pointer.
00858bd0
442e5350

Con el error me cierra el programa.

He puesto mensajes por el código y falla siempre en el mismo sitio, en
la primera instrucción “Close” del punto 3, al realizarla, pero no se
captura ningún error después.

He chequeado la base de datos (instrucción DBCC CHECKDB de sql) y está
perfecta.

¿Tienen alguna idea de por qué se produce este error? ¿Hay alguna
incompatibilidad entre Clarion5 y SQL server 2008?

Un saludo. 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
sin imagen de perfil

RE:Problemas con Clarion 5 y SQL

Publicado por Marcelo Madelon (572 intervenciones) el 06/05/2010 16:14:50
Maria Jose
Tengo una rutina parecida y no tengo ese problema.

Podes probar agregando CLEAR y SET despues de cada apertura.

Access:Cliente.Open !Abre el Archivo Cliente
CLEAR(CLI:Record)! Limpia la estructura del registro
SET(Cliente) ! el puntero se para en el primer registro de ese archivo
! Código del programa
Access:Cliente.Close !Cierra el archivo Cliente

! Para leer, modificar, borrar uso el siguiente código

IF Access:Cliente.Insert() ! Agrega un registro y si falla muestra un mensaje
MESSAGE('No Graba Registro en Clientes....','Mensaje del sistema',ICON:Exclamation)
END
...................
IF Access:Cliente.Update() ! Modifica
MESSAGE('No Regraba Cliente','Mensaje del Sistema',ICON:Exclamation)
END
....................
Delete(Cliente) ! Borra
IF ErrorCode()
MESSAGE('Error al Borrar Cliente ','Mensaje del Sistema',ICON:Exclamation)
END
...................

! Leer Agregar Modificar Borrar un archivo
Access:Tabla.Insert() ! Agrega
Access:Tabla.Update() ! Modifica
Access:Tabla.Open() ! Abre
Access:Tabla.Close() ! Cierra
Access:Tabla.Next() ! Lee Secuencial desde el inicio hasta el final
Access:Tabla.Previous() ! Lee Secuencial desde el Final hasta el principio
Access:Tabla.Fetch(clave) ! Lee a partir de una clave

SET(Cliente) !Se posiciona el el primer registro
SET(Clave,Clave) se ordenan los registros a partir de esa clave y se posiciona en el primero que encuentra. Si queres un ordenamiento descendente tenes que agregar el signo - (menos)

CLI:Nombre = 'GARCIA, MARIA JOSE'
SET(CLI:KeyNombre,CLI:KeyNombre) ! Te lo ordena alfabéticamente y comienza
la lectura a partir de 'GARCIA, MARIA JOSE'. Si no existe te mostrará el que sigue en orden alfabética
LOOP UNTIL Access:Clientes.Next() ! Lee secuencialmente
! tu código del programa
End ! Loop

¿Usas el ROLLBACK ? Es recomendable para evitar el perjuicio de una actualización truncada
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

Problemas con Clarion 5 y SQL

Publicado por Marisol Diez (1 intervención) el 29/03/2011 13:15:12
Buenos días,

Trabajo en un empresa de Zaragoza (España) con clarion-5 y estamos migrando una aplicación a SQL y nos estamos encontrando con un problema muy parecido al que expones en tu correo.

Te agradeceríamos que nos indicaras la manera en que lo has solucionado, para ver si nosotros aquí podemos aplicar el mismo procedimiento.

Esperamos tu respuesta

Un saludo y Gracias.
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

Problemas con Clarion 5 y SQL

Publicado por Sergio (1 intervención) el 15/10/2015 17:19:30
Buenas!

Yo me he encontrado con este problema y en mi caso era por columnas con contenido NULL , a Clarion no le gustan nada y da este problema, eliminados los NULL y cambiados por los valores por defecto, problema resuelto

Espero que os sirva de ayuda
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

Problemas con Clarion 5 y SQL

Publicado por Joel (6 intervenciones) el 15/08/2011 07:47:41
No puedes montar un Logout sobre tablas de tipo MSSQL declaradas en el dicionario ya que estas manejando la tabla dentro de una base de datos, no como archivo en el caso de TPS
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

Problemas con Clarion 5 y SQL

Publicado por jose luis (2 intervenciones) el 16/11/2011 20:40:21
tengo mi codigo asi
APMPED:FolioEntrada=Fad:FolioEntrada
Set(APMPED:KeyFolioEntrada,APMPED:KeyFolioEntrada)
loop
next(APMPED)
pero no me hace el recorrido de los registros solo me toma el ultimo y si le pongo en el codigo
APMPED:FolioEntrada=Fad:FolioEntrada
Set(APMPED:KeyFolioEntrada,APMPED:KeyFolioEntrada)
loop until Access:APMPED.next()

marca un error de field no found next()
me pueden ayudar porfavor gracias
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

Problemas con Clarion 5 y SQL

Publicado por jose luis (2 intervenciones) el 16/11/2011 20:58:05
como puedo hacer un for en clarion para que vaya colocando cada valor segun su poscicion en la tabla hasta que termine claro se hara una condicion incicando que solo repita los de un mismo folio

gracias
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