You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘id_contribuinte = 54448’ at line 1
O engraçado é que se eu usar no prompt eu consigo atualizar os dados…
Obrigado pela Ajuda!
Isso não faz a menor diferença[/quote]
Ainda esta semana tive um problema igual, mas em ORACLE, e era o ; que estava a mais.
E se estamos numa de não fazer diferença, usar o StringBuilder neste caso também não faz diferença nenhuma…[/quote]
O cenário é específico e ele está usando MySQL, logo, não faz diferença manter ou não o ponto e vírgula na string que irá ser execxutada pelo banco.
O Oracle possui um comportamento diferente, por isso você teve que tomar esta atitude.
Com relação ao uso de StringBuilder, caso você não saiba, o ganho de desempenho pode chegar a até 30 vezes. Além do mais, o código fica muito mais limpo para quem lê.
Além do mais, o problema pode ter sido ocasionado pela utilização de String e da concatenação que este objeto exige (utilizando o operador +).
Concordo que a String era até pequena, pois a query é simples, mas, o dia que ele precisar criar uma query com mais de 1000 linhas, ele vai entender o por que de utilizar StringBuilder, não apenas pela legibilidade do código, mas, principalmente, pelo tempo que o processo todo tomará.
[quote=drsmachado]
Com relação ao uso de StringBuilder, caso você não saiba, o ganho de desempenho pode chegar a até 30 vezes. Além do mais, o código fica muito mais limpo para quem lê.
Além do mais, o problema pode ter sido ocasionado pela utilização de String e da concatenação que este objeto exige (utilizando o operador +).
Concordo que a String era até pequena, pois a query é simples, mas, o dia que ele precisar criar uma query com mais de 1000 linhas, ele vai entender o por que de utilizar StringBuilder, não apenas pela legibilidade do código, mas, principalmente, pelo tempo que o processo todo tomará.[/quote]
Isso não é verdade.
Neste caso usar StringBuilder e String tem exactamente o mesmo desempenho.
A concatenação é feita logo pelo compilador, uma vez que apenas são usadas constantes.
E, caso fossem usadas variaveis, o compilador também transformava em StringBuilder.
O que tu dizes é verdade quando temos a construção da string de forma condicional ou num ciclo. E aí sim, deve ser usado StringBuilder.