Página 1 de 1

VARIABLES COMO CAMPOS.

Publicado: Vie May 18, 2012 3:01 am
por PEDRO DE LEON RODAS[3]
Buen dia a todos.
Alguien me puede orientar como hacer lo siguiente.
Tengo una base datos mysql y en esa base una tabla llamada saldos_diarios
con varios campos:
numero_cliente int 10
numero_mes int 2
numero_ano int 4
dia1 decimales 12 2
dia3 decimales 12 2
hasta llegar al dia31 .
Lo que quiero es grabar en los campos dia1,dia2, usando una variable de
memoria.
Hago lo siguiente:
Local miconsulta,contador,cCampo
miconsulta=AppData:mibase:Query("Select * from saldos_diarios where
numero_ano=2012 and numero_mes=5 and numero_cliente=1 ")
Miconsulta:Open()
hasta qui todo bien.
For contador=1 to 31
cCampo="DIA"+Alltrim(Str(contador))
Miconsulta:Edit()
Miconsulta:&cCampo=5000.00 // al hacer esto me da error y no se graba.
Miconsulta:Update
End for
Si yo hago lo siguiente funciona bien.
For contador=1 to 31
If contador=1
Miconsulta:Edit()
Miconsulta:dia1=5000.00 // asi si funciona.
Miconsulta:Update
Endif
If contador=2
Miconsulta:Edit()
Miconsulta:dia2=5000.00
Miconsulta:Update
Endif
End for
Lo que quiero evitar es poner mucho codigo pues tendria que hacer esto hasta
31.
Espero no haberme enredado.
Si yo hago esto funciona bien.
cCampo="DIA"+"1"
Msginfo(Miconsulta:&cCampo)
Por su ayuda gracias.

VARIABLES COMO CAMPOS.

Publicado: Vie May 18, 2012 5:43 am
por Gabo
El 17/05/2012 08:01 p.m., PEDRO DE LEON RODAS escribió:
> Buen dia a todos.
>
> Alguien me puede orientar como hacer lo siguiente.
>
>
> Tengo una base datos mysql y en esa base una tabla llamada
> saldos_diarios con varios campos:
>
> numero_cliente int 10
> numero_mes int 2
> numero_ano int 4
> dia1 decimales 12 2
> dia3 decimales 12 2
> hasta llegar al dia31 .
>
>
> Lo que quiero es grabar en los campos dia1,dia2, usando una variable de
> memoria.
>
> Hago lo siguiente:
>
>
> Local miconsulta,contador,cCampo
>
> miconsulta=AppData:mibase:Query("Select * from saldos_diarios where
> numero_ano=2012 and numero_mes=5 and numero_cliente=1 ")
> Miconsulta:Open()
>
> hasta qui todo bien.
>
>
> For contador=1 to 31
> cCampo="DIA"+Alltrim(Str(contador))
>
> Miconsulta:Edit()
> Miconsulta:&cCampo=5000.00 // al hacer esto me da error y no se graba.
> Miconsulta:Update
>
> End for
>
>
> Si yo hago lo siguiente funciona bien.
>
>
> For contador=1 to 31
>
> If contador=1
>
> Miconsulta:Edit()
> Miconsulta:dia1=5000.00 // asi si funciona.
> Miconsulta:Update
> Endif
>
> If contador=2
>
> Miconsulta:Edit()
> Miconsulta:dia2=5000.00
> Miconsulta:Update
> Endif
>
>
> End for
>
> Lo que quiero evitar es poner mucho codigo pues tendria que hacer esto
> hasta 31.
>
> Espero no haberme enredado.
>
> Si yo hago esto funciona bien.
>
> cCampo="DIA"+"1"
>
> Msginfo(Miconsulta:&cCampo)
>
> Por su ayuda gracias.
>
>
>
>
>
>
>
>
>
>
>
For contador=1 to 31
cCampo="DIA"+Alltrim(Str(contador))
Miconsulta:Edit()
Miconsulta:FielPut( Miconsulta:FieldPos(cCampo), 5000.00 )
Miconsulta:Update
End for
Un Saludo

VARIABLES COMO CAMPOS.

Publicado: Vie May 18, 2012 6:46 am
por PEDRO DE LEON RODAS[3]
Gabriel, buen dia.
Gracias por tu ayuda, probe el ejemplo que me distes pero no funciona, me da
el error siguiente.
TSQLQUERY:FIELPUT(1485)
Error BASE/1004 Message or field name not found: TSQLQuery:FIELPUT
Argumentos: ( [ 1] = Tipo: N Valor: 10)
Saludos.

VARIABLES COMO CAMPOS.

Publicado: Vie May 18, 2012 6:59 am
por PEDRO DE LEON RODAS[3]
Gabriel, gracias.
Ya esta resuelto, estaba mal escrito FielPut le faltaba la d FieldPut
Funciona perfectamente bien.
Creo que voy a tener que conseguir una guia de xHarbour.
Muchas gracias
Saludos