Gostaria de saber como fazer a validação de um campo para não Duplicar registro no Mysql, por exemplo: inserir um cliente já cadastrado com o mesmo CPF, a validação abaixo Eu já fiz e funcionou redondinho, mas a pesquisa no banco para verificar registros existentes não consegui.
Havia feito de outra forma e havia dado o mesmo resultado, o código citado dá a mensagem que o Login já existe independente se houver na tabela "Usuarios" ou não, veja como fiz:
local
v_login:= alltrim(form_dados.tbox_001.value)
oQuery := oServer:Query("select * from usuarios where login_usuario='"+v_login+"'")
if oQuery:Eof()
msginfo('Usuário já Cadastrado, tecle ENTER','Atenção')
form_dados.tbox_001.setfocus
return(nil)
endif
Descobri o erro, gostaria de saber como negar Eof(), pois da forma que está o código aceita cadastrar somente se já existir na Tabela de Usuarios, e na verdade o que preciso é o contrario não deixar cadastrar na tabela de usuários se já existir.
GET cCnpj VALID CnpjOk( cCnpj ) .AND. ! CnpjRepetido( cCnpj, cChave )
READ
FUNCTION CnpjRepetido( cCnpj, cChave )
cnMySql:Execute( "SELECT COUNT(*) AS QTD FROM CLIENTES WHERE CNPJ=" + StringSql( cCnpj ) + " AND IDCLIENTE <> " + StringSql( cChave ) )
IF cnMySql:ReturnValueAndClose( "QTD" ) > 0
MsgExclamation( "CNPJ repetido" )
RETURN .F.
ENDIF
RETURN .T.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2) "The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell" https://github.com/JoseQuintas/