Pessoal, coloquei em attach um método que estou tendo problemas.... Ele
carrega um vetor corretamente mas na hora de retorná-lo ocorrem algumas
alterações.
Coloquei vários comentários para auxiliar no compreendimento do
método.... por favor dêem uma olhada.... estou com urgência disso e não
consigo resolver o problema....
[]'s Valter
O problema que está acontecendo é o seguinte: Dentro do for, o vetor é carregado
corretamente,
com três objetos do tipo Fornecimento. Eu sei disso por que já testei. Quando o for
acaba e
vai dar o "return vetor" o conteúdo do vetor já não é mais o mesmo !!!
Explicando melhor: Depois da última repetição do for, o primeiro objeto fornecimento
do vetor,
possui um fornecedor de código 1, o segundo um fornecedor de código 2 e um terciro
fornecedor de
código 3. Se eu mandar imprimir os códigos dos fornecedores fora do "for", isto é,
uma linha antes dele retonar (return) aparecerá que o primeiro objeto fornecimento do
vetor
possui código 2 ! o segundo código 3! e o terceiro também código 3 !!!
public Vector SetObject2(ResultSet rsFornec)
{
Vector vetor = new Vector();
try
{
// inicio da declaração das variáveis necessárias
int material;
Vector vectorFornecedor = new Vector();
Vector vectorMaterial = new Vector();
Vector vectorDataFornecimento = new Vector();
Integer codFornecedor;
Integer codMaterial;
int codMaterialI;
int codFornecedorI;
String dataFornecimento;
CodigoFornecimento codigoFornecimento;
Fornecimento fornecimento1;
material material1 = new material();
Fornecedor fornecedor1 = new Fornecedor();
ResultSet rsMaterial;
ResultSet rsFornecedor;
// final da declaração das variáveis necessárias
int i = 0;
// while responsável por criar tres vetores. Um com o codigo dos
fornecedores, outro
// com o código dos materiais e outro com a data de fornecimento. Tudo pego
do resultSet
// que chegou como parâmetro.
while (rsFornec.next ())
{
codFornecedor = new Integer(rsFornec.getInt ("fornecedor"));
codMaterial = new Integer(rsFornec.getInt ("material"));
vectorMaterial.addElement (codMaterial);
vectorFornecedor.addElement (codFornecedor);
vectorDataFornecimento.addElement (rsFornec.getString
("dataFornecimento"));
}
// o objetivo do for é criar um vetor de objetos do tipo Fornecimento. O objeto
do tipo
// fornecimento é formado por um objeto do tipo CodigoFornecimento e uma String
dataFornecimento.
// o objeto do tipo CodigoFornecimento é formado pelos objetos Material e
Fornecedor.
// sendo assim, primeiro eu carrego um objeto fornecedor, depos um material,
crio o objeto
// codigoFornecimento e crio um objeto Fornecimento. E em seguida adiciono no
vetor. O for
// repete esta ação para todos os elementos do vetor de codigos de fornecedor
criado no while
// anterior.
for (int cont = 0; cont < vectorFornecedor.size (); cont++)
{
codFornecedor = (Integer)vectorFornecedor.elementAt(cont);
codMaterial = (Integer)vectorMaterial.elementAt (cont);
codMaterialI = codMaterial.intValue ();
codFornecedorI = codFornecedor.intValue ();
dataFornecimento = (String)vectorDataFornecimento.elementAt (cont);
fornecedor1.setCodigo (codFornecedorI);
rsFornecedor = null;
rsFornecedor = fornecedor1.findlike ();
// o método findlike procura esse objeto no banco e joga os dados em um RS.
if (rsFornecedor.next ())
{
fornecedor1 = fornecedor1.SetObject (rsFornecedor);
// o método SetObject pega os dados do rs passado e cria um objeto
}
material1.setCodigo (codMaterialI);
rsMaterial = null;
rsMaterial = material1.findlike ();
if (rsMaterial.next ())
{
material1 = material1.SetObject (rsMaterial);
}
codigoFornecimento = new CodigoFornecimento(material1,fornecedor1); //cria
objeto codigoFornecimento
fornecimento1 = new Fornecimento(codigoFornecimento, dataFornecimento); //
cria objeto Fornecimento
vetor.insertElementAt (fornecimento1,cont); adiciona elemento no vetor
// se eu mandar imprimir aqui está tudo certo...
}
// Se eu mandar iprimir aqui ele já trocou tudo...
return vetor;
}
catch (Exception e)
{
return null;
}
}
------------------------------ LISTA SOUJAVA ----------------------------
http://www.soujava.org.br - Sociedade de Usuários Java da Sucesu-SP
dúvidas mais comuns: http://www.soujava.org.br/faq.htm
regras da lista: http://www.soujava.org.br/regras.htm
para sair da lista: envie email para [EMAIL PROTECTED]
-------------------------------------------------------------------------