Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

mkboy

Por que usar GET.ROWS?

Recommended Posts

Aprendi a fazer uma pesquisa com ele, hehe, até que fim!Quais vantagens terei?Quando nao devo usa-lo e preferir o while?

Compartilhar este post


Link para o post
Compartilhar em outros sites

vantagem principal performance se forem muitos dados consultados...principalmente usando db access...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então se a consulta for pequena é melhor usar o while e deixar o getrows só para consultas onde poderá ter muitos registros?

Compartilhar este post


Link para o post
Compartilhar em outros sites

eu acho porque manipular recorset é mais simples e o ganho de desempenho nestes casos não compensa o controle...mas, em todo caso, contudo, todavia...se voce for mais um fanatico po desempenho daqueles que 0,00000001 milesimos de segundo faz a diferença pode usar tb...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então se a consulta for pequena é melhor usar o while e deixar o getrows só para consultas onde poderá ter muitos registros?

<{POST_SNAPBACK}>

Em ambos... por que ? Porque voc~e não fica manipulando os registros e o banco de dados... com uma consulta apenas você guarda os dados em uma array e utiliza varias e varias vezes...

 

Eu utilizo Getrows para tudo, até para UM registro ahahua e fiz inclusive paginação com Getrows que pega i numero de dados exatos por paginas, poruqe um dos desafios era fazer isso, porque se não que adianta querer deixa a aplicação mais leva, ma em uma pagina ele trazer sei la 1000 registros se você vai usar só 10 por pagina, mas eu consegui trazer realmente só 10 registros por pagina ou seja só 10 arrays...,

 

Mas no geral é um metodo legal de se trabalhar, viro vicio, todos os meus sites a uns 3/4 meses esta na base de Getrows, mais pratico e mais leve em aplicações grandes...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu utilizo Getrows para tudo, até para UM registro

Mas no geral é um metodo legal de se trabalhar, viro vicio, todos os meus sites a uns 3/4 meses esta na base de Getrows, mais pratico e mais leve em aplicações grandes...

fanatico http://forum.imasters.com.br/public/style_emoticons/default/yes.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caros amigos,Alguém poderia postar um exepmlo de GetRows que seja eficiente. Achei vários tutorias mas não sei qual deles é realmente eficiente. Em tese os códigos são iguais mas não sei identificar se há algum erro.Gostaria de entrar nesta de GetRows mas não consegui entender ainda porque esta propriedade é mais eficiente, qual é boa sobre Array como ela funciona?

Compartilhar este post


Link para o post
Compartilhar em outros sites

o onda é a seguinte...manipulando recorset você vai buscar os dados no db quantas vezes você precisar e com array você busca uma vez e pode usar quanbtas vezes quiser...exemplos ta cheio no forum, basicamente você pega o conteudo do recorset e armazena num array, dai pra frente, esquece movenext rs("nome do campo") e coisa assimpense apenas em FOR I = LBOUND ARRAY TO UBOUD ARRAY e os valores serão arrays de duas dimensoes tipo NOMEARRAY(x,y), e boa sorte...

Compartilhar este post


Link para o post
Compartilhar em outros sites

ahhahaha poxa mario

 

mas eu uso pela facilidade de se guardar os dados e usa-las quantas vezes quiser, se você fazer isso nos sistemas que desenvolvo hoje em dia teria que abrir 3000000 vezes um recordset...rs

 

Exemplo ? Opa

 

ASP

[*]SQL="SELECT * FROM configuracoes"

 

[*]SET RS Server.CreateObject("AdoDb.RecordSet")

 

[*]RS.Open SQL,Conexao,3,3

 

[*]

 

[*]if not rs.eof then

 

[*]configuracoes rs.getrows()

 

[*]end if

 

[*]

 

[*]rs.close

 

[*]set rs = nothing

 

Ta na mão...rs

 

O que ele faz ? Ele pega TODOS os campos da tabela configuracoes, verificar se não é o final do arquivo (if not rs.eof then), que quer dizer que ele encontrou registros e salva na array "configuracoes" e fecha o recordset, pronto... mas e se eu quiser utilizar os dados ?

 

<%=configuracoes(numero da linha,numero da coluna)%>

Linha imagine varias linhas com dados

 

Alexandre

Mario

MKBoy

 

Quero pegar o mario (no bom sentido) o Mario ta na linha 2, mas com arrat começa do ZERO então o mario vai ser o numero UM (zero, um...)

 

<%=configuracoes(1,numero da coluna)%>

 

Coluna é a coluna do seu banco de dados exemplo

 

ID | Nome | Sobrenome

 

Queremos pegar os dados da coluna Nome, ja que quero pegar o nome do Mario, mesmo esquema array começa do 0 e a coluna NOme vai ser a UM então fica

 

<%=configuracoes(1,1)%>

 

Assim você mostra o registro Mario, mas e se eu quiser mostrar todos ?

 

Facil Um looping com For

 

ASP

[*]

 

[*]FOR I=0 TO UBOUND(configuracoes,2)

 

[*]Response.write configuracoes(1,I)

 

[*]NEXT

 

[*]

 

Ubound serve para pegar o maior numero da array se tiver 50 ele vai te retornar 49 (lembra que começa do 0 ?) e o ,2 é para mostrar que você quer o maior numero de LINHAS....

 

Com isso da pra voc~e saber o basico de Getrows =D

 

Qualquer duvida estamos ae =D

 

Abração

Compartilhar este post


Link para o post
Compartilhar em outros sites

mas eu uso pela facilidade de se guardar os dados e usa-las quantas vezes quiser, se você fazer isso nos sistemas que desenvolvo hoje em dia teria que abrir 3000000 vezes um recordset...rs

Humm, aqui num to intendendo direito :(

Compartilhar este post


Link para o post
Compartilhar em outros sites

interessante :D um dia chego la hehe

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá pessoal.Eu utilizo aqui o getrows em muitos codigos.A principal vantagem dele, é manipular os dados do banco de dados, sem estar conectado à ele.Isso parece não fazer diferença né? Mas, se for um site onde tiverem muitos e muitos acessos ào banco de dados.. Todo e qualquer codigo que não fique conectando ào banco de dados toda hora.. é sempre bem vindo..Agora.. uma parte do codigo, onde eu não acho válido o uso de getrows .. é onde você faz uma consulta, que retorna muitos registros.Isso faria a pagina ficar meio pesada..Pois.. se forem muitos registros .. é mais vantajoso utilizar paginação, e pegar do banco somente os dados que serão mostrados na tela.Essa é minha opinião sobre o uso de getrows.Esse é um dos recursos que eu mais utilizo em meus códigos!Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

kdusobre paginação, eu, particularmente, não uso.. prefiro getrows..Mas, segundo o chefe da área de programação web aqui da empresa, Paginação é muito melhor que getrows, quando trata-se de muitos registros.Entao, como ele é o chefe da área aqui.. (eu trabalho na área de manutenção e suporte de micros.. nada a ver com programação) .. eu acreditei, heheheMas..como eu não utilizo muito isso.. prefiro getrows.. concordei com ele.Entao, quando você seta no recordset de paginação, quantos registros deve mostrar,ele tb pega todos os registros?Tem algum link falando nisso?(preu mostrar pra ele.. huauha)abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

e se eu disse que conseguir limitar os dados pegos... ou seja se tiver 1000 ele não vai salvar 1000 dados e mostrar só 10 ? =Dque ele só vai pegar o quanto eu quiser por pagina ? =Dou seja uma paginação que agora funfa 100%

Compartilhar este post


Link para o post
Compartilhar em outros sites

nem eu, pois o getrows pega tudo tb...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pelo que eu entendi, ele já faz a paginação anteriormente ao GetRows, só busca no Banco de Dados o intervalo estipulado, ai tanto faz usar RecordSet ou GetRows, pois o numero de dados é relativamente baixo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pelo que eu entendi, ele já faz a paginação anteriormente ao GetRows, só busca no Banco de Dados o intervalo estipulado, ai tanto faz usar RecordSet ou GetRows, pois o numero de dados é relativamente baixo.

<{POST_SNAPBACK}>

Isso, como alguns sabem eu desevolvi umapagina~ção 100% getrows, até ai beleza, mas se tivesse 1000 registros, ele ia guardar os 1000 registros numa array e iria utilizar só as estipuladas na pagina, por exemplo 10, e sobraria 990 registros numa array que não serviriam para nada nessa pagina certo ?

 

como o Dark0 falou

 

Agora.. uma parte do codigo, onde eu não acho válido o uso de getrows .. é onde você faz uma consulta, que retorna muitos registros.

Isso faria a pagina ficar meio pesada..

Pois.. se forem muitos registros .. é mais vantajoso utilizar paginação, e pegar do banco somente os dados que serão mostrados na tela.

É verdade isso, mas eu consegui limitar a pegar só o que vai usar por pagina realmente, igual a paginação com recordset ou seja getrows não perde mais nada para o metodo tradicional do recordset...

 

Ou se tiver 1000 registro, ele cria 100 paginas e só vai egar 10 registros por paginal REALMENTE, ele não vai trazer os 1000 ou seja a aplicação fica leve =)

 

