Tipos de campos trazidos pelo DataSet

Delphi

23/06/2005

Ola pessoal, o texto é meio grande mas gostaria que vcs leiam.
Estou com um problema:

Preciso saber o tamanho de um campo String vindo de um Banco de Dados. Para isso estou usando um DataSet Ligado direto com o Banco.

Para pegar o respectivo campo, eu uso DataSet.Fields[i].DataType

Quando o tipo for um ´ftString´ blz, eu consigo acessar o DataSet.Fields[i].DataSize e consigo trazer o tamanho do Campo.

EX: DataType = STRING
DataSize = 50

O problema está quando o tipo do campo vem como ´ftWideString´. quando vem com este tipo, o DataSize deste campo vem sempre com o número 4, como se fosse o tamanho em bytes do campo.
Como eu faço para saber o tamanho exato deste campo?

Obrigado!


Seu_madruga

Seu_madruga

Curtidas 0

Respostas

Tnaires

Tnaires

23/06/2005

Olá
Não sei se isso resolve, mas pq vc não usa:
Length(Campo.AsString)

?
Abraços


GOSTEI 0
Seu_madruga

Seu_madruga

23/06/2005

Olá Não sei se isso resolve, mas pq vc não usa:
Length(Campo.AsString)
? Abraços


Porque isso iria me trazer o tamanho da String em si e não o tamanho permitido pelo campo:

´RAFAEL´ => Length = 6
´ASDFGHJKLM´ => Length = 10

Eu preciso do tamanho definido no Banco de Dados, por iso que não posso usar o seu método.
Valew


GOSTEI 0
Tnaires

Tnaires

23/06/2005

Ah entendi.
E pq a propriedade Size do TField não serve?
Abraços


GOSTEI 0
Seu_madruga

Seu_madruga

23/06/2005

Ah entendi. E pq a propriedade Size do TField não serve? Abraços


Servir, serve mas o problema é que quando o tipo vem como ´WideString´ o Size dele vem o número 4 e não o tamanho do campo em si. quando vem ´String´ o size vem certo, com o tamanho definido pelo banco. Não sei porque WideString vem com o valor 4 sendo.


GOSTEI 0
Seu_madruga

Seu_madruga

23/06/2005

Resolvido.

Tem uma propriedade ´Size´ que me traz o tamanho exato do campo.
Existe a propriedade DataSize e a Size, sendo que a diferença eu ainda não sei bem mas quando se usa DataSize com campos do tipo WideString, ele me retorna o valor 4, acho que deve ser o número de bytes reservdos para este campo.


GOSTEI 0
POSTAR