Como salvar edits no banco de dados?

Delphi

IBExpert

14/01/2019

Tenho um banco de dados e nele há a tebela ''CLIENTES'', no delphi tenho uma aplicação que possuir varios edit's que quero gravar o que fizer nesses edit's e mandar pro banco.No delphi tenho o FDQuery, DataSource e um TDBGrid(Só pra conferir os dados). Como posso salvar os edit's no banco de dados?
Lucas Araújo

Lucas Araújo

Curtidas 2

Melhor post

Jucélio Silva

Jucélio Silva

14/01/2019

E ae Lucas , blz cara,

Então você pode salvar de muitas formas os valores de campos no banco, a mais simples seria trocar seus campos por DB que são campos vinculados a tabelas , outra forma é pegar o conteúdo e gravar via SQL.

Exemplo considerando que você tenha o campo cod_cliente e nom_cliente no banco e tenha dois edits edtCod_cliente e edtNom_cliente e vá gravar por SQL:
'INSERT INTO CLIENTES (COD_CLIENTE,NOM_CLIENTE) VALUES ( '+QuotedStr(edtCod_cliente.text)+','+QuotedStr(edtNom_cliente.text)+') ';

Basicamente seria isso, mas você pode fazer isso com passagem de parâmetros também .... a função QuotedStr coloca aspas no valor considerando que sejam texto ....

Espero que te de uma luz de como fazer, mas caso tenha dificuldades posta aqui que tentamos ajudar com mais informações... boa sorte ...
GOSTEI 3

Mais Respostas

Lucas Araújo

Lucas Araújo

14/01/2019

E ae Lucas , blz cara,

Então você pode salvar de muitas formas os valores de campos no banco, a mais simples seria trocar seus campos por DB que são campos vinculados a tabelas , outra forma é pegar o conteúdo e gravar via SQL.

Exemplo considerando que você tenha o campo cod_cliente e nom_cliente no banco e tenha dois edits edtCod_cliente e edtNom_cliente e vá gravar por SQL:
'INSERT INTO CLIENTES (COD_CLIENTE,NOM_CLIENTE) VALUES ( '+QuotedStr(edtCod_cliente.text)+','+QuotedStr(edtNom_cliente.text)+') ';

Basicamente seria isso, mas você pode fazer isso com passagem de parâmetros também .... a função QuotedStr coloca aspas no valor considerando que sejam texto ....

Espero que te de uma luz de como fazer, mas caso tenha dificuldades posta aqui que tentamos ajudar com mais informações... boa sorte ...


Então, tentei com o sql só que está dando : ''[dcc32 Error] Clientes.pas(88): E2014 Statement expected, but expression of type 'string' found.
[dcc32 Fatal Error] F2063 Could not compile used unit 'Clientes.pas' ''
Pela parte dos botoes DB, ao seta o dataset, como identifico os campos da tabela?
GOSTEI 0
Lucas Araújo

Lucas Araújo

14/01/2019

Ah, saquei aqui, estava colocando os FDQuery.sql.add(id,nome)... no botão adicionar, mas na verdade era pra estar no botão de gravar junto com o comando FDQuery.execSQL e fmModulos_Dados.FDConnection1.Commit;
O codigo do processo foi esse:

procedure TfmClientes.BTGravarClick(Sender: TObject);
begin
FDQUERY1.sql.clear;
FDQUERY1.sql.add('INSERT INTO CLIENTES (ID,NOME) VALUES ('+EDCodigo.text+','+QuotedStr(EDNome.text)+')');
FDquery1.ExecSQL;
fmModulos_Dados.FDConnection1.Commit;
GOSTEI 1
Jucélio Silva

Jucélio Silva

14/01/2019

Ah, saquei aqui, estava colocando os FDQuery.sql.add(id,nome)... no botão adicionar, mas na verdade era pra estar no botão de gravar junto com o comando FDQuery.execSQL e fmModulos_Dados.FDConnection1.Commit;
O codigo do processo foi esse:

procedure TfmClientes.BTGravarClick(Sender: TObject);
begin
FDQUERY1.sql.clear;
FDQUERY1.sql.add('INSERT INTO CLIENTES (ID,NOME) VALUES ('+EDCodigo.text+','+QuotedStr(EDNome.text)+')');
FDquery1.ExecSQL;
fmModulos_Dados.FDConnection1.Commit;


Boa, é isso ai, com essa base agora você pode fazer muita coisa XD...
GOSTEI 0
Jucélio Silva

Jucélio Silva

14/01/2019

Ah, saquei aqui, estava colocando os FDQuery.sql.add(id,nome)... no botão adicionar, mas na verdade era pra estar no botão de gravar junto com o comando FDQuery.execSQL e fmModulos_Dados.FDConnection1.Commit;
O codigo do processo foi esse:

procedure TfmClientes.BTGravarClick(Sender: TObject);
begin
FDQUERY1.sql.clear;
FDQUERY1.sql.add('INSERT INTO CLIENTES (ID,NOME) VALUES ('+EDCodigo.text+','+QuotedStr(EDNome.text)+')');
FDquery1.ExecSQL;
fmModulos_Dados.FDConnection1.Commit;


Boa, é isso ai, com essa base agora você pode fazer muita coisa XD...


Ah sobre Binding de campo tem muita coisa aqui na dev, segue um link que fala um pouco , mas isso muda um pouco de versão para versão do delphi :
https://www.devmedia.com.br/livebindings-a-evolucao-no-delphi/30142
GOSTEI 1
Lucas Araújo

Lucas Araújo

14/01/2019

Ah, saquei aqui, estava colocando os FDQuery.sql.add(id,nome)... no botão adicionar, mas na verdade era pra estar no botão de gravar junto com o comando FDQuery.execSQL e fmModulos_Dados.FDConnection1.Commit;
O codigo do processo foi esse:

procedure TfmClientes.BTGravarClick(Sender: TObject);
begin
FDQUERY1.sql.clear;
FDQUERY1.sql.add('INSERT INTO CLIENTES (ID,NOME) VALUES ('+EDCodigo.text+','+QuotedStr(EDNome.text)+')');
FDquery1.ExecSQL;
fmModulos_Dados.FDConnection1.Commit;


Boa, é isso ai, com essa base agora você pode fazer muita coisa XD...


Ah sobre Binding de campo tem muita coisa aqui na dev, segue um link que fala um pouco , mas isso muda um pouco de versão para versão do delphi :
https://www.devmedia.com.br/livebindings-a-evolucao-no-delphi/30142


Muito obrigado pela ajuda
GOSTEI 0
POSTAR