Dificuldade em uma linha de comando no Delphi em um formulário de cadastro

10/05/2019

0

Ola Pessoal estou tendo dificuldade em uma linha de comando no Delphi em um formulário de cadastro.

eu tenho um formulário de cadastro com vários campos para serem preenchido. no total de 19 campos que são:
id
Nome
CPF
Sexo
Endereco
Numero
Complemento
Bairro
Cidade
UF
Cep
Telefone
Celular
Contato
Email
Data_Nasc
Cargo
Usuario
Senha

Porem ao inserir a linha de comando no botão de editar do formulário que é esta:
DM.QryConFuncionarios.Close;
DM.QryConFuncionarios.SQL.Clear;
DM.QryConFuncionarios.SQL.Add(''Update funcionarios set nome=:nome,cpf=:cpf,sexo=:sexo,endereco=:endereco,numero=:numero,complemento=:complemento,bairro=:bairro,cidade=:cidade,uf=:uf,cep=:cep,telefone=:telefone,celular=:celular,contato=:contato,email=:email,data_nasc=:data_nasc,cargo=:cargo,usuario=:usuario,senha=:senha where id=:id'');

Informa o seguinte erro: "String too long at line 588 (588:40)" Porque este erro? uma linha de comando no Delphi tem limite de caracteres
José Soares

José Soares

Responder

Post mais votado

10/05/2019

basta dividir a instrução em mais linhas. fica mais fácil até para manutenções futuras:
DM.QryConFuncionarios.Close;
DM.QryConFuncionarios.SQL.Clear;
with DM.QryConFuncionarios.SQL do
begin
	Add('Update funcionarios set ');
	Add('nome=:nome,cpf=:cpf,sexo=:sexo,endereco=:endereco,numero=:numero,');
	Add('complemento=:complemento,bairro=:bairro,cidade=:cidade,uf=:uf,cep=:cep,');
	Add('telefone=:telefone,celular=:celular,contato=:contato,email=:email,');
	Add('data_nasc=:data_nasc,cargo=:cargo,usuario=:usuario,senha=:senha ');
	Add('where id=:id');
end;

Emerson Nascimento

Emerson Nascimento
Responder

Mais Posts

10/05/2019

José Soares

basta dividir a instrução em mais linhas. fica mais fácil até para manutenções futuras:
DM.QryConFuncionarios.Close;
DM.QryConFuncionarios.SQL.Clear;
with DM.QryConFuncionarios.SQL do
begin
	Add(''Update funcionarios set '');
	Add(''nome=:nome,cpf=:cpf,sexo=:sexo,endereco=:endereco,numero=:numero,'');
	Add(''complemento=:complemento,bairro=:bairro,cidade=:cidade,uf=:uf,cep=:cep,'');
	Add(''telefone=:telefone,celular=:celular,contato=:contato,email=:email,'');
	Add(''data_nasc=:data_nasc,cargo=:cargo,usuario=:usuario,senha=:senha '');
	Add(''where id=:id'');
end;

Obrigado pela ajuda, fiz como explicado e deu certo, não apareceu a mensagem de limite de string.

Tenho outras duvidas mas vou explicar detalhadamente neste mesmo formulário farei um relato completo explicando. caso poder me ajudar em explicar de como proceder fico muito grato com a ajuda. Obrigado
Responder

10/05/2019

Jonatas Alves

Ola Pessoal estou tendo dificuldade em uma linha de comando no Delphi em um formulário de cadastro.

eu tenho um formulário de cadastro com vários campos para serem preenchido. no total de 19 campos que são:
id
Nome
CPF
Sexo
Endereco
Numero
Complemento
Bairro
Cidade
UF
Cep
Telefone
Celular
Contato
Email
Data_Nasc
Cargo
Usuario
Senha

Porem ao inserir a linha de comando no botão de editar do formulário que é esta:
DM.QryConFuncionarios.Close;
DM.QryConFuncionarios.SQL.Clear;
DM.QryConFuncionarios.SQL.Add(''Update funcionarios set nome=:nome,cpf=:cpf,sexo=:sexo,endereco=:endereco,numero=:numero,complemento=:complemento,bairro=:bairro,cidade=:cidade,uf=:uf,cep=:cep,telefone=:telefone,celular=:celular,contato=:contato,email=:email,data_nasc=:data_nasc,cargo=:cargo,usuario=:usuario,senha=:senha where id=:id'');

Informa o seguinte erro: "String too long at line 588 (588:40)" Porque este erro? uma linha de comando no Delphi tem limite de caracteres


Sim, em Delphi um string pode receber de uma só vez até 255 caracteres, ou seja, você não precisa necessariamente quebrar a string em "substrings", você pode por exemplo fazer o seguinte:

procedure TfrmMain.Button1Click(Sender: TObject);
var
     nome: string ;
begin
     nome := 'asdfsakçfljaçsdlkfjaçlskdfjaçlkdsjfalksdjlakdfçlasdj' ;
     nome := nome + 'kfçlkajskjçkdfldsjdssasdfsakçfljaçsdlkfjaçlskdfjaçlkdsjfalksdjlakdfçlasdjkfçlkajskjçkdfldsjdssasdf' ;
     nome := nome + 'sakçfljaçsdlkfjaçlskdfjaçlkdsjfalksdjlakdfçlasdjkfçlkajskjçkdfldsjdssasdfsakçfljaçsdlkfjaçlskdfjaçl' ;
     nome := nome + 'kdsjfalksdjlakdfçlasdjkfçlkajskjçkdfldsjdssasdfsakçfljaçsdlkfjaçlskdfjaçlkdsjfalksdjlakdfçlasdjkfçlkajskjç' ;
end;


ir seccionando a string, até atingir o conteúdo desejado!

Boa sorte!
Responder

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

Aceitar