Olá pessoal,dei uma pesquisada aqui no forum,porém não encontrei nada a respeito.Tenho um dos campos do meu form,no qual é dada
a porcentagem de conclusão de um determinado evento.Quando eu digito um texto,por exemplo " foi concluido 1% do processo",e mando salvar,
não acontece nada,e se,no msmo campo eu ja tiver digitado algo antes,volta ao q estava antes,desde q tambem ão tenha o %.
Alguem sabe o que pode estar acontecendo?
Que banco de dados você tá usando? MySQL? SQL Server? …?
Como tá sendo feito o acesso? Hibernate? JDBC puro? …?
Se via JDBC, tá usando PreparedStatement ou Statement?
Estou usando SqlServer,PreparedStatement ,JDBC puro
Você tá declarando a string de inserção com ? e usando ps.setString() ?
Não deveria ter problema. Bem estranho.
isso mesmo.Realmente é estranho…estou tentando encontrar uma solução ,mas está um tanto complicado.
Poste o código. Eu poderia jurar que vc esta concatenando strings pra gerar o SQL pelo sintoma, mas pelo visto tem algum detalhe por ai perdido
Vc esta dando commit após salvar este texto?
O primeiro texto gravou direto no banco ou via aplicação?
está inserindo corretamente,se a string não tiver %,quando eu ponho o sinal,gera um logo dizendo q n pode inserir valor null no banco.Tipo
“a análise foi concluida em um total de 10% …” é como se o % anulasse o texto válido.QUanto a postar o codigo,o que vc quer?Meu metodo insert no DAO?
tenta por 10%
[quote=DaniloAl.].QUanto a postar o codigo,o que vc quer?Meu metodo insert no DAO?
[/quote]
Exatamente.
% é um caracter especial no SQL na cláusula LIKE, mas em “insert” não deveria ser. Você usa String.format ? É que para String.format, o % é também um caracter especial.
segue meu insert
public long adicionar(ItemOrganizacaoModel aElementoOrganizacional)
throws ConexaoException, AmbientExeception, AplicationException {
Connection con = null;
PreparedStatement statement = null;
long identificador = 0;
try {
String sql = Query.getInstance(ConstanteIf.SQL_PROPERTIES)
.getProperty("itemorganizacao.adicionar.insert");
con = this.getConexao();
statement = con.prepareStatement(sql);
// identificador = Sequence.getNextValue(
// con,NomeSequenceIf.SEQ_ELEMENTO_ORGANIZACIONAL).shortValue();
// statement.setShort(1,identificador);
statement.setByte(1, aElementoOrganizacional.getIdentificadorTipo()
.byteValue());
if (aElementoOrganizacional.getIdentificadorOrganizacional() == null) {
statement.setNull(2, Types.INTEGER);
} else {
statement.setLong(2, aElementoOrganizacional
.getIdentificadorOrganizacional().longValue());
}
statement.setLong(3, aElementoOrganizacional
.getIdentificadorUniNegocio().longValue());
statement.setString(4, aElementoOrganizacional.getNome());
if (aElementoOrganizacional.getDescricao() == null
|| aElementoOrganizacional.getDescricao().trim().length() <= 0) {
statement.setNull(5, Types.VARCHAR);
} else {
statement.setString(5, aElementoOrganizacional.getDescricao());
}
.
.
.