好了,情況是:我有1 TComboBox稱爲cboTipDocIden和1個TEDIT稱爲txtDocIdenSolic。錯誤德爾福/ MySQL的/參數
cboTipDocIden的值爲:"1.DNI","2.RUC"
。
組件TUniQuery
被稱爲q_DetSolicitante。
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
的SQL是在OnExit
事件的txtDocIdenSolic,這裏的代碼執行:
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;
最後,表結構爲:
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;
那麼,SQL返回Delphi中的零行,但是當我更改SQL的工作原理值的參數時。
感謝您的幫助。
Bienvenido a StackOverflow。 Editétu pregunta paraañadirformato a tu sentencia CREATE TABLE y para eliminar tu firma,ya queaquínoestánpermitidas。不要猶豫不決。 – jachguate