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...
Message search is now enhanced, find messages faster. Take it for a spin.

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 #245 of 256 |
RE: [st-br] Re: Problemas para gerar statement SQL

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 momento..."
Ainda bem que voces consiguiram desmitificar essa!
abraço,
Sebastian
 


De: st-br@yahoogroups.com [mailto:st-br@yahoogroups.com] En nombre de danilo.marcondes
Enviado el: Tuesday, January 20, 2009 10:11
Para: st-br@yahoogroups.com
Asunto: [st-br] Re: Problemas para gerar statement SQL

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.

Mas um programador da empresa onde trabalho me deu uma ajuda, acho
que ele já tinha enfrentado algum problema parecido com o meu, hehe.

Aqui onde trabalho, opero bastante com bancos do DB2 (IBM) e alguns
do Access. Dessa vez, estava mexendo com um banco MySQL.

No banco DB2, por exemplo, quando tenho um campo no banco de dados do
tipo CHAR(15), e digito uma palavra com 10 caracteres, o resto o
próprio DB2 completa com espaços em branco.
Porém, se eu tenho mesmo caso em um banco MySQL, ele completa o
restante com um caracter de valor nulo, que no smalltalk é o
caracter "(Character value: 0)".

Esse era o problema: Quando o programa ia concatenando os registros
no meu statement, e encontrava um campo desse tipo, esse caracter
nulo "quebrava" a String, e então eu obtia o erro na síntaxe.

Para solucionar o problema, precisei apenas utilizar o
método "abtWithoutOccurencesOf: (Character value: 0)", retirando esse
caracter nulo quando o campo fosse CHAR.

Agora o programa monta os statements corretamente.

Achei importante postar essa mensagem, caso alguém enfrente o mesmo
problema, para não ter de "quebrar a cabeça" como eu, hehe.

De qualquer forma, muito obrigado!

Danilo Marcondes

--- In st-br@yahoogroups.com, "Jecel Assumpcao Jr" <jecel@...> wrote:
>
> Danilo,
>
> [...]
> > 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.
> [...]
> > wstm := wstm copyFrom: 1 to: (wstm size - 4).
> [...]
>
> 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 imagino que não é
disso
> que você está falando. Só achei o -4 meio estranho - você não só
apaga a
> ',' e o CR e LF mas também o caracter final do resultado de (self
> asSql: (wrow at: (wnom asSymbol))). É sempre um espaço ou algo
assim?
>
> Eu aproveitaria os recursos interativos do ambiente de programação.
> Execute a expressão passo a passo no "debugger" (sem entrar em cada
> submétodo na primeira vez) e uso os inspetores para ver os detalhes
de
> cada objeto envolvido.
>
> Boa sorte!
> -- Jecel
>



Tue Jan 20, 2009 5:27 pm

ssastre@...
Send Email Send Email

Forward
Message #245 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