Fórum UpdateSQL estou realmente precissando de ajuda ! #170638
22/07/2003
0
E ai pessoal !
Estou utilizando pela primeira vez o updatesql, não tenho a menor experiência na utilização deste componente, tenho a seguinte procedure
que lista todas as mensalidades de um aluno do ano corrente
[color=blue:20be7a5319]procedure TFormMensa.BitBtn1Click(Sender: TObject);
var D1 : Tdate;
i : integer ;
begin
DataModule1.QryMensa.Close;
DataModule1.QryMensa.ParamByName(´vcp00´).Value := vg_CodAluno ;
DataModule1.QryMensa.ParamByName(´vcp01´).Value := StrToInt(copy(DateToStr(now),7,4));
DataModule1.QryMensa.Open;
end; [/color:20be7a5319]
o SQL da minha QUERY
[color=green:20be7a5319]select Venc as DtVenc, Tpag as Tpaga, Pago as DtPago, Mult as Tmult,
Mensa as Tmensa,Descont as Tdescont, Tota as Ttota, codigo as CodMensa,
situa as situacao, Fkcodigo_Aluno as cod_alu
from MensaKami
where Fkcodigo_Aluno = :vcp00
and
extract(year from Venc) = :vcp01
order by Venc [/color:20be7a5319]
uso a seguinte instrução no UpdadeSQL em MODIFYSQL para alterar o valor do campo situa( abreviatura de situação ) quando a data de vencimento for menor do que a data do sistema, toda vez que a query e executada ( o UpdateSQL não faz nada ).
[color=green:20be7a5319]update MensaKami set situa = ´atrasado´ where venc <[/color:20be7a5319] [color=red:20be7a5319]date[/color:20be7a5319]
Acho que o parâmetro date esta incorreto e se caso estiver mesmo como eu faria para incluir este parâmetro no UpDateSQL.
Se puderem me explicar detalhadamente o uso deste componente , me ajudaria muito .
Agradeço com antecedência .
Estou utilizando pela primeira vez o updatesql, não tenho a menor experiência na utilização deste componente, tenho a seguinte procedure
que lista todas as mensalidades de um aluno do ano corrente
[color=blue:20be7a5319]procedure TFormMensa.BitBtn1Click(Sender: TObject);
var D1 : Tdate;
i : integer ;
begin
DataModule1.QryMensa.Close;
DataModule1.QryMensa.ParamByName(´vcp00´).Value := vg_CodAluno ;
DataModule1.QryMensa.ParamByName(´vcp01´).Value := StrToInt(copy(DateToStr(now),7,4));
DataModule1.QryMensa.Open;
end; [/color:20be7a5319]
o SQL da minha QUERY
[color=green:20be7a5319]select Venc as DtVenc, Tpag as Tpaga, Pago as DtPago, Mult as Tmult,
Mensa as Tmensa,Descont as Tdescont, Tota as Ttota, codigo as CodMensa,
situa as situacao, Fkcodigo_Aluno as cod_alu
from MensaKami
where Fkcodigo_Aluno = :vcp00
and
extract(year from Venc) = :vcp01
order by Venc [/color:20be7a5319]
uso a seguinte instrução no UpdadeSQL em MODIFYSQL para alterar o valor do campo situa( abreviatura de situação ) quando a data de vencimento for menor do que a data do sistema, toda vez que a query e executada ( o UpdateSQL não faz nada ).
[color=green:20be7a5319]update MensaKami set situa = ´atrasado´ where venc <[/color:20be7a5319] [color=red:20be7a5319]date[/color:20be7a5319]
Acho que o parâmetro date esta incorreto e se caso estiver mesmo como eu faria para incluir este parâmetro no UpDateSQL.
Se puderem me explicar detalhadamente o uso deste componente , me ajudaria muito .
Agradeço com antecedência .
Kanedasam
Curtir tópico
+ 0
Responder
Posts
22/07/2003
Gersonely
Companheiro este componete ´updatesql´ e usado apenas quando se quer gravar em cachedpdate para aliviar o trafego na rede.
ou quando se atualisa ( Select com mais de uma tabela )
cachedpdate = true ( parametro do tquery )
UpdateObject = ´ nome dos seu updatesql ´ ( parametro do tquery )
neste caso seu codigo ficaria assim :
procedure TFormMensa.BitBtn1Click(Sender: TObject);
var D1 : Tdate;
i : integer ;
begin
DataModule1.QryMensa.Close;
DataModule1.QryMensa.ParamByName(´vcp00´).Value := vg_CodAluno ;
DataModule1.QryMensa.ParamByName(´vcp01´).Value := StrToInt(copy(DateToStr(now),7,4));
DataModule1.QryMensa.Open;
while not DataModule1.QryMensa.eof do
begin
if DataModule1.QryMensaVenc < date then
DataModule1.QryMensa. situa = ´atrasado´;
DataModule1.QryMensa. post;
DataModule1.QryMensa.next;
end;
// Quando ele realmente grava seus dados no arquivo
if DataModule1.QryMensa.UpdatesPending then
begin
DataModule1.QryMensa.ApplyUpdates;
DataModule1.QryMensa.CommitUpdates;
end ;
end;
espero não ter complicado mais anida
:D
ou quando se atualisa ( Select com mais de uma tabela )
cachedpdate = true ( parametro do tquery )
UpdateObject = ´ nome dos seu updatesql ´ ( parametro do tquery )
neste caso seu codigo ficaria assim :
procedure TFormMensa.BitBtn1Click(Sender: TObject);
var D1 : Tdate;
i : integer ;
begin
DataModule1.QryMensa.Close;
DataModule1.QryMensa.ParamByName(´vcp00´).Value := vg_CodAluno ;
DataModule1.QryMensa.ParamByName(´vcp01´).Value := StrToInt(copy(DateToStr(now),7,4));
DataModule1.QryMensa.Open;
while not DataModule1.QryMensa.eof do
begin
if DataModule1.QryMensaVenc < date then
DataModule1.QryMensa. situa = ´atrasado´;
DataModule1.QryMensa. post;
DataModule1.QryMensa.next;
end;
// Quando ele realmente grava seus dados no arquivo
if DataModule1.QryMensa.UpdatesPending then
begin
DataModule1.QryMensa.ApplyUpdates;
DataModule1.QryMensa.CommitUpdates;
end ;
end;
espero não ter complicado mais anida
:D
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)