Quando tudo tava pronto.... errei o comando e apaguei tudo kkkkk
Mas agora ficou mais rápido ainda, deixei mais processamento por conta do MySql.
Como eu já disse por aqui, sou principiante nisso ainda.
Daria pra melhorar o count(*) com um comando só, mas foi assim mesmo....
nTotal := 0
Rs := cnLocal:Execute( "SELECT COUNT(*) AS QTD FROM LOG_UNID_OPER" )
nTotal += Rs:Fields( "QTD" ):Value
Rs:CLose()
Rs := cnLocal:Execute( "SELECT COUNT(*) AS QTD FROM LOG_GRANDE_USUARIO" )
nTotal += Rs:Fields( "QTD" ):Value
Rs:Close()
Rs := cnLocal:Execute( "SELECT COUNT(*) AS QTD FROM LOG_CPC" )
nTotal += Rs:Fields( "QTD" ):Value
Rs:Close()
Rs := cnLocal:Execute( "SELECT COUNT(*) AS QTD FROM LOG_LOGRADOURO" )
nTotal += Rs:Fields( "QTD" ):Value
Rs:Close()
Rs := cnLocal:Execute( "SELECT COUNT(*) AS QTD FROM LOG_LOCALIDADE" )
nTotal += Rs:Fields( "QTD" ):Value
Rs:Close()
Pra não ter que reescrever muito fonte, acabei deixando por conta do MySQL
Rs := cnLocal:Execute( ;
"SELECT " + ;
"LOG_CPC.CPC_ENDERECO AS ENDERECO, " + ;
"'' AS BAIRRO, " + ;
"LOG_LOCALIDADE.LOC_NOSUB AS CIDADE, " + ;
"LOG_CPC.UFE_SG AS UF, " + ;
"LOG_CPC.CPC_KEY_DNE AS DNEKEY " + ;
"FROM LOG_CPC " + ;
"INNER JOIN LOG_LOCALIDADE ON LOG_LOCALIDADE.LOC_NU_SEQUENCIAL=LOG_CPC.LOC_NU_SEQUENCIAL " + ;
"" + ;
"UNION ALL " + ;
"" + ;
"SELECT " + ;
"LOG_UNID_OPER.UOP_ENDERECO AS ENDERECO, " + ;
"LOG_BAIRRO.BAI_NO AS BAIRRO, " + ;
"LOG_LOCALIDADE.LOC_NOSUB AS CIDADE, " + ;
"LOG_UNID_OPER.UFE_SG AS UF, " + ;
"LOG_UNID_OPER.UOP_KEY_DNE AS DNEKEY " + ;
"FROM LOG_UNID_OPER " + ;
"INNER JOIN LOG_BAIRRO ON LOG_BAIRRO.BAI_NU_SEQUENCIAL=LOG_UNID_OPER.BAI_NU_SEQUENCIAL " + ;
"INNER JOIN LOG_LOCALIDADE ON LOG_LOCALIDADE.LOC_NU_SEQUENCIAL=LOG_UNID_OPER.LOC_NU_SEQUENCIAL " + ;
"" + ;
"UNION ALL " + ;
"" + ;
"SELECT " + ;
"LOG_GRANDE_USUARIO.GRU_ENDERECO AS ENDERECO, " + ;
"LOG_BAIRRO.BAI_NO AS BAIRRO, " + ;
"LOG_LOCALIDADE.LOC_NOSUB AS CIDADE, " + ;
"LOG_GRANDE_USUARIO.UFE_SG AS UF, " + ;
"LOG_GRANDE_USUARIO.GRU_KEY_DNE AS DNEKEY " + ;
"FROM LOG_GRANDE_USUARIO " + ;
"INNER JOIN LOG_BAIRRO ON LOG_BAIRRO.BAI_NU_SEQUENCIAL=LOG_GRANDE_USUARIO.BAI_NU_SEQUENCIAL " + ;
"INNER JOIN LOG_LOCALIDADE ON LOG_LOCALIDADE.LOC_NU_SEQUENCIAL=LOG_GRANDE_USUARIO.LOC_NU_SEQUENCIAL " + ;
"" + ;
"UNION ALL " + ;
"" + ;
"SELECT " + ;
"LOG_LOGRADOURO.LOG_NOME AS ENDERECO, " + ;
"LOG_BAIRRO.BAI_NO AS BAIRRO, " + ;
"LOG_LOCALIDADE.LOC_NOSUB AS CIDADE, " + ;
"LOG_LOGRADOURO.UFE_SG AS UF, " + ;
"LOG_LOGRADOURO.LOG_KEY_DNE AS DNEKEY " + ;
"FROM LOG_LOGRADOURO " + ;
"INNER JOIN LOG_BAIRRO ON LOG_BAIRRO.BAI_NU_SEQUENCIAL = LOG_LOGRADOURO.BAI_NU_SEQUENCIAL_INI " + ;
"INNER JOIN LOG_LOCALIDADE ON LOG_LOCALIDADE.LOC_NU_SEQUENCIAL = LOG_LOGRADOURO.LOC_NU_SEQUENCIAL " + ;
"UNION ALL " + ;
"" + ;
"SELECT " + ;
"'' AS ENDERECO, " + ;
"'' AS BAIRRO, " + ;
"LOG_LOCALIDADE.LOC_NOSUB AS CIDADE, " + ;
"LOG_LOCALIDADE.UFE_SG AS UF, " + ;
"LOG_LOCALIDADE.LOC_KEY_DNE AS DNEKEY " + ;
"FROM LOG_LOCALIDADE " + ;
"" )