Dudas y problemas con :bEditValid

Dudas y problemas con :bEditValid

Postby Armando » Sat Mar 25, 2023 2:18 am

Amigos:

Tengo dudas con un xBrowse y FastEdit y no se como resolverlas, me explico

Utilizo MySql, El xBrowse contiene solo una columna, el contenido de dicha columna es
un código postal y es llave de mi tabla

Code: Select all  Expand view  RUN

:bPastEof   := {|| Agregar(oBrw)}            <= Se agrega un registro e blanco y espera lo que teclee el usuario

:bEditValid := { | oGet, oCol | Validar(oBrw,oGet:VarGet()) }
 


En la funcion Validar(), puede devolver (.T.) o (.F.) dependiendo del resultado de la
validación, si el resultado de la validación es (.T.) no tengo problema, pero cuando
el resultado es (.F.) digamos porque el código postal que el usuario teclea ya exista
en la tabla, el registro recién agregado se queda en blanco y si el usuario avanza mas
allá del final del Browse, se vuelve a agregar un registro en blanco con el consabido
error de llave duplicada, como puedo evitarlo?

Espero haberme explicado para contar con su apoyo

Gracias
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
User avatar
Armando
 
Posts: 3228
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México

Re: Dudas y problemas con :bEditValid

Postby cmsoft » Sat Mar 25, 2023 3:22 pm

Puedes controlarlo en la funcion Agregar haciendo el control de que no haya ya agregado un registro en blanco
Code: Select all  Expand view  RUN

************************************************************
** Agregar un familiar a la lista
STATIC FUNCTION Agregar(oBrw)
LOCAL lRta, oError, base
IF oApp:oServer:Query("SELECT codigopostal FROM mitabla WHERE codigopostal = ' ' "):RecCount() > 0
   RETURN nil
ENDIF
lRta := MsgNoYes("Desea agregar ...?","Atencion")
IF lRta
....
 

Otra alternativa es haces un INSERT IGNORE en tu tabla, cosa de que ignore el insert si el codigo existe
Mira si te sirve...
User avatar
cmsoft
 
Posts: 1290
Joined: Wed Nov 16, 2005 9:14 pm
Location: Mercedes - Bs As. Argentina

Re: Dudas y problemas con :bEditValid

Postby Armando » Sun Mar 26, 2023 1:35 am

Hola César:

Muchas gracias voy a tirar por el INSERT IGNORE.

Saludos
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
User avatar
Armando
 
Posts: 3228
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México

Re: Dudas y problemas con :bEditValid

Postby FranciscoA » Sun Mar 26, 2023 4:29 pm

Hola Armando.
Esto es para DBF, pero creo que la misma logica te servirá traduciendola a MySql:
//Agregar 1 registro si el campo fecha de linea anterior no está vacío
Code: Select all  Expand view  RUN
 WITH OBJECT oBrw
   :bPastEof  := { || if( !Empty(oBrw:Fecha:Value)  ,;
                        ( (oBrw:cAlias)->(DbAppend()) ,;
                          oBrw:GoLeftMost() ,;
                          oBrw:Refresh() ), )}  
END

Saludos.
Francisco J. Alegría P.
Chinandega, Nicaragua.

Fwxh-MySql-TMySql
User avatar
FranciscoA
 
Posts: 2159
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Re: Dudas y problemas con :bEditValid

Postby Armando » Sun Mar 26, 2023 5:40 pm

Francisco:

Muchas gracias por el aporte, lo voy a intentar.

Saludos
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
User avatar
Armando
 
Posts: 3228
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Willi Quintana and 27 guests