PDA

Ver la Versión Completa : Eliminar registros de mi base de datos


Elite237
29-07-2007, 20:32:37
Que codigo debo utilizar para eliminar un registro de mi base de datos.
La base de datos que utilizo en SQL Server 2000, estoy utilizando los componentes de ADOConnection y ADOTable, y quiero que me valide, en caso de que busque una clave que no exista y me mande un mensaje de que la clave no existe y en caso de que no si exista, que me borre mi registro.Este es el codigo que introduci: SI PUEDO EJECUTAR MI APLICACION, SOLO QUE NO HACE LO QUE LE PIDO.


procedure TForm8.BitBtn2Click(Sender: TObject);
begin
if Dep.Locate('clave',edit1.Text,[]) then
begin
Edit1.Clear;
mensaje:=Application.MessageBox('La clave no existe','Error de entrada')
end
else
begin
Dep.Delete;
Dep.FieldValues['clave']:=Edit1.Text;
Dep.FieldValues['nombre']:=Edit2.Text;
Dep.FieldValues['descripcion']:=Edit3.Text;
Dep.FieldValues['jefe']:=Edit4.Text;
Dep.Post;
Edit1.Clear;
Edit2.Clear;
Edit3.Clear;
Edit4.Clear;
mensaje:=Application.MessageBox('Los datos se eliminaron con éxito!','Mensaje de Confirmación');
end;
end;

roman
29-07-2007, 20:35:04
Ya te han indicado anteriormente que uses las etiquetas adecuadas para escribir código. Quienes te contestan se toman su tiempo haciéndolo, lo menosque puedes hacer, es tomarte tú mismo tu tiempo para presentar adecuadamente tus preguntas.

// Saludos

Elite237
29-07-2007, 20:42:13
Gracias por tu comentario, se que tienes razón, pero es que soy nuevo en el Foro y nose donde dice como expresar los codigos, me puedes mandar el link o decirme como se escribe..Gracias y disculpa mi omision.

Caral
29-07-2007, 20:46:40
Hola Elite237
Presionas el boton de ir a Avanzado, esto te enviara a otra pantalla, en esta veras varios dibujos en la parte de arriba, con solo poner el raton encima veras de que se trata, preiona el que necesites y lo tendras en el cuadro de abajo, estas etiquetas son para mostrar el codigo, escribe el codigo entre ellas, presiona vista preliminar si tienes alguna duda y luego enviar respuesta, eso es todo.
Saludos

roman
29-07-2007, 20:46:42
Sólo tiene que encerrar el codigo entre las etiquetas adecuadas. Puede ser



aquí el código



o bien



aquí el código



para que se resalte la sintaxis automáticamente. Para el caso de SQL usas



aquí la sentencia



Agrego: No había visto el mensaje de Caral. También puedes hacerlo de ese modo.

// Saludos

Elite237
29-07-2007, 20:53:26
Ya edite mi mensaje, asi era??? Ahora si me puedes ayudar??

roman
29-07-2007, 21:02:15
Donde dice


if Dep.Locate('clave',edit1.Text,[]) then


yo creo que debería decir:


if not Dep.Locate('clave',edit1.Text,[]) then

es decir, que está alrevés tu condición. Y para borrar, basta que uses Dep.Delete; las asignaciones que haces después con Dep.FieldValues no vienen al caso.

// Saludos

Elite237
29-07-2007, 21:33:05
Fijate que le introduci este codigo, sí me ejecuta la aplicación, pero no me hace lo que yo pido, de hecho me dice que esa clave no existe, pero realmente si esta esa clave..



procedure TForm8.BitBtn2Click(Sender: TObject);
begin
if not Dep.Locate('clave',edit1.Text,[]) then
begin
Edit1.Clear;
mensaje:=Application.MessageBox('La clave no existe','Error de entrada')
end
else
begin
Dep.Delete;
mensaje:=Application.MessageBox('Los datos se eliminaron con éxito!','Mensaje de Confirmación');
end;
end;

Caral
29-07-2007, 21:47:51
Hola
Lo que te dijo Roman lo probé en una consulta aparte y me funciono.

procedure TFArticulos.Button2Click(Sender: TObject);
begin
if not ADOTable1.Locate('CodProducto',DBEdit1.Text,[]) then
begin
DBEdit1.Clear;
MessageBox(Handle,
PChar('La Clave no existe'),
PChar('Clave'),
MB_OK + MB_DEFBUTTON1 + MB_APPLMODAL);
end
else
begin
ADOTable1.Delete;
MessageBox(Handle,
PChar('Los datos se eliminaron con éxito'),
PChar('Eliminar'),
MB_OK + MB_DEFBUTTON1 + MB_APPLMODAL);

end;
end;
Hace lo que necesitas, si el codigo no existe, lo indica de lo contrario borra el contenido.
Saludos

Elite237
29-07-2007, 22:07:11
Gracias Roman y Caral, ya me hace lo que le indico..Gracias por su tiempo a cada uno y gracias por sus comentarios.Saludos