Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 27-04-2007
mjjj mjjj is offline
Miembro
 
Registrado: mar 2007
Posts: 652
Poder: 18
mjjj Va por buen camino
borrar registro en un query

hola amigos... ayudenme con el siguiente problem...

quiero borrar un registro de un query.

selecciono el registro de un dbgrid y presiono un boton que tiene el siguiente codigo.... query1.delete, efectivamente el registro se elimina del dbgrid, pero al hacer un nueva busqueda este vuelve a aparecer.

Que pasa con eso... he tratado con query1.post y me tira un error de dataset not in edit or insert modo... entonces agregue query1.edit antes del delete y me tira este otro error... cannot modify a read only dataset

uffff... ojala me entiendan.... gracias
Responder Con Cita
  #2  
Antiguo 27-04-2007
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola mjjj
Para empezar lo normal es identificar:
Query es un aposento de una sentencia sql, que trae informacion de una tabla o varias, osea, borrar un query, es raro, esto te lo digo nada mas como comentario sin afan de critica.
Segundo, antes de un query.delete; deberia haber algo, que voy a borrar?
Entonces, resumiendo, si colocas el codigo con el que estas haciendo la operacion sera mas facil interpretar el problema.
Otra cosa importante, que base de datos usas?, que campos, que claves?
Saludos
Responder Con Cita
  #3  
Antiguo 27-04-2007
mjjj mjjj is offline
Miembro
 
Registrado: mar 2007
Posts: 652
Poder: 18
mjjj Va por buen camino
a ver, voy a tratar de ser mas claro....

estoy usando tablas paradox, sin KEY, lo que hago es realizar una busqueda utilizando un query luego selecciono el registro que quiero borrar desde un dbgrid, una vez seleccionado el registro, presiono un boton con el codigo query1.delete... se borra el registro del dbgrid, pero al realizar nuevamente la busqueda este vueve aparecer....

esta operacion le he utilizado en tablas, en ese caso me a funcionado perfectamente...

gracias
Responder Con Cita
  #4  
Antiguo 28-04-2007
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Tienes un query, el cual carga un dbgrid, apretando un boton quieres borrar el dato elegido.
Bueno el query genera una informacion y contiene unos campos en el, va, con otro query se elimina el dato que se quiere, aqui un ejemplo:
Código Delphi [-]
begin
      DataModule1.AC1.BeginTrans;
      try
         Query.SQL.Text := 'Delete * from TUTABLA where TUCAMPO = '+TUTABLATUCAMPOTuDato.AsString;
         Query.ExecSQL;
         DataModule1.AC1.CommitTrans;
      except
         on E:Exception do
         begin
            DataModule1.AC1.RollbackTrans;
            MessageDlg('Se ha producido un error.',mtError,[mbok],9);
         end;
      end;
Aqui como veras se hace la conexion directa al modulo de datos y al conector, se inicializa, se ejecuta, de lo contrario, envia un mensaje.
Saludos
Responder Con Cita
  #5  
Antiguo 28-04-2007
mjjj mjjj is offline
Miembro
 
Registrado: mar 2007
Posts: 652
Poder: 18
mjjj Va por buen camino
ufffff... perdon la ignorancia... que es un datamodule, trata de explicarme con manzanas lo que hace cada linea del codigo asi yo puedo adaptarlo a mi programa.... se que es mucho pedir, pero me harias un gran favor

tengo que agregar otro query a mi form... en ese agrego las lineas SQL... el otro lo dejo tal cual??

ayuda please

gracias
Responder Con Cita
  #6  
Antiguo 28-04-2007
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola mjjj
Me parece que como las manzanas estas un poco verde en esto.
Bueno eso no es un pecado, seria muy bueno que pusieras una copia del codigo que estas haciendo, asi veriamos como va.
Usa las etiquetas del club se vera mejor.
Saludos
Responder Con Cita
  #7  
Antiguo 14-05-2007
Pedro-Juan Pedro-Juan is offline
Miembro
 
Registrado: ago 2006
Ubicación: Barcelona - España
Posts: 315
Poder: 18
Pedro-Juan Va por buen camino
Question Posible solución

Hola a tod@s

Por el comentario que ha hecho mjjj, "pero al hacer un nueva busqueda este vuelve a aparecer", deduzco que lo que quiere es eliminarlo definitivamente, o sea, eliminarlo de la tabla.
Yo he hecho algo parecido a esto en mis aplicaciones, espero que te ayude:
Código Delphi [-]
var cVarCampo: String; //puede ser cualquier otro tipo que esté indexado
 
//El el evento OnClick del button
cVarCampo := Query.FieldByName('cCampo').AsString;
if (TABLE do Locate(cCampo',cVarCampo,[])) then
with TABLE do Delete;
else
ShowMessage('Aviso','No cuela');

Un saludo
__________________
Este mundo es el camino para el otro, que es morada sin cesar. Mas cumple tener buen tino para andar esta jornada sin errar. (J. Manrique)

Última edición por Pedro-Juan fecha: 14-05-2007 a las 23:41:18.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
error al borrar un registro noshy SQL 1 12-05-2006 20:13:07
Borrar lineas detalle al borrar registro maestro akinom38 Conexión con bases de datos 3 11-01-2006 10:38:07
borrar registro desde un query fabian20s Conexión con bases de datos 2 25-03-2005 13:48:50
Borrar e Insertar un registro de una tabla con Query Draco Conexión con bases de datos 4 06-05-2004 17:27:37
Borrar registro .mdb con ADO Masu Conexión con bases de datos 3 23-02-2004 19:16:10


La franja horaria es GMT +2. Ahora son las 00:18:37.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi