Pode have um caracter de controle (' por exemplo) no conteúdo de algum dos
campos, o que geraria um erro.
Como a sentença está sendo escrita dinamicamente fica difícil analisá-la.
Sugiro que você poste aqui a sentença SQL já montada (SQL.Text).
Abraço!
Jeferson Oliveira