Bem estou precisando fazer a comparação entre os códigos que estão em dois arquivos, ARQ1 E ARQ2, só que não sei se estou fazendo certo, pois eu preciso comparar os códigos do ARQ2 com ARQ1, se o código do ARQ2 não existir em ARQ1 eu preciso pegar esse código que está em ARQ2 e colocá-lo dentro de ARQ1 ou jogá-lo dentro de um arquivo.txt.
Eu fiz assím.
while(rs.next())
{
//ARQ1
codigo = rs.getString("COD_PRODUT");
while(rs1.next())
{
//ARQ2
codigo1 = rs1.getString("COD_PRODUTO");
if (codigo1.equals(codigo) || codigo1 == codigo)
{
achoucodigo = true;
System.out.println(""+achoucodigo+" "+codigo+"");
}
else
{
achoucodigo = false;
System.out.println(""+achoucodigo+" "+codigo1+"");
}
}
}
Não se preocupem com o arquivo texto isso eu já sei como implementar, meu problema é no código de como comprarar os dois e se não existir pegar o novo código.
Peço desculpas a TODOS os integrantes do GUJ, sei que isso é problema programação e não Java eu acho!! só que eu não tinha a quem recorrer só a vocês.
Agradeço muito qualquer ajuda. 
O problema ocorre porque voce deveria voltar o objeto rs1 para o inicio, usando rs1.beforeFirst(), caso contrario ele somente ira ser executado ( por completo ) uma unica vez, o que logicamente nao eh o que voce quer.
Tambem nao eh necessario comparar os objetos ( usando == ), ja que nesse caso nao vai fazer diferenca alguma. Arrumado, sei codigo ficaria como
while(rs.next())
{
//ARQ1
codigo = rs.getString("COD_PRODUT");
while(rs1.next())
{
//ARQ2
codigo1 = rs1.getString("COD_PRODUTO");
if (codigo1.equals(codigo))
{
achoucodigo = true;
System.out.println(""+achoucodigo+" "+codigo+"");
}
else
{
achoucodigo = false;
System.out.println(""+achoucodigo+" "+codigo1+"");
}
}
// Faz o ponteiro voltar ao inicio
rs1.beforeFirst();
}
Rafael
Está dando este erro!!
java.sql.SQLException: Result set type is TYPE_FORWARD_ONLY
o que siguinifica e como posso resolver!!
Tente fazer assim :
rs.next();
do
{
codigo = rs.getString("COD_PRODUT");
rs1.beforeFirst();
while(rs1.next())
{
codigo1 = rs1.getString("COD_PRODUTO");
if (codigo1.equals(codigo) || codigo1 == codigo)
{
achoucodigo = true;
System.out.println(""+achoucodigo+" "+codigo+"");
}
else
{
achoucodigo = false;
System.out.println(""+achoucodigo+" "+codigo1+"");
}
}
}
while(rs.next());
Use no rs1 as propriedades que permitam voce mover o cursor para o primeiro registro enquanto o rs.next()
createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
[]´s
Está dando este erro no final, parece que ele não está voltando ao início para comparar com o próximo código, seri isso ou estou enganado!!
java.sql.SQLException: [Microsoft][ODBC Driver Manager] Invalid cursor state
Hum, voce setou o Statement com as propriedades?
Qual banco voce ta usando?
[]´s
Sim setei, o Statement como vc mensionou acima, eu não estou usando um banco ainda é um arquivo texto e um dbf que estou utilizando!!
E o driver de DBF suporta essas operacoes?
Rafael
Hum darta, com arquivo nunca fiz.
Pensei que esses resultset eram resultado de um consulta no banco, algo assim!
[]´s
Rafa agora não sei, estou usando JDBC:ODBC!! teria como eu saber se o ODBC que criei ele suporta ou não essas propriedades.
Deve ter uma explicação para este erro certo??
darta:
este banco que vc esta usando aceita sim os codigos e as propriedades que foram colocados acima…quando vc da um next() em um resultset ele avança o “ponteiro” do registro e corre todos os registros.
Com arquivo tb nunca havia feito, mas agora que vc esta usando BD, vai na fé que dá certo!
Ate mais…