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

MySQL

Design

10/05/2019

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

Curtidas 0

Melhor post

Emerson Nascimento

Emerson Nascimento

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;
GOSTEI 1

Mais Respostas

José Soares

José Soares

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;

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
GOSTEI 0
Jonatas Alves

Jonatas Alves

10/05/2019

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!
GOSTEI 0
POSTAR