Como imprimir os dados de uma tabela de acordo com um vetor ? [RESOLVIDO ]

4 respostas
kiq095

OI gente ....

meu problema e o seguinte ....

to pegando o nome das colunas de uma tabela e armazenando em um vetor ....

e depois pesquisando os dados ... mais ta dando um erro e nao consigo resolver ...

e o seguinte ...

vo colocar o codigo e depois falar o q quero ...

campos-nome e o vetor com os nomes das colunas
String Coluna="";

cont=campos_nome.length;

                  for(int k=0;k<=cont;k++){

                    if(campos_nome[k]!=null){

                        Campos=Campos+","+campos_nome[k];
                       }
                    else{
                    k=cont;
                      }

aqui eu formo a string ...

Campos=Campos.substring(1,Campos.length());
                       SQL_COPIAR=St.executeQuery("SELECT  "+Campos+"  FROM  Nome_tabela");

ficando assim ...

"SELECT CAMPO1,CAMPO2  FROM Nome_tabela"

ate aqui tudo ok ...

ai to pegando e imprimindo isso de acordo com os nomes dos campos ...

campos-nome e o vetor com os nomes das colunas

string Coluna="";

cont=campos_nome.length;

for(int h=0;h<=cont;h++){

                         Coluna=campos_nome[h];

                        if(Coluna!=null){
                            
                          
                                while(SQL_COPIAR.next()){
                                
                                Dados.add(SQL_COPIAR.getString(Coluna));
                                System.out.println(Dados);
                                test=true;
                                //receptor.inserir(Dados,h);
                                }
                           }
                        else{
                          h=cont;
                        }

isso da certo masi e o segunte ...

vamos supor que o primeiro campo do vetor seja CODIGO e o segundo seja NOME..

do jeito que to fasendo ta imprimndo acordo com o espaços do vetor ..

ou seja e o meu vetor for assim ..

// nome das colunas 
 Vetor[]
 [Codigo]
 [Nome]

na hora de imprimir fica assim ...

1
2
3
joao
pedro
marcos

jogando em uma lista fica assim ...

1,2,3,joao,pedro,marcos

mais eu queria que ficase assim ...

1,joao
2,pedro
3,marcos

imprimir por linas e nao por colunas ... tem como fazer isso ????
mais o vetor muda de tamanho e o nome dos campos de acordo com o desejo do usuario ...
entao nao da pra fazer assim..

while(SQL_COPIAR.next()){
                                
                                Dados.add(SQL_COPIAR.getString(Campo1));
                                Dados.add(SQL_COPIAR.getString(Campo2));
                                System.out.println(Dados);
                                test=true;
                                //receptor.inserir(Dados,h);
                                }

por q a cada escolha do usuario altera o numero de campos a serem imprimidos ..!!

entao o q eu fasso ??? :cry:

4 Respostas

leoviniga

Se eu entendi direito você pode resolver seu problema usando vetores multudimensionais…

declarando Vetor[][] em vez de Vetor[]

daí você insere com os indices Vetor[0][0] = codigo e Vetor[0][1] = nome e pra imprimir a mesma coisa

leoviniga

Ou você pode criar um objeto que contenha os atributos codigo e nome…

kiq095

um otima ideia …

mais tem um porem os campos sao o usuario que determina quais vao ser imprimidos…

se a tabela tiver 20 colunas e ele quiser imprimir as 20 ???

ou das 20 ele quiser imprimir 5 …

por q os nomes das colunas vao esta no vetor …

entedeu melhor meu problema ???

o vetor fica mudando de tamanho … e nao sei a quantidade de dados que exixtem em cada coluna … podem ter 100000000 insertes masi pode ter 0 …

eee osso …!!!

eu so tenho os nomes da colunas em um vetor e o nome da tabela …!!!

enteteu ???

qualquer coisa tento esplicar melhor !!!

kiq095

CONSEGUI FAZER AQUI ..!!!

valeu pela ajuda ... pra que quiser saber e assim q se faz ..!!!

while(SQL_COPIAR.next()){


                                   for(int t=0;t<=cont;t++){

                                     if(campos_nome[t] !=null){

                                         Coluna=SQL_COPIAR.getString(campos_nome[t]);
                                         Dados=Dados+",'"+Coluna+"'";
                                    }
                                    else{
                                         t=5;
                                    }


                                             

                                    }




// o resutado e 


//primeiro campos , segundo campo ,terceiro campo , e aasim por diante

//EX: 

1, joao, rua boa , ... 
2, pedro,rua bela...
3, marcos, rua sus...
Criado 24 de março de 2011
Ultima resposta 25 de mar. de 2011
Respostas 4
Participantes 2