Buenas estoy trabajando en un sistema de loteria estoy tratando de hacer una consulta dinamica para saber la cantidad disponible para una jugada determinada por eso hice un procedimiento donde entro la jugada y luego pues paso la consulta, el tema es que tengo el procedimiento en el evento onexit del edit y si salgo una vez no me presenta bien el resultado y si vuelvo y salgo si me lo presenta estara bien implementada mi rutina?
Código Delphi
[-]
Procedure Disponibilidad( Jugada:String);
var
Chd:Integer; var_max,Disponible_jugar:String;
begin
case AnsiIndexStr(FormTicket.TxtTipojugada.Text,['Centena','Suelto','Tripleta','Pale','Bolita-1','Bolita-2','Bolita-3','#1','#2','#3','#4'])of
0:var_max:='maximo_centena'; 1:var_max:='maximo_sueltos';
2:var_max:='maximo_tripletas';
3:var_max:='maximo_pale';
4:var_max:='maximo_bolitas';
5:var_max:='maximo_pulitos';
end;
With FormTicket do begin
MemoDisponibilidad.Clear;
For ChD:=0 to chkloteria.Items.Count-1 do
begin
QuerySumDisp.Close;
QuerySumDisp.SQL.Clear;
QuerySumDisp.SQL.Add('Select Sum(Valor) as Total from Detalle_Real where jugada=:TxtJugada and loteria_Detalle=:Lot and CONVERT(varchar(10),fecha,111)=CONVERT(varchar(10),getdate(),111)');
QuerySumDisp.Parameters.ParamByName('Lot').Value:=chkloteria.Items[Chd];
QuerySumDisp.Parameters.ParamByName('TxtJugada').Value:=FormTicket.Txtjugada.Text;
QuerySumDisp.Open;
QueryMaximoJugada.Close;
QueryMaximoJugada.SQL.Clear;
QueryMaximoJugada.SQL.Add('Select '+var_max+' from limitaciones');
QueryMaximoJugada.Open;
Disponible_jugar:=VarToStr(QueryMaximoJugada.Fields[0].Value-QuerySumDisp.Fields[0].Value);
MemoDisponibilidad.Lines.Add(chkloteria.Items.Strings[Chd]+'-----'+Disponible_jugar);
end;
end;
end;