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, multithread, gtwvg, fivewin 25.12, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui), (hmg3), (hmg extended), (oohg), PNotepad, ASP, (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/