Perca de dados ao inserir no banco?

Galera eu insiro os dados no sql server e alguns dados de alguns campos se perdem, mas eu debuguei e os dados estao la nos beans!!! e o estranho e porque ele perde so alguns numeros de um campo exemplo cnpj ele perde os 3 primeiros numeros111

[code]public void inserirDados(Collection list) {

	Sindical_Bean beanInterno = new Sindical_Bean();
	Iterator it = list.iterator();
	
	try {
		stmt = conexaoSQLServer.createStatement();
		int pos = 30000;
		while (it.hasNext()) {
			beanInterno = (Sindical_Bean) it.next();
					stmt.execute("INSERT INTO tblBaixaSindical (idPagamento,cnpj"
							+ ",valorJuro,valorMulta,valorDaGuia,exercicio,tipo,meio"
							+ ",banco,entidadeSindical,usuario,capitalSocial,dataVencimento"
							+ ",dataPagamento,dataBaixa) VALUES("
							+ pos
							+ ","
							+ beanInterno.getCnpj()
							+ ",0,0,"
							+ beanInterno.getValorContribuicao()
							+ ","
							+ beanInterno.getExercicio()
							+ ",'guia','normal','bb','Fecomercio',63,0,"
							+ beanInterno.getDataVencimento()
							+ ","
							+ beanInterno.getDataPagamento()
							+ ","
							+ beanInterno.getDataBaixa() + ");");
			pos++;
		}
		System.out.println(beanInterno.getCnpj());
		System.out.println(beanInterno.getDataPagamento());
	} catch (SQLException e) {
		e.printStackTrace();
	}
	
	
}[/code]

Se alguem tiver ideia!!!

Falow!!!

1º não use o metodo execute() para inserir algo no banco, use executeUpdate()

2º não use uma expressão SQL feia desse jeito, use PreparedStatement e passe os valores como parametros

3º se está perdendo alguma coisa, provavelmente o campo no banco é pequeno demais para a quantidade de dados que você está tentando inserir…

Valeu era isso mesmo eu usei o preparedstatement e funcionou legal so tem um problema em vez de ele inserir 8 registros ele inseri so 7 porque???

[code]public void inserirDados(Collection list) {

	Sindical_Bean beanInterno = new Sindical_Bean();
	Iterator it = list.iterator();
	
	try {
		PreparedStatement stmt = conexaoSQLServer.prepareStatement("INSERT INTO tblBaixaSindical (idPagamento,cnpj"
				+ ",valorJuro,valorMulta,valorDaGuia,exercicio,tipo,meio"
				+ ",banco,entidadeSindical,usuario,capitalSocial,dataVencimento"
				+ ",dataPagamento,dataBaixa) VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?);");
		int pos = 30000;
		while (it.hasNext()) {
			beanInterno = (Sindical_Bean) it.next();
							
			stmt.setInt(1,pos);
			stmt.setString(2,beanInterno.getCnpj());
			stmt.setString(3,"0");
			stmt.setString(4,"0");
			stmt.setString(5,beanInterno.getValorContribuicao());
			stmt.setString(6,beanInterno.getExercicio());
			stmt.setString(7,"guia");
		    stmt.setString(8,"boleto");
		    stmt.setString(9,"bb");		
		    stmt.setString(10,"Fecomercio");
		    stmt.setString(11,"63");		
		    stmt.setString(12,"0");
		    stmt.setString(13,"31/02/2006");
		    stmt.setString(14,beanInterno.getDataPagamento());
		    stmt.setString(15,"18/05/2006");
		    stmt.execute();
		    pos++;
		}
		} catch (SQLException e) {
		e.printStackTrace();
	}
	
	
}[/code]

Valeu pela ajuda!!!1

É só um palpite… confere o tipo de dado que voce esta tentando inserir no banco. caso no banco o cnpj seja do tipo number e vc tentar inserir algo como ‘011111111’ vai dar problema…

Boa sorte !!!

Não use execute(), use executeUpdate();

Uma pergunta só, você já parou a execução, ou já mostrou esta lista neste método para ver se tem realmente 8 registros? Não é por nada não, mas o problema deve estar antes disso aí, o problema deve estar onde você está pengando os dados do usuário.

:joia:

Fala Foxan,

Beleza cara?

Se eu fosse fazer isso, nao faria com uma inserção por iteração,
colocaria no lugar do rs.execute, um addBatch();
e na saida do laço um ps.executeBatch();

[]s cara

Renato