Clarion - Clarion 8 - Firebird

 
Vista:
sin imagen de perfil

Clarion 8 - Firebird

Publicado por Marco (155 intervenciones) el 18/01/2014 21:32:24
Hola a todos estoy trabajando con Clarion 8 y Firebird con la técnica de tabla boba para las cargas de cabecera y detalle.
Los registros me lo graban perfectamente, pero cuando no me trae el detalle cuando quiero hacer modificaciones, a continuación paso el código que utilizo para ver si me pueden dar una ayudita:

respuesta{Prop:SQL}='select d.id_producto,p.descripcion,d.porcentaje_iva,d.cantidad,d.precio,d.exenta,d.iva_incluido5,d.gravada5,d.iva5, d.iva_inlcuido10, d.gravada10, d.iva10,d.total,d.mueve_stock,d.precio_costo from compras_detalle d, productos p where d.id_producto = p.id_producto and d.id_compra = '&clip(COMCAB:ID_COMPRA)&' order by d.id_detalle;'
set(respuesta)
LOOP
next(respuesta)
if errorcode() then break.
clear(AUX:record)
AUX:id_producto=RESP:CAMPO1
AUX:descripcion=RESP:CAMPO2
AUX:porcentaje_iva=RESP:CAMPO3
AUX:cantidad=RESP:CAMPO4
AUX:precio=RESP:CAMPO5
AUX:exenta=RESP:CAMPO6
AUX:ivaincluido5=RESP:CAMPO7
AUX:gravada5=RESP:CAMPO8
AUX:iva5=RESP:CAMPO9
AUX:ivainlcuido10=RESP:CAMPO10
AUX:gravada10=RESP:CAMPO11
AUX:iva10=RESP:CAMPO12
AUX:mueve_stock=RESP:CAMPO13
AUX:descuento_exenta=RESP:CAMPO14
access:auxiliar.insert()
end

El codigo SQL cuando lo ejecuto en el navegador de la base de datos funciona bastante bien, mi problema esta cuando lo ejecuto desde el Clarion.
Desde ya muchas 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

Clarion 8 - Firebird

Publicado por francisco J. Valencia (87 intervenciones) el 28/01/2014 22:22:38
Hola Marco:

Después de este tiempo me imagino que ya resolviste el problema.

una causa puede ser la línea 'id_compra = '&clip(COMCAB:ID_COMPRA)
Si id_compra es alfanumérico entonces tienes que agregarle comillas simples. Por ejemplo
'id_compra = '&chr(39)&clip(COMCAB:ID_COMPRA)&chr(39)

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

Clarion 8 - Firebird

Publicado por Marco (155 intervenciones) el 29/01/2014 20:05:06
Gracias Francisco por la respuesta, hasta ahora no lo he resuelto, el campo id_compra es long
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

Clarion 8 - Firebird

Publicado por Fabian (1 intervención) el 14/02/2014 00:07:50
Puede que el problema este en como estas armando el string.
arma tu string en una variable, mostralo en un campo txt que puedas seleccionar, y copiar al motor, ahi podes ver que esta mal.
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
sin imagen de perfil

Clarion 8 - Firebird

Publicado por Marco (155 intervenciones) el 14/02/2014 00:46:34
Gracias Fabian por la respuesta, pero lo probé en el motor y funciona la sentencia, mi problema es desde el Clarion 8
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

Clarion 8 - Firebird

Publicado por francisco J. Valencia (87 intervenciones) el 18/02/2014 01:50:56
Marco:

Tienes que dividir la ejecución del programa en dos pasos y monitorear cada uno

1. La sentencia SQL ármala en una variable que puedas mostrar en un mensaje

RTN:SQL = ''select d.id_producto,p.descripcion,d.porcentaje ...........'
message(RTN:SQL)

2.- Después de ejecutar prop:sql, atrapa el error

clear(TablaBoba)
TablaBoba{prop:sql} = RTN:SQL
IF ERRORCODE() THEN STOP( FILEERROR()) end

Otra cosa, hice unas pruebas con mysql y creo que tu error esta en que usas

set(respuesta)

Quita esta instrucción y prueba.

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