Pesquisa em SQL interessante
Enviado: 11 Dez 2015 00:42
Pra facilitar criei isto
Supondo que o usuário digite: EL ATA IBA GAL AV
Vai encontrar, por exemplo, AV GAL ATALIBA LEONEL
Essa função cria o que é necessário para o comando SQL, a fim de que retorne ENDERECO que possua qualquer dessas palavras em qualquer posição
É algo relativamente simples, mas muito útil
Nota: o conteúdo inicial 1=1 resolve duas situações: endereço vazio, e juntar os AND.
Código: Selecionar todos
@ 2, 0 GET cEndereco PICTURE "@!"
READ
cSql := "SELECT * FROM CADASTRO WHERE " + MySqlEnderecoLike( cEndereco )
Temporario := cnMySql:Execute( cSql )
...
FUNCTION MySqlEnderecoLike( cEndereco )
LOCAL cPalavra, cSql := " 1=1"
cEndereco := Trim( cEndereco )
DO WHILE Len( cEndereco ) != 0
cPalavra := Substr( cEndereco, 1, At( " ", cEndereco + " " ) - 1 )
cEndereco := AllTrim( Substr( cEndereco, At( " ", cEndereco + " " ) + 1 ) )
cSql += " AND ENDERECO LIKE '%" + cPalavra + "%'"
ENDDO
RETURN cSql
Vai encontrar, por exemplo, AV GAL ATALIBA LEONEL
Essa função cria o que é necessário para o comando SQL, a fim de que retorne ENDERECO que possua qualquer dessas palavras em qualquer posição
É algo relativamente simples, mas muito útil
Nota: o conteúdo inicial 1=1 resolve duas situações: endereço vazio, e juntar os AND.