Search the web
Sign In
New User? Sign Up
st-br · Smalltalk Brasil
? Already a member? Sign in to Yahoo!

Yahoo! Groups Tips

Did you know...
Hear how Yahoo! Groups has changed the lives of others. Take me there.

Best of Y! Groups

   Check them out and nominate your group.
Having problems with message search? Fill out this form to ensure your group is one of the first to be migrated to the new message search system.

Messages

  Messages Help
Advanced
Problemas para gerar statement SQL   Message List  
Reply | Forward Message #242 of 256 |
Re: Problemas para gerar statement SQL

Para ver se o statement estava realmente correto, eu mandei que o
Smalltalk gerasse para mim um arquivo texto com ele.
Ao abrir o arquivo, vi que o statement estava com a sintaxe correta.

Eu até verifiquei a rotina que pega os registros do banco de dados,
mas os valores vêm normalmente...

O problema é realmente na hora de passar o string gerado ou de exibí-
lo para mim, é aí que ele aparece cortado.

O pior é que se eu gero um texto desse tamanho de alguma outra forma
(por exemplo, concatenando informações que eu mesmo tenha digitado),
ele gera o texto sem problemas também, mas o exibe inteiro.

Ainda estou procurando algo no VisualAge para ver se acho alguma
coisa ou a razão do problema.

Obrigado!

--- In st-br@yahoogroups.com, "Sebastian Sastre" <ssastre@...> wrote:
>
> Olá Danilo,
> certamente o default de um string *não é* ficar "comido" como para
ter que
> pedi-lo enteiro. Ele é o que é.
> Pode ser que o framework que interfaceia com o teu rdbms esteja te
fazendo
> passar um mal momento. Outra coisa pode ser o driver de odbc.
> Eu tentaría com opçoes ou com alguma ferramenta de diagnostico que
permita estar
> 100% certo de que o problema e dentro do st ou fora (drives, rdbms
encoding
> issues, etc).
> Se o string que teu codigo forma executa bem via um cliente
externo, nao vejo
> porque questiona lo.
> hope this helps,
> Sebastian
>
>
>
> _____
>
> De: st-br@yahoogroups.com [mailto:st-br@yahoogroups.com] En nombre
de
> danilo.marcondes
> Enviado el: Tuesday, January 13, 2009 11:21
> Para: st-br@yahoogroups.com
> Asunto: [st-br] Problemas para gerar statement SQL
>
>
>
> Estou programando uma classe no Smalltalk (VisualAge 6.0), que lê
um
> registro de uma tabela em um banco de dados e monta um statement de
> UPDATE, baseado nos nomes dos campos e nas informações que cada um
> deles contém.
>
> O statement UPDATE é gerado corretamente, e fica com um tamanho de
> pouco menos de 600 caracteres.
>
> Não sei por qual razão, quando o statement é passado para ser
> executado, o smalltalk "come" o final dele. Dessa forma, quando
tento
> executar o UPDATE, o programa me retorna erro de sintaxe.
>
> Esse é o meu método:
>
> ====================================================================
> alteraLinha: wrow chave: wchv tabela: wtab
>
> | wconweb wtabweb wstm wcr waux wlst |
>
> wconweb := AbtDbmSystem activeDatabaseConnectionWithAlias: 'WEBDB'.
>
> wtabweb := wconweb openTableNamed: #Tabela ifError: [ :werr |
> self rc: (self trataErro: werr).
> ^false
> ].
>
> wlst := wtabweb columnNamesIfError: [ :werr |
> self rc: (self trataErro: werr).
> ^false
> ].
>
> wcr := ((String with: (Character value: 13)), (String with:
> (Character value: 10))).
> wstm := 'UPDATE ', wtab, ' SET ', wcr.
>
> wlst do:[ :wnom |
>
> wstm := wstm, wnom, ' = '.
> wstm := wstm, (self asSql: (wrow at: (wnom
> asSymbol))).
> wstm := wstm, ', ', wcr.
>
> ].
>
> wstm := wstm copyFrom: 1 to: (wstm size - 4).
> wstm := wstm, ' WHERE ', wchv, ' = ', (self asSql: (wrow at: (wchv
> asSymbol))).
>
> wconweb executeSQLStatement: wstm ifError: [ :werr |
> self rc: (self trataErro: werr).
> ^false
> ].
>
> ====================================================================
>
> Obs.: O método "self asSql:" apenas transforma a informação que
> estiver em determinado campo no registro, para incluí-la na
> formatação correta no statement de update.
>
> Não sei se existe algum atributo na classe String que me permita
> enviar todos os caracteres.
> Achei um tanto quanto incomum esse evento, mas se alguém souber de
> alguma coisa, agradeço muito!
>
> Obrigado.
>





Tue Jan 13, 2009 5:37 pm

danilo.marco...
Offline Offline
Send Email Send Email

Forward
Message #242 of 256 |
Expand Messages Author Sort by Date

Estou programando uma classe no Smalltalk (VisualAge 6.0), que lê um registro de uma tabela em um banco de dados e monta um statement de UPDATE, baseado nos...
danilo.marcondes
danilo.marco...
Offline Send Email
Jan 13, 2009
1:20 pm

Olá Danilo, certamente o default de um string *não é* ficar "comido" como para ter que pedi-lo enteiro. Ele é o que é. Pode ser que o framework que...
Sebastian Sastre
ssastre@...
Send Email
Jan 13, 2009
3:25 pm

Para ver se o statement estava realmente correto, eu mandei que o Smalltalk gerasse para mim um arquivo texto com ele. Ao abrir o arquivo, vi que o statement...
danilo.marcondes
danilo.marco...
Offline Send Email
Jan 13, 2009
5:38 pm

Danilo, [...] ... [...] ... [...] Aqui você está "comendo o final do texto" de propósito. E logo na linha seguinte passa a ser o meio do texto de modo que...
Jecel Assumpcao Jr
jeceljr
Offline Send Email
Jan 13, 2009
6:26 pm

Olá Jecel! Essa parte, (wstm := wstm copyFrom: 1 to: (wstm size - 4)), onde ele tira os caracteres é proposital, para retirar um "AND" final do statement. ...
danilo.marcondes
danilo.marco...
Offline Send Email
Jan 20, 2009
12:11 pm

Brigado por compartilhar Danilo. Foi de fato o case falado em: "...Pode ser que o framework que interfaceia com o teu rdbms esteja te fazendo passar um mal...
Sebastian Sastre
ssastre@...
Send Email
Jan 20, 2009
5:29 pm
Advanced

Copyright © 2009 Yahoo! Inc. All rights reserved.
Privacy Policy - Terms of Service - Guidelines - Help