Fórum Ajuda em fazer um Update! #350288

07/12/2007

0

Bom, sei mexer pouco com esse negocio de Update, e tenho que fazer assim em um update.

Preciso salvar um campo de Observação que é da tabela de Praticas fazendo isso no form dos Alunos, então fiz assim, eu vizualizo as aulas marcadas dos alunos e tipo assim eu escolho a linha lá dá data e horario dá aula do aluno para colocar a Observação, clicando nessa linha eu mostro os seguinte campo nos edits, o campo do codigo do instrutor, categoria, data e horario da aula, ai escrevo a observação em um memo que coloquei, e salva em um outro botão só para isso, mas primeiro ele salvou em todas as aulas daquele aluno a observação e segundo ele trocou todos os horários pelo um mesmo dia do aluno, esse é o que eu fiz, preciso de ajuda de alguém....! :roll:

qui eu fiz um up para cada campo, mas acho que fiz errado



procedure Tfrmalunos.SpbSalvaClick(Sender: TObject);
begin
   If (QryPratica.RecordCount > 0) then
     Begin
        with DtmIza.QryUpMemo do
           Begin
              Close;
              SQL.Clear;
              SQL.Add (´Update Praticas´);
              SQL.ADD (´Set Observacao = ´ + QuotedStr(MemoObs.text));
              SQL.Add (´where aluno = ´+txtmat.Text);
              ExecSQL;
              Transaction.Commit;
              Select;
           end;
        end;

   If (QryPratica.RecordCount > 0) then
     Begin
        with DtmIza.QryUpIns do
           Begin
              Close;
              SQL.Clear;
              SQL.Add (´Update Praticas´);
              SQL.ADD (´Set Instrutor = ´ + QuotedStr(TxtIns.text));
              SQL.Add (´where aluno  = ´ + txtmat.text);
              ExecSQL;
              Transaction.Commit;
              Select;
           end;
        end;

   If (QryPratica.RecordCount > 0) then
     Begin
        with DtmIza.QryUpCat do
           Begin
              Close;
              SQL.Clear;
              SQL.Add (´Update Praticas´);
              SQL.ADD (´Set Categoria = ´ + QuotedStr(TxtCateg.text));
              SQL.Add (´where aluno = ´ + txtmat.text);
              ExecSQL;
              Transaction.Commit;
              Select;
           end;
        end;

           If (QryPratica.RecordCount > 0) then
     Begin
        with DtmIza.QryUpHora do
           Begin
              Close;
              SQL.Clear;
              SQL.Add (´Update Praticas´);
              SQL.ADD (´Set Horario  = ´+(QuotedStr(FormatDateTime(´hh:nn´,(StrToDate(TxtHor.Text) ) ))) );
              SQL.Add (´where aluno = ´ + txtmat.text);
              ExecSQL;
              Transaction.Commit;
              Select;
           end;
        end;
   If (QryPratica.RecordCount > 0) then
     Begin
        with DtmIza.QryUpData do
           Begin
              Close;
              SQL.Clear;
              SQL.Add(´UPDATE Praticas´);
              SQL.Add(´SET Data = ´+(QuotedStr(FormatDateTime(´dd.mm.yyyy´,(StrToDate(TxtData.Text) ) ))) );
              SQL.Add(´WHERE aluno = ´+txtmat.Text);
              ExecSQL;
              Transaction.Commit;
              Select;
           end;
        end;



Robinhocne

Robinhocne

Responder

Posts

08/12/2007

Sistemald

Rapaz,

deixa vê se eu entendi você tem uma tabela [b:351deae04f]Praticas[/b:351deae04f]

com os campos [b:351deae04f]Observacao, instrutor, categoria, horario[/b:351deae04f]

e você fez três SQL para atualizar o registro, se for isso você pode fazer

