Ajuda em fazer um Update!
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
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
Curtidas 0
Respostas
Sistemald
07/12/2007
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
Deste jeito você fara um update no registro ja existente.
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.
GOSTEI 0
Sistemald
07/12/2007
correção
reparei que tirei o monte de ´set´
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´
GOSTEI 0
Robinhocne
07/12/2007
Fiz dessa maneira mas começa a dar erro no primeira virgula....??????
GOSTEI 0
Edilcimar
07/12/2007
Afinal de contas a data é observação, instrutor ou horário?
Será que não está faltando um AND?
Será que não está faltando um AND?
GOSTEI 0
Robinhocne
07/12/2007
É 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!
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!
GOSTEI 0
Sistemald
07/12/2007
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
GOSTEI 0
Robinhocne
07/12/2007
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 := ´´;
GOSTEI 0