Clarion - como programar en clarion con mysql

 
Vista:

como programar en clarion con mysql

Publicado por guillermo (42 intervenciones) el 04/01/2013 22:52:36
Hola a todos, estoy comenzando a usar clarion con mysql a través de ODBC. Mi duda es como hago las consultas en lenguaje mysql en el app de clarion, por ejemplo para generar un browse o un report.

Muchas gracias!!!!

Saludos
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

como programar en clarion con mysql

Publicado por Francisco J. Valencia (87 intervenciones) el 22/01/2013 17:32:25
Guillermo:

Tu primera opción es seguir haciendo tus reportes y consultas como si usaras tps. Es transparente, no cambias tu código. No aprovechas todas las características de mysql pero ya tienes una bd estable.

La segunda es usar sentencias sql para acelerar tus programas.

Por ejemplo, en los reportes:
Investiga la teoría de la tabla boba.
Lo que yo hago es realizar una consulta y el resultado lo guardo en una queue, para despues imprimir la queue.

El código en el init es
SETCURSOR(CURSOR:Wait)
LOC:SQL = 'SELECT ORDETA.numerocontrol, ORDENES.Semana, ORDENES.fechacaptura, COUNT(DISTINCT ORDETA.numerocontrol, ACTIVIDA.diametro) AS REPETIDOS ' & |
' FROM ordeta, activida, ordenes ' & |
' WHERE ORDETA.IdActividad = ACTIVIDA.IdActividad ' & |
' AND ORDETA.numerocontrol = ORDENES.numerocontrol ' & |
' AND ORDENES.Semana = ' & LOC:Semana & |
' GROUP BY ORDETA.numerocontrol ' & |
' HAVING REPETIDOS > 1 '
!!' ORDER BY REPETIDOS DESC LIMIT 20'
TablaBoba{prop:sql} = LOC:SQL
IF ERRORCODE() THEN STOP( FILEERROR()) end
FREE(QREPORTE)
loop
NEXT(TablaBoba)
if ERRORCODE() then break end
clear(QREPORTE)
QRE:NumeroControl = CLIP(TAB:C01)
QRE:Semana = deformat(TAB:C02)
QRE:FechaCaptura = deformat(TAB:C03,@D10-)
QRE:Total = deformat(TAB:C04)
ADD(QREPORTE)
END
sort(QREPORTE,QRE:NumeroControl)
SETCURSOR()

En los browses, una maneja de aprovechar mysql es con los filtros, por ejemplo
LlenaFiltro ROUTINE
DATA
CODE
if (LOC:IdDepartamento = '' or LOC:IdDepartamento = 'TODOS') and (LOC:IdSubdepa = '' or LOC:IdSubdepa = 'TODOS') and LOC:Entrada = ''
brw1.SetFilter('')

elsif (LOC:IdDepartamento = '' or LOC:IdDepartamento = 'TODOS') and (LOC:IdSubdepa = '' or LOC:IdSubdepa = 'TODOS') and LOC:Entrada <> ''
brw1.SetFilter('SQL(Descripcion like(''%'& CLIP(LOC:Entrada)&'%''))')

elsif LOC:IdDepartamento <> 'TODOS' and LOC:IdSubdepa = 'TODOS' and LOC:Entrada = ''
brw1.SetFilter('SQL(IdSubdepa IN (SELECT IdSubdepa FROM DEPASUB WHERE IdDepartamento = ' & chr(39)& LOC:IdDepartamento & chr(39)& '))')

elsif LOC:IdDepartamento <> 'TODOS' and LOC:IdSubdepa = 'TODOS' and LOC:Entrada <> ''
brw1.SetFilter('SQL(IdSubdepa IN (SELECT IdSubdepa FROM DEPASUB WHERE IdDepartamento = ' & chr(39)& LOC:IdDepartamento & chr(39)& ')) AND SQL(Descripcion like(''%'& CLIP(LOC:Entrada)&'%'')) ')

elsif LOC:IdDepartamento <> 'TODOS' and LOC:IdSubdepa <> 'TODOS' and LOC:Entrada = ''
brw1.SetFilter('SQL(IdSubdepa = ' & chr(39)& LOC:IdSubdepa & chr(39)& ')')

elsif LOC:IdDepartamento <> 'TODOS' and LOC:IdSubdepa <> 'TODOS' and LOC:Entrada <> ''
brw1.SetFilter(' SQL(IdSubdepa = ' & chr(39)& LOC:IdSubdepa & chr(39)& ') AND SQL(Descripcion like(''%'& CLIP(LOC:Entrada)&'%'')) ')

else
!! do llenabrowse
end
ThisWindow.Reset(1)
EXIT

saludos y espero que esta información te sea útil.
Atte
Francisco
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

como programar en clarion con mysql

Publicado por guillermo (42 intervenciones) el 22/01/2013 19:38:14
Muchisimas gracias Francisco!!!! Apenas pueda lo voy a poner en practica y te cuento como me va.

Saludos!!!
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

como programar en clarion con mysql

Publicado por guillermo (42 intervenciones) el 28/01/2013 22:55:04
Hola Francisco, hoy comence a desarrollar un sistema en clarion 6.3 con mysql y me encuentro con el primer problema. Tengo una tabla "clientes" con un campo id tipo int, con autoincremental y otro nombre varchar de 40. La base tiene cotejamiento utf8_spanish_ci. El problema es que al intentar ingresar un registro con la letra ñ me corta el nombre y me lo guarda hasta la letra ñ solamente. Intente cargar el registro a través de un administrador de bd y lo carga perfectamente. Podrias decirme que estoy haciendo mal?

muchas gracias de antemano

saludos
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

como programar en clarion con mysql

Publicado por Francisco J. Valencia (87 intervenciones) el 29/01/2013 20:12:49
Guillermo:

Yo uso el default que me da la instalación y no tengo problema.

charset latin1
collation latin1_swedish_ci
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

como programar en clarion con mysql

Publicado por guillermo (42 intervenciones) el 29/01/2013 23:38:10
Muchas gracias!!! funciono perfecto!!! Otra consulta, que version de mysql usas y de donde la descargaste, yo estoy usando la que viene con app serv porque la tenia de algunas cosas que hice con php pero no se si es lo correcto. Por lo que vi es la 5.0.51b GLP.

Muchas gracias!!

Saludos
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

como programar en clarion con mysql

Publicado por Francisco J. Valencia (87 intervenciones) el 30/01/2013 00:50:40
Hace tiempo descargué la versión community server 5.1.33
de la página http://www.mysql.com/downloads/

Es la que uso. Tiene la ventaja que puedes configurar la instalación para diferentes ambientes como desarrollo o servidor dedicado.

mi skype es francisco punto javier punto valencia
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

como programar en clarion con mysql

Publicado por guillermo (42 intervenciones) el 31/01/2013 16:01:08
Muchas gracias por tu ayuda, mi skype es guillermo.lauretti, ahora te agrego.

saludos
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

como programar en clarion con mysql

Publicado por Agustin (1 intervención) el 15/06/2017 16:03:42
Francisco:
Me podrías pasar un ejemplo de la cadena de conexión que iría en el diccionario de la aplicación?
Muchas 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