Fórum Como gravar usando SQL? #326425

28/07/2006

0

Boa tarde amigos Delphianos, gostaria de saber como gravar em SQL este codigo

dm.TBconta.Last;
    ProxNum:=dm.TBconta.FieldByName(´sequencia´).AsInteger +1;
    dm.TBconta.Append;
    dm.TBconta.Edit;
    dm.TBconta.FieldByName(´sequencia´).AsInteger:=ProxNum;
    dm.TBconta.fieldbyname(´contad´).value:=e1.text;
    dm.TBconta.fieldbyname(´numcontad´).value:=et1.text;
    dm.TBconta.fieldbyname(´nomecd´).value:=label12.caption;
    dm.TBconta.fieldbyname(´numconta´).value:=et1.text;
    dm.TBconta.fieldbyname(´nomeCONTA´).value:=label12.caption;
    dm.TBconta.fieldbyname(´valord´).value:=e3.text;
    dm.TBconta.fieldbyname(´valor´).value:=e3.text; //valor fixo p/calculo soma
    dm.TBconta.fieldbyname(´conta´).value:=e1.Text;
    dm.TBConta.FieldByName(´DC´).value:=´D´;
    dm.TBconta.fieldbyname(´descricao´).value:=r1.text;
    dm.tbconta.fieldbyname(´data´).value:=maskedit1.text;
    DM.tbconta.FieldByName(´dataextenso´).value:=uppercase(formatdatetime(´MMMM´,(STRTODATE(Maskedit1.TEXT)))
    +´ / ´+formatdatetime(´YYYY´,(STRTODATE(MaskEdit1.TEXT))));
    DM.tbconta.FieldByName(´mes´).value:=uppercase(formatdatetime(´MM´,(STRTODATE(Maskedit1.TEXT))));
    DM.tbconta.FieldByName(´ANO´).value:=uppercase(formatdatetime(´YYYY´,(STRTODATE(Maskedit1.TEXT))));
    dm.TBconta.fieldbyname(´historico´).value:=r1.text;
    dm.TBconta.POST;
    //-grava credito--------------
    dm.TBconta.Append;
    dm.TBconta.Edit;
    aguardedadoson;
    dm.TBconta.FieldByName(´sequencia´).AsInteger:=ProxNum;
    dm.TBconta.fieldbyname(´contac´).value:=e2.text;
    dm.TBconta.fieldbyname(´numcontac´).value:=et2.text;
    dm.TBconta.fieldbyname(´nomecc´).value:=label13.caption;
    dm.TBconta.fieldbyname(´numconta´).value:=et2.text;
    dm.TBconta.fieldbyname(´nomecONTA´).value:=label13.caption;
    dm.TBconta.fieldbyname(´valorc´).value:=e3.text;
    dm.TBconta.fieldbyname(´valor´).value:=e3.text; //valor fixo p/calculo soma
    dm.TBconta.fieldbyname(´conta´).value:=e2.Text;
    dm.TBConta.FieldByName(´DC´).value:=´C´;
    dm.TBconta.fieldbyname(´descricao´).value:=r1.text;
    dm.tbconta.fieldbyname(´data´).value:=maskedit1.text;
    DM.tbconta.FieldByName(´dataextenso´).value:=uppercase(formatdatetime(´MMMM´,(STRTODATE(Maskedit1.TEXT)))
     +´ / ´+formatdatetime(´YYYY´,(STRTODATE(MaskEdit1.TEXT))));
    DM.tbconta.FieldByName(´mes´).value:=uppercase(formatdatetime(´MM´,(STRTODATE(Maskedit1.TEXT))));
    DM.tbconta.FieldByName(´ANO´).value:=uppercase(formatdatetime(´YYYY´,(STRTODATE(Maskedit1.TEXT))));
    dm.TBconta.fieldbyname(´historico´).value:=r1.text;
    dm.TBconta.POST;


Mudar pra essi

with dm.qtbcontalan do
    begin
    close;
    sql.clear;
    SQL.Add(´Insert into qtbcontalan (sequencia, contad,nomecd, numconta, nomeconta, valord,
    valor, conta, dc, descricao, data, dataextenso, mes, ano, historico) values (´+´´´´+edit1.Text+´´´´+´) ´);
ExecSQL;



Veja bem num quero que ninguem fassa o SQL só me explicar como coloco o que esta dentro do edit nos campos igaul essi

dm.TBconta.fieldbyname(´numcontac´).value:=et2.text;

me sql como seria?

Outra coisa gravo em dupicidade estes campos tem como fazer em SQL tambem, e esti outro campo como gravarei em SQL

DM.tbconta.FieldByName(´dataextenso´).value:=uppercase(formatdatetime(´MMMM´,(STRTODATE(Maskedit1.TEXT)))
+´ / ´+formatdatetime(´YYYY´,(STRTODATE(MaskEdit1.TEXT))));
DM.tbconta.FieldByName(´mes´).value:=uppercase(formatdatetime(´MM´,(STRTODATE(Maskedit1.TEXT))));
DM.tbconta.FieldByName(´ANO´).value:=uppercase(formatdatetime(´YYYY´,(STRTODATE(Maskedit1.TEXT))));


Agora antes de fazer o codigo SQL a pergunta, compensa gravar usando o insert into ou usar o ttable mesmo?


Jlimajr

Jlimajr

Responder

Posts

28/07/2006

Paullsoftware

voce pode criar os valores como parametros tipo:
´values (:Campo1, :Campo2, :CampoN)´;
ParamByName(´Campo1´).AsString := Edit1.Text;
ParamByName(´Campo2´).AsString := Edit2.Text;
ParamByName(´CampoN´).AsString := EditN.Text;

depois da o ExecSql; espero ter ajudado :wink:


Responder

Gostei + 0

28/07/2006

Jlimajr

Entendi colega, muito bom, agora a pergunta, é melhor usar ou seja incluir usando SQL ou usando da forma que está acima tipo append e depois post


Responder

Gostei + 0

28/07/2006

Paullsoftware

Entendi colega, muito bom, agora a pergunta, é melhor usar ou seja incluir usando SQL ou usando da forma que está acima tipo append e depois post

Creio que as duas maneiras são corretas, porém até onde sei os comandos SQL são processados de forma mais rápida sem contar que os dados são gravados direto no banco...


Responder

Gostei + 0

28/07/2006

Jlimajr

No caso preciso usar commit e rollback tambem em SQL?

to usando firebird 1.5 delphi 5.0


Responder

Gostei + 0

28/07/2006

Jlimajr

opa esqueci de mencionar qui tambem uso a aba interbase com ibquery, ibtransaction e ibtable.

e o applyupdates(0) naum sei pra que serve.

desculpe sou iniciante.


Responder

Gostei + 0

29/07/2006

Raserafim

applyupdates é uma função do ClientDataSet que grava os dados para o Banco de Dados. entre parênteses é o parâmetro que é especificado quantos erros são permitidos.

ex: se fizer assim: if ClientDataSet.ApplyUpdates(0) then

quer dizer que se a atualização ocorrer sem nenhum erro então...


Responder

Gostei + 0

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

Aceitar