Página 1 de 1
Validação de Campos.
Enviado: 11 Jan 2017 16:32
por Marcos
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.
Código: Selecionar todos
if v_passe <> v_passe_conf
msginfo('Palavra Passe não confere','Atenção')
return(nil)
endif
Validação de Campos.
Enviado: 11 Jan 2017 18:26
por wmanesco
Se entendi voce quer inserir um "cliente", por exemplo, mas antes verificar se ele existe?
Não sei como está usando mysql (ado ou outra biblioteca) mas acho que seria um select assim:
Código: Selecionar todos
cCpf := ...
"SELECT * FROM clientes WHERE cpf='" + cCpf + "'"
Se o resultado for maior que 0 já existe no banco...
Validação de Campos.
Enviado: 12 Jan 2017 08:44
por Marcos
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:
Código: Selecionar todos
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
Validação de Campos.
Enviado: 12 Jan 2017 08:53
por Marcos
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.
Validação de Campos.
Enviado: 12 Jan 2017 11:14
por Marcos
Desculpe a falta de atenção mas está resolvido, coloquei outra condição o "Else" e pronto. Obrigado pela ajuda.
Validação de Campos.
Enviado: 12 Jan 2017 11:56
por alxsts
Validação de Campos.
Enviado: 12 Jan 2017 12:52
por janio
Marcos,
Vc ta usando MiniGUI?
Qual lib para MySql?
Janio
Validação de Campos.
Enviado: 12 Jan 2017 14:08
por JoséQuintas
Código: Selecionar todos
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.
Validação de Campos.
Enviado: 12 Jan 2017 15:48
por Marcos
Obrigado a todos pela ajuda, o exemplo do alxsts foi usado.
Janio, estou usando Minigui, no arquivo de compilação aparece -lminigui, -lminiprint2, -lhbmysql, -llibmysql e a classe TMySQL.