FoxPro/Visual FoxPro - validacion de un campo

 
Vista:
sin imagen de perfil

validacion de un campo

Publicado por jorge alfredo (45 intervenciones) el 21/07/2005 19:51:47
hola otra ves.
al crear un nuevo registro en una tabla, con el comando apend blank me dice que el archivo está en uso, cosa que no es cierto porque el hay un unico usuario. porque pasara esto?
la sequnda pregunta es la siquiente una ves que logro utilizar o mejor addicionar un nuevo registro es necesario que antes de ser grabado ese nuevo registro, se verifique que el numero o id del producto no exista si es así no dejarlo grabar. lo extraño es que por ejemplo ingreso un dato como
id =12345689 este numero no existe en la tabla y aùn así foxpro me dice que este id ya existe porque sucede esto?
mi codigo es asi

selec product
append blank &aqui me dice que la otro usuario esta usando el archivo, cosa no cierta
entonces lo plante así
if used("product")
select product
use in product & lo cierro totalmente
use product & vuelvo abrirlo
appen blank &ya no me retorna el erro "otro usuario esta usando el archivo
en mi form existe un control txt con el nombre de txtidprod
cuando digito cualquier valor en el ejemplo 12345689 en el metodo valid fe este control
tengo
seek (id,productu)
if found() &simpre me dice que ya existe ese código cuando en realida no existe porque?
wait "idproducto ya existe" windo timeout 01
thisform.txtid.value = 0
else
tableupdate(.t.)
endif
bueno gracias por sus sugerencias


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

RE:validacion de un campo

Publicado por eliza (15 intervenciones) el 21/07/2005 20:15:45
HOLA LO QUE YO HAGO ES ESTO

POR EJEMPLO TU CAMPO EN TU FORMULARIO SE LLAMA ID Y EN LA TABLA ID1
LO QUE YO HARIA ES ESTO

CLOSE ALL
SELECT 1 (O COMO SE LLAME TU TABLA)
LOCATE FOR THISFORM.ID.VALUE=ID1
IF FOUND( )
MESSAGEBOX("YA EXISTE")
ELSE
APPEND BLANK
REPLACE ID1 WITH THISFORM.ID.VALUE
ENDIF

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

RE:validacion de un campo

Publicado por Antonio (207 intervenciones) el 21/07/2005 21:03:44
saludos

De la primera es lo siguiente:
Pon esto en el Load de la forma

IF !USED("PRODUCT")
USE PRODUCT
ENDIF
SELECT PRODUCT

y esta resuelto el problema

Por la segunda:

Primero el idproducto es de tipo Character?
si es de tipo saracter tienes que mandar a buscar de esta forma

ten en cuenta el orden en que venga el producto

select product
set order to idproducto

store alltrim(txtidprod.value ) to codproduct

IF seek(codproduct)
wait "idproducto ya existe" windo timeout 01
thisform.txtid.value = 0
else
tableupdate(.t.)
endif

De lo contrario es numerico es que no tenias el indice activado por el order

Bueno creo que eso te puede ayudar

Att.
Antonio
Santo Domingo Rep. Dom.


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