Hola Xavi, lo que yo hice fue los siguiente claro escaneandome algunas ideas jeje.Declaras una funcion como esta esta es para ver si existe un clave, tu la modificas a tu gusto ok
int __fastcall TModuloD::ClaveExiste1(const AnsiString Instruccion, AnsiString Valor)
{
Query1->SQL->Text = Instruccion;
Query1->ParamByName("x")->AsString =Valor;
Query1->Close();
Query1->Open();
return (CompareStr(ModuloD->Query1->Fields->Fields[0]->AsString,Valor )); // Si retorna 0 la clave ya existe sino no existe
}
Insertas un query en tu modulo de datos y lo unico que tienes que hacer es llamar la funcion en cualquier lugar de la siguiente forma:
if ((ModuloD->ClaveExiste1("select clave from MPRIMA where clave =
",ModuloD->TMPrima->FieldValues["CLAVE"]))!= 0)
Te repito esta funcion es para buscar una clave ok.... la mejoras y luego me cuentas ok..