Ir para conteúdo

POWERED BY:

Arquivado

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

claudemircruz

guardar adados de uma query em um array

Recommended Posts

Se o que for retornar do banco de dados for um campo só, é simples.

 

ASP [/tr][tr]

Dim cliente()

 

strSQL = "select nome from clientes"

Set RecSet = Server.CreateObject("ADODB.RecordSet")

RecSet.Open(strSQL)

 

total = RecSet.RecordCount

Redim clientes(total)

 

For i = 0 to total-1

clientes(i) = RecSet("nome")

RecSet.MoveNext

Next

[/tr]

 

Se for mais de um campo ai fica um pouco mais complicado.

 

Se for o caso, é só falar que eu coloco o script.

 

Espero ter ajudado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, nesse caso temos 2 caminhos:

 

Inevitavelmente teremos que criar uma matriz.

algo parecido com isso:

 

lista(2,4)

 

o caminho facil é fixar uma das dimenções da matriz, e tornar só a outra variavel, nesse caso, como você disse que são 7 campos seria algop como:

 

ASP [/tr][tr]

 

Dim cliente()

 

strSQL = "select * from clientes"

Set RecSet = Server.CreateObject("ADODB.RecordSet")

RecSet.Open(strSQL)

 

total = RecSet.RecordCount

Redim clientes(6,total)

 

For i = 0 to total - 1

cliente(0,i) = RecSet(0)

cliente(1,i) = RecSet(1)

cliente(2,i) = RecSet(2)

cliente(3,i) = RecSet(3)

cliente(4,i) = RecSet(4)

cliente(5,i) = RecSet(5)

cliente(6,i) = RecSet(6)

RecSet.MoveNext

Next

 

[/tr]

 

Bom, isso funciona no caso dos 7 campos, mas caso você queira usar o script pra qualquer tabela, independente do numero de campos, também é possivel, só que é bem mais complicado. Caso essa seja sua necessidade, é só falar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

No momento isto me resolve, mais como tenho que olhar pra frente estou no início e ainda tenho muito a desenvolver com certeza precizarei saber mais.

Por isto pesso que me mostre como fazer para variar ambos os índices do array...

 

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom vamos la... como disse é um pouco mais complicado então eu vou comentar o codigo:

 

ASP [/tr][tr]

 

'Primeiro declaramos a matriz que vai guardar os dados ta tabela, sem predefinir indices

Dim cliente()

 

'Depois setamos o Recordset, mas perceba que ao invez de abrir uma string vamos abrir direto a tabela setando como 3 o tipo de cursor

Set RecSet = Server.CreateObject("ADODB.RecordSet")

RecSet.Open("clientes"), conexao, 3, 1

 

'Então pegamos os totais de campos e de registros para criar os indices da matriz

totCampos = RecSet.Fields.Count

totRegistros = RecSet.RecordCount

 

'Depois de recolhermos as informações vamos redeclarar a matriz, dessa vez com os indices

Redim cliente(totCampos,totRegistros)

 

'começamos com um loop nos registros

For i = 0 to totRegistros-1

 

'então damos um loop nos campos

For j = 0 to totCampos-1

 

'Adicionamos o valor do campo "j" na linha "i" ao correspondente na matriz

cliente(j,i) = RecSet.Fields(j).value

 

'Rebatemos o loop dos campos

Next

 

'Passamos para a proxima linha na tabela

RecSet.MoveNext

 

'Rebatemos o loop dos registros

Next

 

[/tr]

 

Bom eu acho que é isso, faça um teste, caso haja algum problema poste para que eu arrume o script.

 

Espero ter ajudado..

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.