with DtmIza.QryUpData do
           Begin
              Close;
              SQL.Clear;
              SQL.Add(´UPDATE Praticas´);
              SQL.Add(´SET Data = :observacao, );  <repare a virgula
              SQL.Add(´SET Data = :instrutor, );  
              SQL.Add(´SET Data = :horario);
              SQL.Add(´WHERE aluno = :matricula´);
              //veja que coloquei :observacao pois será um paramtro da sql
              param[0].asstring:= MemoObs.text;
              param[1].asstring:= TxtIns.text;
              param[2].asdatetime:= TxtHor.text;
              param[3].asstring:= txtmat.txt;
              ExecSQL;
              Transaction.Commit;
              


Deste jeito você fara um update no registro ja existente.


Responder

Gostei + 0

08/12/2007

Sistemald

correção

ith DtmIza.QryUpData do
           Begin
              Close;
              SQL.Clear;
              SQL.Add(´UPDATE Praticas SET´);
              SQL.Add(´Data = :observacao, );  <repare a virgula
              SQL.Add(´Data = :instrutor, ); 
              SQL.Add(´Data = :horario);
              SQL.Add(´WHERE aluno = :matricula´);
              //veja que coloquei :observacao pois será um paramtro da sql
              param[0].asstring:= MemoObs.text;
              param[1].asstring:= TxtIns.text;
              param[2].asdatetime:= TxtHor.text;
              param[3].asstring:= txtmat.txt;
              ExecSQL;
              Transaction.Commit;
          end 



reparei que tirei o monte de ´set´


Responder

Gostei + 0

11/12/2007

Robinhocne

Fiz dessa maneira mas começa a dar erro no primeira virgula....??????


Responder

Gostei + 0

11/12/2007

Edilcimar

Afinal de contas a data é observação, instrutor ou horário?
Será que não está faltando um AND?


Responder

Gostei + 0

11/12/2007

Robinhocne

É assim deixa eu explicar, preciso salvar o campo observacao da tabela de Praticas para o horário especificado e data também,

Na tabela de [b:e34360b432]Praticas[/b:e34360b432] tenho os seguintes campos:

[b:e34360b432]
Aluno
Instrutor
Categoria
Data
Horario
Observacao
[/b:e34360b432]

Então eu preciso salvar o campo da observacao que é varchar, a data e horario são campos que já estão gravados, tipo assim: eu quero deixar uma observação para o instrutor amanhã nbo caso 12/12/2007 do horário das 15:00 hs, ai eu seleciono pelo o grid esses horários que são também vizualizados automaticamento no edit data e edit horario, e ai eu digito a observação que quero e gravo!


Responder

Gostei + 0

11/12/2007

Sistemald

ith DtmIza.QryUpData do 
           Begin 
              Close; 
              SQL.Clear; 
              SQL.Add(´UPDATE Praticas SET´); 
              SQL.Add(´Data = :observacao, );  <repare a virgula 
              SQL.Add(´Instrutor= :instrutor, ); 
              SQL.Add(´horario = :horario); 
              SQL.Add(´WHERE aluno = :matricula´); 
              //veja que coloquei :observacao pois será um paramtro da sql 
              param[0].asstring:= MemoObs.text; 
              param[1].asstring:= TxtIns.text; 
              param[2].asdatetime:= TxtHor.text; 
              param[3].asstring:= txtmat.txt; 
              ExecSQL; 
              Transaction.Commit; 
          end 



Responder

Gostei + 0

11/12/2007

Robinhocne

Consegui resolver, fiz dessa maneira:

   If (QryPratica.RecordCount > 0) then
     Begin
        with DtmIza.QryUpPraticas do
           Begin
              Close;
              SQL.Clear;
              SQL.Add (´Update Praticas´);
              SQL.ADD (´Set Observacao = ´ + QuotedStr(MemoObs.text));
              SQL.Add (´where aluno = ´+ QuotedStr(txtmat.Text) + ´ and Data = ´+ QuotedStr(FormatDateTime(´dd.mm.yyyy´,(StrToDate(TxtData.Text) ) ) ) +
                       ´ and Horario = ´ + QuotedStr(TxtHor.Text)  );
              ExecSQL;
              Transaction.Commit;
              Select;
           end;
        end;
    MemoObs.Text := ´´;



Responder

Gostei + 0

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

Aceitar