Douglas_fc
Mensagens : 4 Data de inscrição : 15/09/2012
| Assunto: Botão gravar [Resolvido] Sáb Set 15, 2012 8:26 am | |
| bom dia galera
tenho um aduvida eu usava muito post, edit e não tinha problemas mais resolvi mudar usar SQL mesmo ai onde fiquei na duvida.
O botão gravar é o mesmo pra gravar a inclusão e a edição como seria a logica pra quando eu incluir ele leia o sql de insert e na edição leia o update, em relação o codigo tranquilo do insert e update o negocio é a logica pra usar um ou o outro.
Última edição por Douglas_fc em Seg Set 24, 2012 4:01 pm, editado 1 vez(es) | |
|
volverine
Mensagens : 14 Data de inscrição : 28/01/2011
| Assunto: Re: Botão gravar [Resolvido] Sáb Set 15, 2012 10:34 am | |
| Para INSERIR - Código:
-
query1.close; query1.SQL.Clear; query1.SQL.Add('INSERT INTO NOME DA TABELA'); query1.SQL.Add('( CAMPOS DA TABELA QUE VAO RECEBER VALORES SEPARADOS POR VIRGULA )'); query1.SQL.Add('VALUES'); query1.SQL.Add('( NOVAMENTE OS CAMPOS DA TABELA QUE VÃO RECEBER VALORES MAS COM :NOME )'); query1.SQL.Parameters.parambyname('NOME DO CAMPO').value:= DADO P/ INCLUSAO; query1.SQL.execsql; Para ALTERAR - Código:
-
query1.Close; query1.SQL.Clear; query1.SQL.Add('UPDATE TABELA SET CAMPO=:PAR1 WHERE id = 2'); query1.Parameters.parambyname('PAR1').value := EDIT1.Text; query1.SQL.execsql; Para DELETAR - Código:
-
query1.Close; query1.SQL.Clear; query1.SQL.Add('Delete * from TABELA WHERE id = 1'); query1.execsql; sendo o 1 uma variavel,ok. É só Adaptar ai. | |
|
Douglas_fc
Mensagens : 4 Data de inscrição : 15/09/2012
| Assunto: Re: Botão gravar [Resolvido] Sáb Set 15, 2012 12:07 pm | |
| essa parte eu a sei a minha duvida é
se eu uso um botão pra gravar tanto insert como update como saber qual operação to fazendo alterando ou incluindo essa éa duvida, pensei em criar um variavel mais não sei como fazer | |
|
volverine
Mensagens : 14 Data de inscrição : 28/01/2011
| Assunto: Re: Botão gravar [Resolvido] Sáb Set 15, 2012 2:16 pm | |
| - Douglas_fc escreveu:
- essa parte eu a sei a minha duvida é
se eu uso um botão pra gravar tanto insert como update como saber qual operação to fazendo alterando ou incluindo essa éa duvida, pensei em criar um variavel mais não sei como fazer explique melhor o que vc quer fazer? esta rotia é pra um frmulario certo? neste formulario é de cadastro ou alteração? ou os dois em um só? no formulario ou formulario vc usa edit ou dbedit? na questão do Botão vc deseja que o mesmo botão faça insert e o update? O comando SQL “UPDATE” permite modificar dados de um ou mais registros. o insert é para inserir dados usando“INSERT” e depois alterá-los com “UPDATE”. | |
|
Douglas_fc
Mensagens : 4 Data de inscrição : 15/09/2012
| Assunto: Re: Botão gravar [Resolvido] Seg Set 17, 2012 2:53 pm | |
| o meu formulario é de cadastro seria assim
botões
[novo] [gravar] [editar]
no meu botão gravar ele tanto vai gravar um insert quanto o update
então vou ter os dois codigos
insert
update
quando eu for gravar como o sistema vai entender que estou gravando uma alteração ou uma inclusão???
| |
|
volverine
Mensagens : 14 Data de inscrição : 28/01/2011
| Assunto: Re: Botão gravar [Resolvido] Ter Set 18, 2012 8:58 pm | |
| - Douglas_fc escreveu:
o meu formulario é de cadastro seria assim
botões
[novo] [gravar] [editar]
no meu botão gravar ele tanto vai gravar um insert quanto o update
então vou ter os dois codigos
insert
update
quando eu for gravar como o sistema vai entender que estou gravando uma alteração ou uma inclusão???
Bém pelo que eu entendi deste o inicio do post, vc disse que conhece a codificação usando sql. e vc relata que no mesmo botão gravar, vc quer que seja executado o insert ou update. vc quer saber como o sistema vai interpretar se é pra executar um ou outro. neste caso é logica de programação!. um exemplo: - Código:
-
try with qrylocal do begin close; sql.clear; sql.add (' select * from centrocustoind '); sql.add (' where idclientes = :cod '); sql.add (' and cdcentrocustoind = :pidcentrocusto '); parambyname ('cod').asinteger:= varcadclie; parambyname ('pidcentrocusto').asstring := dm.centrocusto.FieldByName('cdcentrocusto').asstring; open; if (isempty) then begin sql.clear; sql.add (' insert into centrocustoind '); sql.add (' (idclientes, idempresas, cdcentrocustoind, '); sql.add (' descricaocentroind, tipocentroind) '); // TIPOCENTROIND sql.add (' values( '); sql.add (' :idclientes, :idempresas, :cdcentrocustoind, '); sql.add (' :descricaocentroind, :tipocentroind) '); end else begin sql.clear; sql.add (' update centrocustoind set '); sql.add (' idclientes = :idclientes, '); sql.add (' idempresas = :idempresas, '); sql.add (' cdcentrocustoind = :cdcentrocustoind, '); sql.add (' descricaocentroind = :descricaocentroind, '); sql.add (' tipocentroind = :tipocentroind '); sql.add (' where (idclientes = :idclientes) '); sql.add (' and (cdcentrocustoind = :cdcentrocustoind) '); end; parambyname('idclientes').asinteger := varcadclie; parambyname('idempresas').asinteger := strtoint(frmprincipal.lblidempr.caption); parambyname('cdcentrocustoind').asstring := dm.centrocusto.FieldByName('cdcentrocusto').asstring; parambyname('descricaocentroind').asstring := descricaocentro.text; parambyname('tipocentroind').asstring := '1'; execsql; //executa um dois dois comandos insert ou update dm.connection.commit; end; except on e:Exception do begin raise exception.Create('Erro! Não foi possível alterar os dados.'); dm.connection.Rollback; application.terminate; exit; end; end; Explicando o código. Primeiro vc faz um select para saber se tem os campos que esta sendo passado via parametro no banco de dados, se não tiver como mostra o ISEMPTY, vc pode reparar é feito um INSERT (via sql) dos dados. agora o ELSE vai ver se o ISEMPTY for NOT então faz um UPDATE (via sql). e por final voce pode ver que passa os dados dos EDITS, LABELS ETC para o parametro. Logo em seguida executo o EXECSQL (depende do componente) e commito as transações com o banco. tudo esta envolvido no bloco try/except caso der erro entra no except e da um ROLLBACK. na tabela. é isto basta ajustar ai na sua aplicação. caso o exemplo tenha resolvido pra vc, no incio do topico no tiulo e acrescente para (Resolvido) se não exponha as duvidas se ainda tiver,ok. | |
|
Douglas_fc
Mensagens : 4 Data de inscrição : 15/09/2012
| Assunto: Re: Botão gravar [Resolvido] Seg Set 24, 2012 4:01 pm | |
| era exatamente o q eu tava querendo valeu mesmo!! | |
|
Conteúdo patrocinado
| Assunto: Re: Botão gravar [Resolvido] | |
| |
|