Perdon! Aqui esta el codigo !
El error me lo da cuando pongo un dni que no esta en la tabla. Si pongo uno que sea exactamente igual, me devuelve la consulta sin ningun problema.
El error que me da es ""List index out of bounds (1)"
Obviamente la consulta viene vacia cuando pongo un numero de dni que no existe en la tabla, pero no entiendo porque no pasa por la condicion "Datos.Qconsultas.RecordCount>0"
Código Delphi
[-]
procedure TFEquiposporcliente.BfiltrarpordniClick(Sender: TObject);
begin
if (Edni.Text='') then
begin
messagedlg('Debe ingresar un N° de DNI', mtinformation, [mbok], 0);
Edni.SetFocus;
end
else
begin
Datos.Qconsultas.Close;
Datos.Qconsultas.SQL.Clear;
Datos.Qconsultas.SQL.Add('SELECT orden_reparacion.cod_ordenreparacion ,orden_reparacion.fecha_ingreso, clientes.dni_cliente, clientes.nombre as nombre_cliente, clientes.apellido as apellido_cliente,usuarios.nombre, categoria_equipo.nombre, '+
'orden_reparacion.marca, orden_reparacion.modelo, detalle_ordenreparacion.dni_usuario, detalle_ordenreparacion.estado, detalle_ordenreparacion.fecha_terminado, detalle_ordenreparacion.precio '+
'FROM orden_reparacion, categoria_equipo, clientes, usuarios, detalle_ordenreparacion '+
'WHERE orden_reparacion.dni_usuario=usuarios.dni_usuario AND categoria_equipo.cod_categoria=orden_reparacion.cod_categoria and orden_reparacion.cod_ordenreparacion=detalle_ordenreparacion.cod_ordenreparacion '+
'AND orden_reparacion.dni_cliente=clientes.dni_cliente AND clientes.dni_cliente='+Edni.Text);
Datos.Qconsultas.Open;
if (Datos.Qconsultas.RecordCount>0) then
begin
DBGordenesporcliente.DataSource:= Datos.DSconsultas;
DBGordenesporcliente.Columns[0].Title.Caption:= 'N° Orden';
DBGordenesporcliente.Columns[0].Width:= 60;
DBGordenesporcliente.Columns[1].Title.Caption:= 'Fecha Ingreso';
DBGordenesporcliente.Columns[2].Title.Caption:= 'Dni Cliente';
DBGordenesporcliente.Columns[3].Title.Caption:= 'Nombre Cliente';
DBGordenesporcliente.Columns[3].Width:= 100;
DBGordenesporcliente.Columns[4].Title.Caption:= 'Apellido Cliente';
DBGordenesporcliente.Columns[4].Width:= 100;
DBGordenesporcliente.Columns[5].Title.Caption:= 'Recepcionista';
DBGordenesporcliente.Columns[5].Width:= 100;
DBGordenesporcliente.Columns[6].Title.Caption:= 'Categoria';
DBGordenesporcliente.Columns[6].Width:= 80;
DBGordenesporcliente.Columns[7].Title.Caption:= 'Marca';
DBGordenesporcliente.Columns[7].Width:= 80;
DBGordenesporcliente.Columns[8].Title.Caption:= 'Modelo';
DBGordenesporcliente.Columns[8].Width:= 120;
DBGordenesporcliente.Columns[9].Title.Caption:= 'Técnico';
DBGordenesporcliente.Columns[9].Width:= 100;
DBGordenesporcliente.Columns[10].Title.Caption:= 'Estado';
DBGordenesporcliente.Columns[10].Width:= 50;
DBGordenesporcliente.Columns[11].Title.Caption:= 'Fecha Terminado';
DBGordenesporcliente.Columns[12].Title.Caption:= 'Precio';
DBGordenesporcliente.Columns[12].Width:= 80;
CBclientes.KeyValue:= unassigned;
end
else
begin
DBGordenesporcliente.Columns[0].Title.Caption:= 'N° Orden';
DBGordenesporcliente.Columns[0].Width:= 60;
DBGordenesporcliente.Columns[1].Title.Caption:= 'Fecha Ingreso';
DBGordenesporcliente.Columns[2].Title.Caption:= 'Dni Cliente';
DBGordenesporcliente.Columns[3].Title.Caption:= 'Nombre Cliente';
DBGordenesporcliente.Columns[3].Width:= 100;
DBGordenesporcliente.Columns[4].Title.Caption:= 'Apellido Cliente';
DBGordenesporcliente.Columns[4].Width:= 100;
DBGordenesporcliente.Columns[5].Title.Caption:= 'Recepcionista';
DBGordenesporcliente.Columns[5].Width:= 100;
DBGordenesporcliente.Columns[6].Title.Caption:= 'Categoria';
DBGordenesporcliente.Columns[6].Width:= 80;
DBGordenesporcliente.Columns[7].Title.Caption:= 'Marca';
DBGordenesporcliente.Columns[7].Width:= 80;
DBGordenesporcliente.Columns[8].Title.Caption:= 'Modelo';
DBGordenesporcliente.Columns[8].Width:= 120;
DBGordenesporcliente.Columns[9].Title.Caption:= 'Técnico';
DBGordenesporcliente.Columns[9].Width:= 100;
DBGordenesporcliente.Columns[10].Title.Caption:= 'Estado';
DBGordenesporcliente.Columns[10].Width:= 50;
DBGordenesporcliente.Columns[11].Title.Caption:= 'Fecha Terminado';
DBGordenesporcliente.Columns[12].Title.Caption:= 'Precio';
DBGordenesporcliente.Columns[12].Width:= 80;
messagedlg('El cliente seleccionado no tiene Equipos en el sistema', mtinformation, [mbok], 0);
Edni.setfocus;
end;
end;
Lcantidad.Caption:= inttostr(Datos.Qconsultas.recordcount);
end;
Saludos !!