![]() |
problemas de eliminacion
hola amigos, estoy casi desesperado tengo un problema al tratar de eliminar un registro que esta relalcionalado con otro registro de otro talba, me sujirieron hacer
if sql.count()>0 then end pero no funciona, estoy usando un adoquery, talves |
La solución que se propuso al caso que replanteas era enmascarar el mensaje del motor, pero si lo que quieres es eliminar todo de una vez.
Abres la base de datos con Access, estableces relación entre ambas tablas, marcas integridad referencial y eliminación en cascada, ahora cuando elimines el maestro desaparecerá todo el detalle. Un Saludo. |
hola
como enmascaria el mensaje que bora el el motor de delphi, esa parte no entendi
|
nose
Lanzamos una búsqueda, buscamos un registro con la misma clave en la table detalle, si lo encontramos (décimas de segundo), lanzamos mensaje, "Imposible eliminar registro - posee relación en la tabla xxx".
bueno amigos nose como hacer esto les pido que me ayuden mandandome un ejemplo, estoy usando un odoquery |
aa
estoy hasiendo un
add('select count(id_clumno) as n'); add('from tabla01 '); add('where id_carga='labeledit01.text); supondo que esta sentencia devuelve algo en n pero no como recuperar n. |
Pues si, devuelve el número de registros se supone que estás intentando saber si un maestro tiene detalle, si devuelve registros es que lo tiene.
Un Saludo. |
si
donde se captura o almacen u obtengo ese n
|
m
supongo que se almacena en alguna parte en nuero de registros que cumplen con la condicion del where y que son contados por el count, pero nose como recuperar ese numero .
por favor uusilio |
Un Saludo. |
muchas
muchas grasias grasias grasias grasias grasias
|
Hola a todos, en primer lugar estoy realizando una aplicación en Delphi7, base de datos Access y componentes ADO, mi problema es que tengo una tabla enlazada con otras dos mediante el siguiente codigo:
Antes de enlazar las dos tablas borraba los registros seleccionados en mi dbgrid con este codigo: El problema es que al unirlas otras tablas, cada vez, que pulso el boton borrar me borra un registro en cada tabla, he mirado en access como me dijo Neftalí y no tengo activada los borrados en cascada.:confused: Yo solo quiero que se borre un registro de la tabla maestro no de las detalle. Gracias por vuestra ayuda, un saludo. PD: He realizado otra vez la consulta aquí por que creo que encaja mejor en este hilo, sino es asi pido disculpas a los moderadores. |
no funciona
hola amigos, ayer me sujirieron insertar esta linea en el codigo
procedure TForm1.Button1Click(Sender: TObject); begin If Adoquery1.Fields[0].AsInteger > 0 then ShowMessage('Hay registros en el detalle') else ShowMessage('NO Hay registros en el detalle'); end;pero me bota un error en tiempo de ejecucion en la linea"If Adoquery1.Fields[0].AsInteger > 0 then"se suponia que la esta linea contaba los registro que devuelve una consutabueno amigos les pido que me den una mano |
nose puede
hola amigos, ayer me sujirieron insertar esta linea en el codigo
procedure TForm1.Button1Click(Sender: TObject); begin If Adoquery1.Fields[0].AsInteger > 0 then ShowMessage('Hay registros en el detalle') else ShowMessage('NO Hay registros en el detalle'); end; pero me bota un error en tiempo de ejecucion en la linea "If Adoquery1.Fields[0].AsInteger > 0 then" se suponia que la esta linea contaba los registro que devuelve una consutabueno amigos les pido que me den una mano |
amigos este es el procedimiento donde estoy teniendo problemas
procedure TMantenimiento_Control.ToolButton3Click(Sender: TObject); begin inherited; ToolButton2.Enabled:=true; le_id01.text:=''; dateTimePicker1.Format:=''; end; procedure TMantenimiento_Control.SpeedButton8Click(Sender: TObject); var n,m,a:integer; begin inherited; ADOQuery1.Close; ADOQuery1.sql.Clear; ADOQuery1.SQL.Add('select count(id_control) as n'); ADOQuery1.SQL.Add('from d_c_clase '); ADOQuery1.SQL.Add('where id_control='+ le_id01.text);//06');//'+ le_id01.text ); if ADOQuery1.Fields[0].asinteger >0 then showmessage('si') else showmessage('no'); ADOQuery1.open; ADOQuery1.Close; if m=0 then begin ADOQuery1.Close; ADOQuery1.sql.Clear; ADOQuery1.SQL.Add('delete'); ADOQuery1.SQL.Add('from control '); ADOQuery1.SQL.Add('where id_control='+ le_id01.text);//06');//'+ le_id01.text ); ADOQuery1.ExecSQL; ADOQuery1.Close; end else begin showmessage('no se puede jajjaj'); end; //ADOQuey1.0Destroy; end; la linea que me vota erro es+ " if ADOQuery1.Fields[0].asinteger >0" y me bota este erroor Project colegio_ollanta.exe raised exception clase ElistError with message ‘List index out of bounds(0)’ process stopped. Use or Run to continue porfavor ayudenme estoy desesperado |
Hola Alfil123, creo que deberias antes dar un vistazo por AQUI
y hacer uso de las etiquetas [delphi] [\DELPHI] Te sugeriria que asignaras a una variable lo que contiene le_id01.text y la evaluaras antes pues, de entrada la consulta no es tan compleja. Saludos |
La franja horaria es GMT +2. Ahora son las 10:26:20. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi