Fórum Insert into várias Tabelas diferentes #341282

04/05/2007

0

Estou com com este código:
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
procedure TF_FATURAMENTO.gravarClick(Sender: TObject);
begin
try
transacao.TransactionID:=1;
transacao.IsolationLevel:= xilREPEATABLEREAD;
dm.CONEXAO.StartTransaction(transacao);
dm.SDS_FATURAMENTO.close;
dm.SDS_FATURAMENTO.CommandType:=ctQuery;
dm.SDS_FATURAMENTO.CommandText:=´insert into FATURAMENTO (id_cod, id_prestador, id_cliente,´ +
´id_periodo, id_valor, id_servico_extra, id_motoboy, ´ +
´id_segunda_via, id_copia, id_total) values( :id_cod, :id_prestador,´ +
´:id_cliente, :id_periodo, :id_valor, :id_servico_extra, :id_motoboy,´ +
´:id_segunda_via, :id_copia, :id_total)´;
dm.SDS_FATURAMENTO.ParamByName(´id_cod´).AsString:= //não sei se precisa, ou faz o controle pelo DB, auto-incremento
dm.SDS_FATURAMENTO.ParamByName(´id_cliente´).AsString:= //campo de outra tabela --> cliente //esta em um DBLookupListBox1 é recomendavel?
dm.SDS_FATURAMENTO.ParamByName(´id_periodo´).AsString:=periodo; //esta no db como DATE
dm.SDS_FATURAMENTO.ParamByName(´id_valor´).AsString:=valor; //campo de outra tabela --> servicos
dm.SDS_FATURAMENTO.ParamByName(´id_servico_extra´).AsString:= serv_extra;
dm.SDS_FATURAMENTO.ParamByName(´id_motoboy´).AsString:=moto_boy;
dm.SDS_FATURAMENTO.ParamByName(´id_segunda_via´).AsString:=segunda_via;
dm.SDS_FATURAMENTO.ParamByName(´id_copia´).AsString:=copias;
dm.SDS_FATURAMENTO.ParamByName(´id_total´).AsString:=total; //quero que faça as somas dos campos id_valor até id_copia
dm.SDS_FATURAMENTO.ExecSQL(transacao);
dm.CONEXAO.Commit(transacao);
except
on Exc:Exception do
begin
ShowMessage(´Ocorreu um erro na tentativa de inclusão do registro: ´+Exc.Message);
dm.CONEXAO.Rollback(transacao);
end;
end;
end;
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

1)id_cod --> é a chave primária da tabela FATURAMENTO. Quero saber se da colocar só no DB(auto-incremento) sem ter que ter um campo no FORM.
2)id_cliente --> esse campo é de outra tabela chamada CLIENTE. No form está em um DBLookupListBox1;
3)id_periodo --> esse campo está como date no db. Quero saber se desta forma está correto;
4)id_valor --> esse campo é de outra tabela chamada SERVICO. Estou querendo pegar o valor que está ligada ao serviço e jogar automaticamente neste DBEdit. Tem como?
5)id_servico_extra a id_copia são da tabela em questão: FATURAMENTO
6)id_total-> quero que id_total seja = a soma de id_valor até id_cópia. Tem como?

Sei que são muitas dúvidas.
Quem puder vai ajudando aê. Nunca fiz inserção de dados com tantas tabelas diferentes.
Valeu.


Jpauloss

Jpauloss

Responder

Posts

04/05/2007

Jpauloss

Sobe


Responder

Gostei + 0

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

Aceitar