Retornar um vetor?

6 respostas
rocha

Olá pessoal?

Eu tenho o seguinte método em uma classe chamada Funcao

<blockquote>// Método Select

public String select () {

String txtFuncao[];

int i = 0;
try{
		String sql = "SELECT funcao FROM tbfuncao ";
		Statement st = vconexao.createStatement();
		ResultSet rs = st.executeQuery(sql);
		
		if( ! rs.next() )
		{
			System.out.print("Nao foi possivel realizar a consulta");
		}
		else
		{
			while( rs.next() )
			{
				txtFuncao[0] = "&lt;option&gt;"+ (rs.getString("Funcao")) +"&lt;/option&gt;";
				i++;
			}
		}
	}catch( Exception e ){}
	
	return txtFuncao[];
}

mas não tá dando certo eu queria saber como faço para retornar este vetor?

Rocha

6 Respostas

P

A assinatura do metodo deve conter em seu tipo de retorno os colchetes, indicando que um array sera retornado.

So que no seu metodo o array, so o indice 0 sendo preenchido.
E vc precisa declar seu array com o tamanho …

Use Collections…e bem mais produtivo e possui muitos metodos utilitarios de insercao,remocao, iteração,etc

// Método Select

public String[] select () {

String txtFuncao[];

int i = 0;
try{

String sql = "SELECT funcao FROM tbfuncao ";

Statement st = vconexao.createStatement();

ResultSet rs = st.executeQuery(sql);
if( ! rs.next() )

{

System.out.print(“Nao foi possivel realizar a consulta”);

}

else

{

while( rs.next() )

{

txtFuncao[0] = <option>”+ (rs.getString(“Funcao”)) +"</option>";

i++;

}

}

}catch( Exception e ){}

return txtFuncao;
}

danieldestro

O correto é

public String[] select() {

//… seu codigo

}
rocha

Valeuuuuuuuuuu!!!

Rafael_Steil
"rocha":
// Método Select
	public String select () {
		String txtFuncao[];
		int i = 0;

		try{
			String sql = "SELECT funcao FROM tbfuncao ";
			Statement st = vconexao.createStatement();
			ResultSet rs = st.executeQuery(sql);
			
			if( ! rs.next() )
			{
				System.out.print("Nao foi possivel realizar a consulta");
			}
			else
			{
				while( rs.next() )
				{
					txtFuncao[0] = "<option>"+ (rs.getString("Funcao")) +"</option>";
					i++;
				}
			}
		}catch( Exception e ){}
		
		return txtFuncao[];
	}

Rocha

Esse teu codigo tem um erro *muito* basico: primeiro voce faz um !rs.next(), e, dependendo do resultado, vc faz um while(rs.next()). Ao chamar rs.next(), o cursor eh avancado uma posicao. Se voce entrar no else, ou seja, for processar o while(), vocee ira ter perdido um resultado.

Rafael

rocha

qual é a melhor maneira de eu inicializar este vetro txtfuncao[]

Rocha

cv1

E, pelo amor de deus, TRATE A EXCEPTION!

Criado 7 de julho de 2004
Ultima resposta 7 de jul. de 2004
Respostas 6
Participantes 5