Posté le 04 août 2015 - 21:40 |
Procedure ValidaEnderecoLogradouros(Endereco, RemoveRuaSN, OE)
OE = OE
ok is boolean = False
Pedaco, sAbreviada, sPrimeiroNome, EnderecoValido is string = ""
X, QTDESPACO, TOTAL, POS, LETRAS, REGISTROS, UltimoEspaco is int = 0
Endereco = Upper(NoSpace(Endereco))
IF RemoveRuaSN = "S" THEN Endereco = Replace(Endereco,"RUA","") Endereco = Replace(Endereco,"AVENIDA","") Endereco = Replace(Endereco,"TRAVESSA","") Endereco = Replace(Endereco,"R.","") Endereco = Replace(Endereco,"AV.","") Endereco = Replace(Endereco,"TV.","") Endereco = NoSpace(Endereco) END
SqlExecute is string = [ Select des_lograd, des_lograd_navega_mapa, des_mnemon_lograd, * from dbo.ACT263_LOGRADOURO where des_lograd_navega_mapa like '%@ParteEndereco_1@%' ]
IF Endereco <> "" THEN
X = 1 QTDESPACO = StringCount(Endereco," ") - 1 IF QTDESPACO > 1 LOOP (QTDESPACO) X+=1 SqlExecute += " and des_lograd_navega_mapa like '%@ParteEndereco_"+X+"@%'" END END
X = 0 TOTAL = 0 POS = 0 LETRAS = 0 UltimoEspaco = 1 TOTAL = Length(Endereco) LOOP (TOTAL)
POS+=1
IF Endereco[[POS]] = " " THEN X += 1 Pedaco = NoSpace(Middle(Endereco,UltimoEspaco,POS-UltimoEspaco)) SqlExecute = Replace(SqlExecute,"@ParteEndereco_"+X+"@",Pedaco,WholeWord) UltimoEspaco = POS sAbreviada += Middle(Pedaco,1,1) IF sPrimeiroNome = "" THEN sPrimeiroNome = Pedaco END END
END
dsQrySql is Data Source
REGISTROS = 0
ok = HExecuteSQLQuery(dsQrySql,ConnNativa,hQueryWithoutCorrection,SqlExecute)
FOR EACH dsQrySql REGISTROS += 1 END
IF REGISTROS = 0 THEN
Info("Nao achou na primeira tentativa")
REGISTROS = 0
SqlExecute = [ Select des_lograd, des_lograd_navega_mapa, des_mnemon_lograd, * from dbo.ACT263_LOGRADOURO WHERE des_mnemon_lograd like '%@Abreviado@%' ]
SqlExecute = Replace(SqlExecute,"@Abreviado@",sAbreviada)
ok = HExecuteSQLQuery(dsQrySql,ConnNativa,hQueryWithoutCorrection,SqlExecute)
FOR EACH dsQrySql REGISTROS += 1 END
IF REGISTROS = 0 THEN Info("Nao achou na segunda")
REGISTROS = 0
SqlExecute = [ Select des_lograd, des_lograd_navega_mapa, des_mnemon_lograd, * from dbo.ACT263_LOGRADOURO WHERE des_lograd_navega_mapa like '%@PrimeiroNome@%' ]
SqlExecute = Replace(SqlExecute,"@PrimeiroNome@",sPrimeiroNome)
ok = HExecuteSQLQuery(dsQrySql,ConnNativa,hQueryWithoutCorrection,SqlExecute)
FOR EACH dsQrySql REGISTROS += 1 END
IF REGISTROS = 0 THEN Info("Nao achou na terceira tentativa")
ELSE IF REGISTROS = 1 Info("Achou apenas 1 na terceira tentativa") FOR EACH dsQrySql Info(dsQrySql.des_lograd, dsQrySql.des_lograd_navega_mapa,dsQrySql.des_mnemon_lograd) EnderecoValido = dsQrySql.des_lograd_navega_mapa END ELSE IF REGISTROS > 2 Info("Achou varios na terceira tentativa") FOR EACH dsQrySql Info(dsQrySql.des_lograd, dsQrySql.des_lograd_navega_mapa,dsQrySql.des_mnemon_lograd)
END END
ELSE IF REGISTROS = 1 Info("Achou apenas 1 na segunda tentativa") FOR EACH dsQrySql Info(dsQrySql.des_lograd, dsQrySql.des_lograd_navega_mapa,dsQrySql.des_mnemon_lograd) EnderecoValido = dsQrySql.des_lograd_navega_mapa END ELSE IF REGISTROS > 2 Info("Achou varios na segunda tentativa") FOR EACH dsQrySql Info(dsQrySql.des_lograd, dsQrySql.des_lograd_navega_mapa,dsQrySql.des_mnemon_lograd)
END END
ELSE IF REGISTROS = 1 Info("Achou apenas 1 na primeira tentativa") FOR EACH dsQrySql Info(dsQrySql.des_lograd, dsQrySql.des_lograd_navega_mapa,dsQrySql.des_mnemon_lograd) EnderecoValido = dsQrySql.des_lograd_navega_mapa END ELSE IF REGISTROS > 2 Info("Achou varios na primeira tentativa") FOR EACH dsQrySql Info(dsQrySql.des_lograd, dsQrySql.des_lograd_navega_mapa,dsQrySql.des_mnemon_lograd)
END END
END
Info(SqlExecute)
RESULT(EnderecoValido) |
| |
| |
|