Página 1 de 1
Obtener Valor
Publicado: Dom May 08, 2005 9:24 pm
por paco-ssi
Como puedo pasar el valor de un campo de una base de tatos a una variable?
He probado con
local nombre1
nombre1 := ::oDbfDatSet1:nombre
Gracias
Paco V
Obtener Valor
Publicado: Lun May 09, 2005 10:24 am
por ignacio
Paco,
Exactamente como lo has hecho. También puedes usar las siguientes fórmulas:
xValor := oDataSet:FieldGet( nCampo )
xValor := oDataSet:FieldGetByName( cCampo )
Ten en cuenta que si el el DataSet esta bloqueado, es decir, no está en
edición:
xValor := oDataSet:cCampo
ES EXACTAMENTE IGUAL a:
xValor := oDataSet:FieldGet( nCampo )
xValor := oDataSet:FieldGetByName( cCampo )
Sin embargo si el dataset está en edición se devuelve el valor del buffer de
edición:
xValor := oDataSet:cCampo
SE CORRESPONDE a:
xValor := oDataSet:VarGet( nCampo )
Un saludo,
"Paco V." <
paco-ssi@usuarios.retecal.es> escribió en el mensaje
news:427e679f$[email=
1@ozsrvnegro.ozlan.local...]
1@ozsrvnegro.ozlan.local...[/email]
> Como puedo pasar el valor de un campo de una base de tatos a una variable?
>
> He probado con
> local nombre1
> nombre1 := ::oDbfDatSet1:nombre
>
> Gracias
> Paco V
>
>
Obtener Valor
Publicado: Lun May 09, 2005 7:15 pm
por paco-ssi
Ignacio:
Al aplicar lo que me has dicho, me da error. Si bien en el error me aparece
el valor del campo que pido.
Te adjunto el proyecto y una pequeña base de datos.
Paco V
"Paco V." <
paco-ssi@usuarios.retecal.es> escribió en el mensaje
news:427e679f$[email=
1@ozsrvnegro.ozlan.local...]
1@ozsrvnegro.ozlan.local...[/email]
> Como puedo pasar el valor de un campo de una base de tatos a una variable?
>
> He probado con
> local nombre1
> nombre1 := ::oDbfDatSet1:nombre
>
> Gracias
> Paco V
>
>
Attached files Gescsc.zip (18.3 KB)Â Ut100.cdx (4 KB)Â Ut100.dbf (381 B)Â
Obtener Valor
Publicado: Mar May 10, 2005 2:08 pm
por ignacio
Paco,
Como se puede ver en tu error.log:
Subsistema: BASE
Código de error: 1004
Estado: .F.
Descripción: Class: 'LOGICAL' has no exported method
Operación: FIELDGETBYNAME
Argumentos: [ 1] = Tipo: C Valor: PARQUE04
Fichero:
La variable que debería tener un dato de tipo objeto DataSet tiene un valor
LOGICO. Es decir, tu oDataSet vale bien falso o verdadero
Un saludo,
"Paco V." <
paco-ssi@usuarios.retecal.es> escribió en el mensaje
news:[email=
427f9af8@ozsrvnegro.ozlan.local...]
427f9af8@ozsrvnegro.ozlan.local...[/email]
> Ignacio:
> Al aplicar lo que me has dicho, me da error. Si bien en el error me
> aparece
> el valor del campo que pido.
>
> Te adjunto el proyecto y una pequeña base de datos.
>
> Paco V
>
> "Paco V." <
paco-ssi@usuarios.retecal.es> escribió en el mensaje
> news:427e679f$[email=
1@ozsrvnegro.ozlan.local...]
1@ozsrvnegro.ozlan.local...[/email]
>> Como puedo pasar el valor de un campo de una base de tatos a una
>> variable?
>>
>> He probado con
>> local nombre1
>> nombre1 := ::oDbfDatSet1:nombre
>>
>> Gracias
>> Paco V
>>
>>
>
>
>
Obtener Valor
Publicado: Mar May 10, 2005 2:50 pm
por paco-ssi
No lo entiendo.
La variable la creo como local sin ningun parametro.
Le asigno el valor.
De donde saca que sea un valor logico.
Paco V
"Ignacio Ortiz de Zúñiga" <
InvalidAccount@ozs.com> escribió en el mensaje
news:4280a456$[email=
1@ozsrvnegro.ozlan.local...]
1@ozsrvnegro.ozlan.local...[/email]
> Paco,
>
> Como se puede ver en tu error.log:
>
> Subsistema: BASE
> Código de error: 1004
> Estado: .F.
> Descripción: Class: 'LOGICAL' has no exported method
> Operación: FIELDGETBYNAME
> Argumentos: [ 1] = Tipo: C Valor: PARQUE04
> Fichero:
>
> La variable que debería tener un dato de tipo objeto DataSet tiene un
valor
> LOGICO. Es decir, tu oDataSet vale bien falso o verdadero
>
> Un saludo,
>
>
> "Paco V." <
paco-ssi@usuarios.retecal.es> escribió en el mensaje
> news:[email=
427f9af8@ozsrvnegro.ozlan.local...]
427f9af8@ozsrvnegro.ozlan.local...[/email]
> > Ignacio:
> > Al aplicar lo que me has dicho, me da error. Si bien en el error me
> > aparece
> > el valor del campo que pido.
> >
> > Te adjunto el proyecto y una pequeña base de datos.
> >
> > Paco V
> >
> > "Paco V." <
paco-ssi@usuarios.retecal.es> escribió en el mensaje
> > news:427e679f$[email=
1@ozsrvnegro.ozlan.local...]
1@ozsrvnegro.ozlan.local...[/email]
> >> Como puedo pasar el valor de un campo de una base de tatos a una
> >> variable?
> >>
> >> He probado con
> >> local nombre1
> >> nombre1 := ::oDbfDatSet1:nombre
> >>
> >> Gracias
> >> Paco V
> >>
> >>
> >
> >
> >
>
>
Obtener Valor
Publicado: Mar May 10, 2005 3:21 pm
por jfgimenez
Paco,
creo que el problema viene de un par de líneas más arriba. En vez de:
IF ::oDbfDataSet1( dbSeek( rtrim(::oEdit1:value) ))
pon:
IF ::oDbfDataSet1:Seek( rtrim(::oEdit1:value) )
--
Un saludo,
José F. Giménez
Obtener Valor
Publicado: Mar May 10, 2005 7:44 pm
por paco-ssi
Jose:
Solucionado con lo que me has indicado, y me basta. Pero:
Solo me va con oDataSet:FieldGet( nCampo )
No me va con oDataSet:FieldGetByName( cCampo )
Cual es el motivo por el que no va con Dbseek?
Paco V
"Jose F. Gimenez" <
jfgimenez@wanadoo.es> escribió en el mensaje
news:[email=
4280b548@ozsrvnegro.ozlan.local...]
4280b548@ozsrvnegro.ozlan.local...[/email]
> Paco,
>
> creo que el problema viene de un par de líneas más arriba. En vez de:
>
> IF ::oDbfDataSet1( dbSeek( rtrim(::oEdit1:value) ))
>
> pon:
>
> IF ::oDbfDataSet1:Seek( rtrim(::oEdit1:value) )
>
> --
> Un saludo,
>
> José F. Giménez
>
>
Obtener Valor
Publicado: Mar May 10, 2005 8:41 pm
por jfgimenez
Paco,
> Solo me va con oDataSet:FieldGet( nCampo )
> No me va con oDataSet:FieldGetByName( cCampo )
No entiendo lo que quieres decir. Por favor, muestrame el código que estás
probando.
> Cual es el motivo por el que no va con Dbseek?
La línea en cuestión estaba mal escrita. DbSeek() es un función del RDD de
[x]Harbour, no de Xailer. Así que, en la línea:
IF ::oDbfDataSet1( dbSeek( rtrim(::oEdit1:value) ))
lo que estabas haciendo era buscar, con dbseek(), la expresión
rtrim(::oEdit1:value) en el área activa en ese momento, y el resultado es un
valor lógico (.T. o .F.). Vamos, que lo que estabas haciendo es el
equivalente de:
::oDbfDataSet1( .T. )
o
::oDbfDataSet1( .F. )
y como puedes ver, no tiene mucho sentido.
En cambio, Seek() es un método de TDbfDataSet, y la línea:
IF ::oDbfDataSet1:Seek( rtrim(::oEdit1:value) )
cumple su cometido perfectamente.
--
Un saludo,
José F. Giménez