In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.

Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.

Otra de Twebdatsource

Foro público de Xailer en español
Responder
PEDRO DE LEON RODAS[3]
Mensajes: 266
Registrado: Mar Oct 28, 2008 4:41 am

Otra de Twebdatsource

Mensaje por PEDRO DE LEON RODAS[3] »

Saludos a todos.
Necesito obtener el resultado de una consulta, en este caso quiero saber
cuanto tengo de existencia de un producto antes de actualizar las
existencias.
Con TMariadbSource lo hago de esta manera:
Local nExistencia
::mi_dataset:cSelect="select EXISTENCIA_ACTUAL from productos where
codigo='"+::Codigo:Value+"' ")
::mi_dataset:Open()
nExistencia=::mi_dataset:EXISTENCIA_ACTUAL
Msginfo(Existencia)
::mi_dataset:EDit()
::mi_dataset:existencia_actual=::mi_dataset:existencia_actua l+1
::mi_dataset:Update()
Ahora en TWebDatasource pretendo hacerlo asi:
Local var_array := {},adata
En la siguiente linea, consulto y actualizo las existencias.
AppData:Base:BulkExecute( {"select EXISTENCIA_ACTUAL from productos where
codigo='"+::Codigo:Value+"' ",,@adata } ,{"update productos set
EXISTENCIA_ACTUAL=EXISTENCIA_ACTUAL+1 where
tienda='"+AppData:Nombre_tienda+"' and codigo='"+::Codigo:Value+"' "} )
Aadd( var_array, adata[1][1] )
Msginfo("Existencia actual antes de actualizar: "+Str(var_array)
Pero no funciona, me manda unos errores al hacer el BulkExecute.
Gracias por sus ayudas.
Saludos.
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9252
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

Otra de Twebdatsource

Mensaje por ignacio »

Buenos dí­as,
No tiene mucho sentido incluir una instrucción SELECT para consumo de la aplicación de una operación BulkExecute y además el paso de parámetros que esta haciendo de @adata no es válido con BulkExecute
TEXT INTO cSql1
select EXISTENCIA_ACTUAL from productos where codigo = ?
ENDTEXT
TEXT INTO cSql2
update productos set XISTENCIA_ACTUAL=EXISTENCIA_ACTUAL+1
where tienda= ? and codigo= ?
ENDTEXT
WITH OBJECT oWebDS
nExi := :QueryValue( :BuildSqlSt( cSql1, ::Codigo:Value ), 0 )
:Execute( :BuildSqlSt( cSql2, AppData:Nombre_tienda, ::Codigo:Value ) )
END WITH
Msginfo("Existencia actual antes de actualizar: "+Str( nExi )
Un saludo
Ignacio Ortiz de Zúñiga
[Equipo de Xailer / Xailer team]
https://www.xailer.com
Responder