Como colocar mais de 255 chars em apenas um add de uma query

05/03/2004

0

Olá amigos

Como colocar mais de 255 caracteres em apenas um add de uma query?
query.close;
query.SQL.clear;
query.SQL.Add(´primeiros +-255´);
query.SQL.Add(´mais +- 255´);
query.SQL.Add(´mais +- 255);
query.SQL.Add(ultimos =-255);
query.open;

Gostaria de poder colocar em apenas um add, mesmo que tivesse que atribuir primeiro a uma variável.

Problema: sei que tem os tipos ShorString, ANSIstring e WideString.
Li no livro do Delphi 4.0 e no Help do Delphi 7.0 como usá-los.
Estou achando confuso, porque ao declarar como WideString ou ANSIstring, continua reclamando do tamanho.

Se alguém puder me explicar de uma forma bastante prática, fico agradecido.

T+


Delmar

Delmar

Responder

Posts

05/03/2004

Lucas Silva

é + ou - isso???
query.sql.Add(´ ...... ´+
                             ´........´+  
                             ´........´+  
                             ´........´+  
                             ´........´)



Responder

05/03/2004

Delmar

Isso é concatenação. No final serão mais que 255 caracteres que a função add vai adicionar.
Então obtenho o seguinte erro:
[Error] fpessoaCriterio.pas(63): String literals may have at most 255 elements

O problema em si, é fazer com que o compilador suporte atribuição de strings com tamanho maior que 255. Tmb vi alguma coisa a respeito da diretiva {$H}.

Veja isto. Help do delphi 7.0

A string represents a sequence of characters. Delphi supports the following predefined string types.

String types
Type Maximum lengtg Memory required
ShortString 255 characters 2 to 256 bytes
AnsiString ~2^31 characters 4 bytes to 2GB
WideString ~2^30 characters 4 bytes to 2GB

AnsiString, sometimes called the long string, is the preferred type for most purposes.

String types can be mixed in assignments and expressions; the compiler automatically performs required conversions. But strings passed by reference to a function or procedure (as var and out parameters) must be of the appropriate type. Strings can be explicitly cast to a different string type (see Typecasts).

The reserved word string functions like a generic type identifier. For example,

[color=darkblue:8e98ef92d7]var S: string;

creates a variable S that holds a string. In the default {$H+} state, the compiler interprets string (when it appears without a bracketed number after it) as AnsiString. Use the {$H-} directive to turn string into ShortString.[/color:8e98ef92d7]

Onde poderia colocar a diretiva {$H+}, pois acredito que isto deve ser a solução, ou seja, minha instalação delphi deve star {$H-} (fora do padrão).


Responder

16/07/2023

Christiano Sousa

Cara tenta isso porque eu realmente também nao curto essas limitações:
joga um MEMO no form e testa isso,

procedure TForm1.FormCreate(Sender: TObject);
var
m4xString : String;
begin
m4xString := ' ';
SetLength(m4xString, 1024);
m4xString := 'Aqui vai aquele seu texto com a historia dos sete anões';
memo1.lines.add(m4xString);
end;


Responder

16/07/2023

Christiano Sousa

Cara tenta isso porque eu realmente também nao curto essas limitações:
joga um MEMO no form e testa isso,

procedure TForm1.FormCreate(Sender: TObject);
var
m4xString : String;
begin
m4xString := ' ';
SetLength(m4xString, 1024);
m4xString := 'Aqui vai aquele seu texto com a historia dos sete anões';
memo1.lines.add(m4xString);
end;


Responder

16/07/2023

Christiano Sousa

Cara tenta isso porque eu realmente também nao curto essas limitações:
joga um MEMO no form e testa isso,

procedure TForm1.FormCreate(Sender: TObject);
var
m4xString : String;
begin
m4xString := ' ';
SetLength(m4xString, 1024);
m4xString := 'Aqui vai aquele seu texto com a historia dos sete anões';
memo1.lines.add(m4xString);
end;
Responder

16/07/2023

Christiano Sousa

Cara tenta isso porque eu realmente também nao curto essas limitações:
joga um MEMO no form e testa isso,

procedure TForm1.FormCreate(Sender: TObject);
var
m4xString : String;
begin
m4xString := ' ';
SetLength(m4xString, 1024);
m4xString := 'Aqui vai aquele seu texto com a historia dos sete anões';
memo1.lines.add(m4xString);
end;

Espero que tenham gostado!!

m4x
Responder

17/07/2023

Arthur Heinrich

A diretiva {$H+} é colocada no código, quando queremos utilizar a funcionalidade localmente, ligando com o + e desligando com o -.

No seu caso, entendo que você gostaria sempre de utilizar Huge Strings.

Vá no menu Project / Options / Compiler e marque a opção Huge Strings.

Depois, basta fazer o rebuild do projeto.
Responder

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

Aceitar