Clube da Programação e Hardware
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.
Clube da Programação e Hardware

Tutorial, dicas, Programação, Hardware entre outros assuntos.
 
InícioInício  Últimas imagensÚltimas imagens  ProcurarProcurar  RegistarRegistar  Entrar  

 

 Botão gravar [Resolvido]

Ir para baixo 
2 participantes
AutorMensagem
Douglas_fc




Mensagens : 4
Data de inscrição : 15/09/2012

Botão gravar [Resolvido] Empty
MensagemAssunto: Botão gravar [Resolvido]   Botão gravar [Resolvido] EmptySá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)
Ir para o topo Ir para baixo
volverine




Mensagens : 14
Data de inscrição : 28/01/2011

Botão gravar [Resolvido] Empty
MensagemAssunto: Re: Botão gravar [Resolvido]   Botão gravar [Resolvido] EmptySá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.
Ir para o topo Ir para baixo
Douglas_fc




Mensagens : 4
Data de inscrição : 15/09/2012

Botão gravar [Resolvido] Empty
MensagemAssunto: Re: Botão gravar [Resolvido]   Botão gravar [Resolvido] EmptySá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
Ir para o topo Ir para baixo
volverine




Mensagens : 14
Data de inscrição : 28/01/2011

Botão gravar [Resolvido] Empty
MensagemAssunto: Re: Botão gravar [Resolvido]   Botão gravar [Resolvido] EmptySá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”.
Ir para o topo Ir para baixo
Douglas_fc




Mensagens : 4
Data de inscrição : 15/09/2012

Botão gravar [Resolvido] Empty
MensagemAssunto: Re: Botão gravar [Resolvido]   Botão gravar [Resolvido] EmptySeg 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???


Ir para o topo Ir para baixo
volverine




Mensagens : 14
Data de inscrição : 28/01/2011

Botão gravar [Resolvido] Empty
MensagemAssunto: Re: Botão gravar [Resolvido]   Botão gravar [Resolvido] EmptyTer 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.
Ir para o topo Ir para baixo
Douglas_fc




Mensagens : 4
Data de inscrição : 15/09/2012

Botão gravar [Resolvido] Empty
MensagemAssunto: Re: Botão gravar [Resolvido]   Botão gravar [Resolvido] EmptySeg Set 24, 2012 4:01 pm

era exatamente o q eu tava querendo valeu mesmo!!
Ir para o topo Ir para baixo
Conteúdo patrocinado





Botão gravar [Resolvido] Empty
MensagemAssunto: Re: Botão gravar [Resolvido]   Botão gravar [Resolvido] Empty

Ir para o topo Ir para baixo
 
Botão gravar [Resolvido]
Ir para o topo 
Página 1 de 1
 Tópicos semelhantes
-
» DBGrid com Progressbar (Resolvido)
» Ajuda com este erro "Field ID Not Found"[Resolvido]
» Alterar cores do PageControl (Delphi) (Resolvido )
» como Re-indexar em tabela paradox (Resolvido)
» Reiniciar aplicativo Externo automatico?(Resolvido)

Permissões neste sub-fórumNão podes responder a tópicos
Clube da Programação e Hardware :: PROGRAMAÇÃO :: Delphi-
Ir para: