Eu executo meu programa e consigo efetuar um INSERT no banco normalmente, mas se caso eu quiser inserir outro automaticamente aparece a seguinte mensagem:
QueryControle: CommandText does not return a result set.
Mas os dados são gravados no banco de dados....
Já tentei de tudo.....mas não obtive sucesso.....
Eu estou ativando a conexão no OnCreate do dataModule.
Será que alguém pode me ajudar ???
Este é o código:
Resunindo eu verifico se existe o usuário e logo em seguida verifico se ele está voltando ou indo almoçar.....trata-se de um controle de almoço......
procedure TfmPrincipal.btnokClick(Sender: TObject);
var v_chapa, v_senha : String;
var v_data, v_hora : TdateTime;
begin
v_chapa := Edit1.Text;
v_senha := Edit2.Text;
v_data := strtodate(FormatDateTime('dd/mm/yyyy',Data));
v_hora := strtotime(FormatDateTime('hh:mm:ss',Data));
if ((Edit1.Text = '') or (Edit2.Text = '')) then
begin
Messagedlg('Digite a chapa e senha.'+#13#13+'>>Caso não esteja cadastrado consulte seu supervisor.',mtInformation,[mbOK],0);
Edit2.setFocus;
abort;
end;
if not (DM.QueryUsuario.Active = true) then
begin
DM.QueryUsuario.Active := true
end;
if not (DM.QueryControle.Active = true) then
begin
DM.QueryControle.Active := true;
end;
if DM.QueryUsuario.Locate('Chapa;Senha', VarArrayOf ([v_chapa, v_senha]), []) then
begin
if not DM.QueryControle.Locate('Data;Chapa', VarArrayof ([v_data, v_chapa]),[]) then
begin
Messagedlg('Você está saindo.Grava os dados em saída',mtInformation,[mbOK],0);
DM.QueryControle.Close;
DM.QueryControle.SQL.Clear;
DM.QueryControle.SQL.Add('INSERT INTO Controle (Data, Chapa, HoraSaida) VALUES (:data,:chapa,:saida)');
DM.QueryControle.Parameters.ParamByName('data').Value:= v_data;
DM.QueryControle.Parameters.ParamByName('chapa').Value:= v_chapa;
DM.QueryControle.Parameters.ParamByName('saida').Value:= v_hora;
DM.QueryControle.ExecSQL;
Edit1.Clear;
Edit2.Clear;
Edit1.SetFocus;
end
else begin
if DM.QueryControleHoraVolta.IsNull then
begin
Messagedlg('Você está voltando. Grava os dados em Volta',mtInformation,[mbOK],0);
DM.QueryControle.Close;
DM.QueryControle.SQL.Clear;
DM.QueryControle.SQL.Add('UPDATE Controle SET HoraVolta = :volta WHERE Data = :data AND Chapa = :chapa');
DM.QueryControle.Parameters.ParamByName('data').Value:= v_data;
DM.QueryControle.Parameters.ParamByName('chapa').Value:= v_chapa;
DM.QueryControle.Parameters.ParamByName('volta').Value:= v_hora;
DM.QueryControle.ExecSQL;
Edit1.Clear;
Edit2.Clear;
Edit1.SetFocus;
end
else begin
Messagedlg('Você já excedeu o número de batidas hoje.',mtInformation,[mbOK],0);
abort;
end;
end;
end
else begin
Messagedlg('O Chapa ou Senha inválido!',mtError,[mbOK],0);
Edit2.Clear;
Edit2.SetFocus;
abort;
end
end;
Question
Alessandro
Tenho o seguinte problema :
Eu executo meu programa e consigo efetuar um INSERT no banco normalmente, mas se caso eu quiser inserir outro automaticamente aparece a seguinte mensagem:
QueryControle: CommandText does not return a result set.
Mas os dados são gravados no banco de dados....
Já tentei de tudo.....mas não obtive sucesso.....
Eu estou ativando a conexão no OnCreate do dataModule.
Será que alguém pode me ajudar ???
Este é o código:
Resunindo eu verifico se existe o usuário e logo em seguida verifico se ele está voltando ou indo almoçar.....trata-se de um controle de almoço......
Obrigado.....
Link to comment
Share on other sites
7 answers to this question
Recommended Posts