Ver Mensaje Individual
  #1  
Antiguo 28-10-2008
Elite237 Elite237 is offline
Miembro
 
Registrado: jul 2007
Posts: 162
Reputación: 17
Elite237 Va por buen camino
Validar insercion en BD con tquery

Hola de nuevo, fijense que tengo una duda...como puedo validar al guardar un usuario con tquery, osea que si ya existe que me mande un aviso de que no se puede guardar pues ya existe en la BD(lo se hacer con table, con un locate, pero con tquery no, y no puedo cambiarlo puesto que asi me lo piden). Tengo que hacer un procedimiento? o una funcion?

este es el codigo que uso, pero no me funciona correctamente, ya que cuando lo uso no me deja guardar.

Esta es mi funcion:
Código Delphi [-]
function TForm1.VerificarGuardar: Boolean;
begin
 with query1 do
 begin
   close;
   sql.clear;
   sql.add('select * from tevaluacion');
   sql.add('where eval_descripcion='''+ednombre.text+'''');
   open;
   if recordcount<>0 then
   begin
    
    application.messagebox('El nombre de la evaluacion ya existe','Error de entrada',mb_Ok+mb_IconExclamation);
   end;
 end;
end;

Asi la uso en mi boton y no me deja guardar:
Código Delphi [-]
procedure TForm1.BitBtnAPGuardarClick(Sender: TObject);
var
evalua:string;
begin
   evalua:=copy(cmbEvaluacion.text,0,pos('-',cmbEvaluacion.text)-1); //Sacamos la clave del combo de la evaluacion
if verificarguardar = false then
begin   
query2.close;
   query2.sql.clear;
   query2.sql.add('insert into det_evaluacion(det_eval,det_version,det_clave,det_pregunta,det_tipo,det_valor)');
   query2.sql.add('values(:det_eval,:det_version,:det_clave,:det_pregunta,:det_tipo,:det_valor)');
   query2.ParamByName('det_eval').AsString:=evalua;
   query2.ParamByName('det_version').AsString:=edversion.text;
   query2.ParamByName('det_clave').AsString:=edclave.text;
   query2.ParamByName('det_pregunta').AsString:=edpregunta.text;
   query2.ParamByName('det_tipo').AsString:=edtipo.text;
   query2.ParamByName('det_valor').AsString:=edvalor.text;
   try
    query2.execsql
   except
   end;
    edversion.Clear;
    edclave.Clear;
    edpregunta.Clear;
    edtipo.Clear;
    edvalor.clear;
    application.messagebox('Los datos se guardaron correctamente','Mensaje de confirmación',mb_OK+mb_IconInformation);
    LlenarGridPreguntas(sender);
end;
end;
Responder Con Cita