As vezes me sinto perdido, sem conseguir decifrar até os meus sentimentos. Mais estando com a presença de quem eu amo… Tudo é claro, tudo é música!
Ass.: Dj Mib B-)
As vezes me sinto perdido, sem conseguir decifrar até os meus sentimentos. Mais estando com a presença de quem eu amo… Tudo é claro, tudo é música!
Ass.: Dj Mib B-)
Que doideira de título, para postagem em um blog, é esse? Caso você não saiba, pode não se interessar, já que este post é para comentar um erro que vem sendo comum para programadores em ASP. Não conhece? Pule esse post!
Eu costumava usar ASP com ACCESS, até que migrei tudo para o MySQL. Então passei a ter problemas com o ASP para retornar o número de registros em um requisição do banco de dados e até para criar uma paginação. Isso porque a propriedade RecordCount do RecordSet só trazia o valor “-1” e não o número de registros retornado. E percebi que isto não só acontece com o MySQL, pois vem acontecendo com outros banco de dados.
Muita gente resolve o problema de contagem de registros, usando a função COUNT do próprio SQL (“select count(*) as totalRegistros from tabela”). Isso até que resolve, mais acabamos criando uma consulta a mais. Para fazer a paginação, no caso do MySQL, podemos, e é até aconselhável, utilizar pelo próprio SQL usando a função LIMIT (“select campos from tabela limit 1,20”).
Uma solução definitiva, mais rápida e só utilizando uma requisição seria definir corretamente o CursorLocation. Pois podemos e até devemos, definir tipos de cursor numa requisição, assim como também o local e tipo de trava. Isso nos ajuda em desempenho nos programas que estaremos criando.
No padrão e geralmente, o CursorLocation é utilizado com o valor 2 (adUseServer), ao qual utiliza a requisição no lado do servidor. Este cursor é aconselhável mais para requisições onde fazemos alguma alteração (criar, apagar, deletar, atualizar). E para o RecordCount funcionar perfeitamente em qualquer banco de dados, devemos utilizar o CursorLocation com valor 3 (adUseClient), ao qual utiliza a requisição no lado do cliente. Este cursor é aconselhável mais para requisições estáticas que só trazem informações de leituras e sem alteração e é mais rápido do que o do lado do servidor.
Então vejamos agora um código de consulta, usando o cursor correto e o RecordCount funcionando perfeitamente para qualquer banco suportado:
1: 'Declarando e Criando objetos para o Banco de Dados em ASP
2: dim adoBD, rsBD
3: set adoBD = server.createObject("ADODB.Connection")
4: set rsBD = server.createObject("ADODB.Recordset")
5: 'configurando o recordset
6: rsBD.CursorType = 0 'o mais rápido e somente para leitura para frente, sem retornar
7: rsBD.CursorLocation = 3 'mais rápido e permiti recordCount
8: rsBD.LockType = 1 'tipo de trava mais usada e rápida
9: 'abrindo conexão e requisição
10: adoBD.open = "String de Conexão" 'alterar para sua string
11: rsBD.activeConnection = adoBD
12: rsBD.source = "Comando SQL" 'alterar pelo comando sql desejável
13: rsBD.open
14: 'a partir de agora só recuperar as informações e registros
15: response.write rsBD.recordCount 'retorna o número de registros
16: rsBD.pageSize = 10 'define paginação em 10 em 10 registros
17: response.write rsBD.pageCount 'retorna o número de paginas
18: 'Fechando e destruindo objetos do Banco
19: rsBD.close
20: adoBD.close
21: set rsBD = nothing
22: set adoBD = nothing
Então acima, vimos como é feito o código para fazer uma simples consulta funcionando o RecordCount e entre outras propriedades do RecordSet.
Creio que agora já tenho dado uma boa dica ou pelo menos uma luz, no final do túnel. Pois eu mesmo fiquei anos procurando essas informações, e só fui achar a solução a pouco tempo, em um dos meus testes e pesquisas.
Ass.: Dj Mib B-)
Estou agora em fase de renovações de serviços, ao qual passo a realizar mudanças. Fiz uma análise sobre minha pessoa, e vejo que andei testando muita coisa e ao mesmo tempo não publicando os resultados. Com isso eu agora passei a renovar em tudo, já que seria nada mais do que mostrar o que aprendi e como e a qualidade em que cheguei com tudo que passei.
Foram vários anos com preocupações, pesquisas, estudos e estamos chegando ao resultado. Já até coloquei no meu site, um teste de fundo em vídeo, podem verificar no www.djmib.net. Fora outros projetos que já estou colocando em prática… mais que chato, só falo e não mostro as práticas… Vamos agir, vamos agir!
Uma imagem para descontrair:
Ass.: Dj Mib B-)
Minhas asas estão fechadas? Sim estão… para que eu possa aprender a voar sem necessariamente usá-las. E isso sempre acontece, ao estar com quem tocou meu coração!
Ass.: Dj Mib B-)
É… hoje eu vindo para casa, tinham dois cachorros atacando o gato… que covardia… joguei a bicicleta para cima dos dois e botei para correr… DJ Meu heróis… que nada o gato se viu livre e correu aliviado!
Ass.: Dj Mib B-)
"aquele beijo que te dei, eu nunca mais esquecerei…" É possível sentir o beijo de quem você ama a distância? Não dê respostas, só porque nunca experimentou! Eu digo sim!
Ass.: Dj Mib B-)