[Cascavel-pm] DBD::ODBC, escape sequences e placeholders
Eden Cardim
edencardim em gmail.com
Quinta Novembro 26 16:55:33 PST 2009
>>>>> "Alceu" == Alceu R de Freitas <glasswalk3r em yahoo.com.br> writes:
Alceu> Vou passar parte do código apenas por desencargo. Eu já fiz
Alceu> vários testes, mas o erro obtido ocorre mesmo passando
Alceu> valores undef. A documentação orienta a passar datas no
Alceu> formato AAAA-MM-DD, mas mesmo assim não funciona.
Basicamente, o DBI não introspecta nenhum dos valores passados, então
você precisa formatar os dados manualmente antes de passar pro backend,
pra lidar com quoting, palavras-chave, etc.
Alceu> data_criacao = { d ? }, data_atualizacao = { d ? },
data_criacao = { d '?' }, data_atualizacao = { d '?' }
se você fizar $date = '2009-01-01' e passar $date pro bind vai ficar:
data_criacao = { d '2009-01-01' }, data_atualizacao = { d '2009-01-01' }
que é a sintaxe que o backend espera.
Alceu> Agora se eu montar a query desta forma (usando valores
Alceu> hardcoded):
Alceu> UPDATE t_pm_projeto SET nom_projeto = ?, data_criacao = { d
Alceu> '2008-01-15' }, data_atualizacao = { d '2009-22-11' },
Alceu> cod_status = ?, nom_produto = ?, num_pacientepotencialmes =
Alceu> ?, num_pacientemesatual = ?, nom_setor = ? WHERE cod_projeto
Alceu> = ?
Alceu> aí os dados são atualizados corretamente.
tem certeza que '2008-01-15' e '2009-22-11' atualiza corretamente? uma
dessas duas datas não são válidas, e talvez seja disso que o backend
está reclamando.
--
Eden Cardim Need help with your Catalyst or DBIx::Class project?
Code Monkey http://www.shadowcat.co.uk/catalyst/
Shadowcat Systems Ltd. Want a managed development or deployment platform?
http://edenc.vox.com/ http://www.shadowcat.co.uk/servers/
Mais detalhes sobre a lista de discussão Cascavel-pm