Eu ainda estou melhorando mais o codigo mas essa semana eu posto aqui, mas a logica foi pegar o ULTIMO id usado dos 10, salvo-lo passo pra proxima pagina, pegar pelo TOP o quanto de registros e mandar pegar os 10 deoois do ID... exempplo

 

SQL="SELECT TOP 10 * FROM tabela WHERE id > " & id & " ORDER BY id DESC"

 

só um exemplo...

 

ta funcionando perfeitamente =)))

 

Essa semana eu posto aqui =D

 

Abraçoss

Compartilhar este post


Link para o post
Compartilhar em outros sites

nesse seu exemplo, se eu tenho "buracos" no id, sua paginacao vai pra casa do beleléu!! ou nao?!

como rola pra saber qtos sao e colocar no rodape as navegacoes?!

<{POST_SNAPBACK}>

não kdu, o que ele faz é salvar a ultima ID, vamos dizer que a ultima ID é 14, na proxima pagina o que el faz

 

registros = 10

 

ID = request("id")

 

SQL="SELECT TOP " & registros & " * FROM tabela WHERE id > " & ID & " ORDER BY id DESC"

 

Ou seja, ele vai pegar 10 registros aonde esses 10 registros tem ID maiores que o ID passado.. pode ser o 15,16,18,21,22...

 

não importa que haja buracos... e o que ele faz para passar o numeros de paginas é basicamente matematica... o RecordSet tem a propriedade (que esqueci agora) que ja te passo o numero de pagina (rs.pagesize acho), só que como ta senfo feito manualmente foi matematica mesmo...

 

inclusive tem a paginação com getows (antiga) que eu fiz aqui na parte de codigos, mas a nova versão que é essa que ele pega o numero exato por paginas, aonde não coloquei aqui porque não tive tempo de formata-la e explica-la e talz... mass essa semana faço isso =)

 

Abração

Compartilhar este post


Link para o post
Compartilhar em outros sites

beleza, você soh nao disse como faz pra montar os indices, no rodape por exemplo, indicando o total de paginas...

pra isso você tem q saber o total de registros da query q ta paginando, correto?! e pra fazer isso você ja foi buscar no banco todos os registros hehehe

 

nao to querendo criticar seu code, ateh pq quem sou eu pra isso huauh

soh to querendo passar q qq paginacao, via recordset ou nao, tem q pegar todos os registros do banco pra paginar, quer você queira ou nao, se nao no codigo, no minimo usando paginacao no proprio sgbd.

 

flw!

<{POST_SNAPBACK}>

a simmmm agora entendi... ai sim eu uso RS porque é mais leve ou recordcount ou select count para pegar o total... porque não ajudaria em nada, trazer todos os registros só para conta-lo se não quero deixar o cidog pesado ahahahaha

 

entendi o que você quis dizer, mas então por select count eu pego total de registros e brinco com matematica para dividir pelo neumro de registros por pagina que o user define e talz...

 

são pouquissimos dados que tem que se mexer e to tentando antes de joga-lo aqui deixar o codigo menor e mais funcional ainda... rs

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.