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); 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;