DbExpress com MSSQL e Campos do Tipo Char

18/11/2005

0

Pessoal
Estou com o seguinte problema
Eu tenho um banco de dados em SQL Server que acesso ele através dos drivers do dbexpress. Estou tendo um grande problema com relação aos campos char já que ele tá trazendo o valor do campo todo até com os espaços em branco.
Ex.: Tenho um campo char de tamanho 10 que o valor dele é 5 mas quando eu resgato ele me traz 5 . ( com 9 espacos em branco)
Alguem sabe algum parâmetro que eu possa usar para poder somente trazer o 5
Já tentei utilizar o SetOption(eConnTrimChar, Integer(True)); do sqlconnetcion mas mesmo assim nao funcionou.


Italocarlo

Italocarlo

Responder

Posts

20/11/2005

Bon Jovi

A modelagem de dados está errada pra poder acontecer isso. Qdo se cria um campo do tipo char imagina-se que sempre ocupará todo o tamanho. Mude o tipo para varchar.


Responder

21/11/2005

Italocarlo

Para os outros bancos como firebird e oracle eu setando o Parâmetro ´Trim Char´ para True na propriedade da conexão, ele me retorna a string sem espaços em branco, já no MSSQL esse parâmetro nao ta funcionando..
Se alguem souber, ficaria grato como resolver este problema.


Responder

21/11/2005

Gandalf.nho

Como o colega acima falou, use VARCHAR ao invés de CHAR. CHAR normalmente só se usa em casos em que o conteúdo do campo sempre terá exatamente aquele tamanho tais como CEP, sigla de estado, CPF, essas coisas.


Responder

21/11/2005

Italocarlo

Pessoal, essa solucao se aplica para um projeto novo.. mas quando se trata de uma migração de uma aplicação q ja existe e q tem bases em sql server rodando com mais de 30gb de dados.. fica complicadissimo fazer esta mudanca ja q o sql server nao tem uma maneira facil de mudar um tipo de dado de um dominio..

Mas o unico banco que nao funciona o Parametro Trim Char é o MSSQL.

Já no componente da Corelabs .. eles possuem esta opção.. funcionando..

O dbexpress é realmente uma ferramenta confiável para trabalhar ou ainda é uma ferramenta que apresentas alguns bugss não resolvidos..?

Alem desse problema to tendo mais problemas com dbexpress como: O Commando locate gera uma excecao quando chamado pelo SimpleDataSet no datamodule remoto.. Ele naos traz os defaults dos campos not null qnd tem default definido.. porem exige o preenchimento dos mesmos diferentemente do BDE.


Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar