Ver Mensaje Individual
  #1  
Antiguo 12-01-2013
darkamerico darkamerico is offline
Miembro
 
Registrado: dic 2010
Posts: 233
Reputación: 14
darkamerico Va por buen camino
Question Problema con Sentencia SQL

Hola nuevamente mis amigos de codigo , el problema es el siguiente:

1 TComboBox llamado cboTipDocIden (que tiene el tipo de Documento de Identidad Nacional: 1.DNI y 2.RUC) y
1 TEdit llamado txtDocIdenSolic (que tiene el Nro del Documento de identidad)

La Consulta SQL que deseo ejecutar esta en un componente TUniQuery y es la siguiente:

Código SQL [-]
SELECT oper_solicitante.id_solicitante, oper_solicitante.ape_pat, oper_solicitante.ape_mat,
       oper_solicitante.nombre, oper_solicitante.direcc_idtipcalle, oper_solicitante.direcc_nombrecalle,
       oper_solicitante.direcc_nro, oper_solicitante.idvinculo_fk
FROM oper_solicitante
WHERE oper_solicitante.tipDocIden = :TipDocIden AND
      oper_solicitante.nroDocIden = :NroDocIden

Ambos parametros son de tipo Text.

Ahora bien, la consulta se ejecuta en el evento OnExit de txtDocIdenSolic, aqui esta el codigo:

Código Delphi [-]
procedure TForm1.txtDocIdenSolicExit(Sender: TObject);
var
  TipDocIden, NroDocIden:string;
begin
  if(length(txtDocIdenSolic.Text)>0) then
  begin
    TipDocIden:=chr(39)+copy(cboTipDocIden.Text,1,1)+chr(39);
    NroDocIden:=chr(39)+trim(txtDocIdenSolic.Text)+chr(39);
    q_DetSolicitante.Close;
    q_DetSolicitante.Params[0].AsString:=TipDocIden;
    q_DetSolicitante.Params[1].AsString:=NroDocIden;
    q_DetSolicitante.Open;

    if(length(q_DetSolicitante.FieldByName('id_solicitante').AsString)=0) then
    begin
      stbar.Panels[0].text:='Nuevo Solicitante...';
      txtApePat.SetFocus;
    end
    else
    begin
      stbar.Panels[0].Text:='Solicitante Reiterativo...';
      txtApePat.Text:=q_DetSolicitante.FieldByName('ape_pat').AsString;
      txtApeMat.Text:=q_DetSolicitante.FieldByName('ape_mat').AsString;
      txtNombre.Text:=q_DetSolicitante.FieldByName('nombre').AsString;
    end;
  end
  else
    msg1.Execute;
end;

Finalmente, la estructura de la tabla donde realizo las operaciones se llama oper_solicitante (MySQL) es:

Código SQL [-]
CREATE TABLE `oper_solicitante` (
  `id_solicitante` int(11) NOT NULL,
  `tipDocIden` char(1) NOT NULL,
  `nroDocIden` varchar(11) NOT NULL,
  `ape_pat` varchar(50) NOT NULL,
  `ape_mat` varchar(50) NOT NULL,
  `nombre` varchar(50) NOT NULL,
  `direcc_idtipcalle` int(11) NOT NULL,
  `direcc_nombrecalle` varchar(80) NOT NULL,
  `direcc_nro` varchar(15) NOT NULL,
  `idvinculo_fk` int(11) NOT NULL,
  PRIMARY KEY (`id_solicitante`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;


El asunto es que la consulta no arroja ningun registro, sin embargo cuando cambio los parametros por valores literales ejecuta normalmente.

Ya le di muchas vueltas y no hallo el problema.

Agradeceria una mano

Muchas Gracias
Responder Con Cita