PDA

Ver la Versión Completa : como validar el ingreso de datos en una BD???


ezequiel913
16-05-2011, 03:12:11
hola gente!!!
los molesto por 2 preguntas:

1ra:

estoy haciendo un ABM en delphi 7 y quiero saber como validar para que no ingrese un codigo que ya existe en la base de datos, este codigo lo uso como clave principal. tengo una tabla localidades que tiene los atributos codigo postal, localidad y provincia, entonces quiero validar que no ingrese un codigo postal que ya existe en la base de datos,

el codigo de ingreso de datos en delphi es este:

ADOCn.Open;

CP:= EditPostal.Text;
LOCALIDAD:= (AnsiUppercase (EditLocal.Text));
PROVINCIA:= EditProv.Text;

ADOCn.BeginTrans;
ADOCn.Execute('INSERT INTO DBO.Localidades values(' +chr(39)+CP+chr(39)+','+chr(39)+LOCALIDAD+chr(39)+','+chr(39)+PROVINCIA+chr(39)+')');
ADOCn.CommitTrans;

osea se que lo tengo que hacer antes del INSERT pero nose como se hace.

2da:

la otra pregunta es como hago para que antes de ingresar los datos en la base de datos le pregunte a la persona si esta seguro de guardar los datos, y que le de la posibilidad de ACEPTAR y CANCELAR. osea como una ventanita emergente que pregunte si esta seguro de guardar los datos.

bue eso es todo. seria de gran ayuda si me responden estas 2 preguntas.

saludos!!!

oscarac
16-05-2011, 03:22:03
buenas noches
dale una revisadita a OnValidate en los campos de la tabla
ahi podrias crear una rutina que te verifique si el campo ingresdo existe o no

yo hago mas o menos asi

tengo un DataModulo donde tengo querys para verificar la existencia o no de determinados registros

entonces en el OnValidate hago mas o menos asi


procedure TfrmCatalogoHorario.qryHorarioTIPOValidate(Sender: TField);
begin
dmComedor.qryVerificaKodHorario.Parameters.ParamByName('Kod').Value := Sender.Value;
dmComedor.qryVerificaKodHorario.Open;
if not dmComedor.qryVerificaKodHorario.IsEmpty then
begin
MessageDlg('Código ya creado', mtError, [mbAbort], 0);
dmComedor.qryVerificaKodHorario.Close;
Abort;
end;
dmComedor.qryVerificaKodHorario.Close;
end;



y en el datamodulo hay algo parecido a esto


Select *
from TblHorario
where Tipo like :Kod



espero te sirva
saludos

oscarac
16-05-2011, 03:23:30
P.D.
seria bueno que menciones tambien que Motor de base de datos estas utilizando

ezequiel913
16-05-2011, 21:13:13
el Motor de Base de Datos que uso es SQL SERVER 2000. ah y la rutina que me pasaste la voy a probar. salugos, gracias!!!

Casimiro Notevi
16-05-2011, 22:16:57
Bienvenido a clubdelphi, ezequiel913, por favor, no olvides leer nuestra guía de estilo (http://www.clubdelphi.com/foros/guiaestilo.php), muchas gracias por tu colaboración.