Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 16-02-2007
hernitz hernitz is offline
Registrado
 
Registrado: feb 2007
Posts: 2
Poder: 0
hernitz Va por buen camino
Error al borrar con Adoquery

A ver si alguien puede darme una mano. Tengo una base de datos sql con una tabla con datos que quiero borrar.

Tengo un adoquery que contiene lo siguiente:
DELETE FROM MATRICULA
WHERE MATRICULA=:MATRICULA

cuando lo llamo en la aplicacion me ejecuta bien el borrado de datos pero me da el siguiente error:
adoquery1:CommandText does not return a result set

Lo llamo de la siguiente manera en la aplicacion:
adoquery1.Close;
adoquery1.Parameters.ParamByName('MATRICULA').Value:=dbedit2.Text;
adoquery1.open;

Estoy seguro que es de la forma en que lo estoy llamando desde la aplicacion. Les agradecere cualquier sugerencia
Desde ya muchas gracias.
Responder Con Cita
  #2  
Antiguo 16-02-2007
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Asi hago yo para borrar:
Código Delphi [-]
procedure TFOrdProd.Button5Click(Sender: TObject);
begin
    If MessageDlg('¿Está seguro que desea eliminar la pieza # '+QOrdenProdCompraCodParte.AsString+' de la orden ',mtConfirmation,[mbYes,mbNo],0) = mrYes then
   begin
      DataModule1.AC1.BeginTrans;
      try
         QTemp.SQL.Text := 'Delete * from OrdenProdCompra where Numero = '+QOrdenProdCompraNumero.AsString;
         QTemp.ExecSQL;
         DataModule1.AC1.CommitTrans;
      except
         on E:Exception do
         begin
            DataModule1.AC1.RollbackTrans;
            MessageDlg('Se ha producido un error, por favor contacte al administrador.',mtError,[mbok],9);
         end;//on
      end; //try
      QOrdenProdCompra.Close;
      QOrdenProdCompra.Open;
   end;
end;
Revisalo, tal vez te guie
Saludos
Responder Con Cita
  #3  
Antiguo 16-02-2007
luisgutierrezb luisgutierrezb is offline
Miembro
 
Registrado: oct 2005
Ubicación: México
Posts: 925
Poder: 19
luisgutierrezb Va por buen camino
una forma de ahorrarte el componente es con el metodo Execute de la conexion, por ejemplo:

Código Delphi [-]
adoconnection1.execute := 'delete from tabla where algo = ' + edtAlgo.Text;
Responder Con Cita
  #4  
Antiguo 16-02-2007
Avatar de rruz
[rruz] rruz is offline
Miembro Premium
 
Registrado: jun 2006
Posts: 146
Poder: 18
rruz Va por buen camino
En lugar de llamar al metodo Open debes Usar ExecSql ya que luego de ejecutar el metodo Open la aplicacion espera de regreso un cursor.

Guia Practica:

Usa Open en sentencias sql de tipo Select ...'

Usa ExecSql en sentencias de tipo 'Update, Insert, Delete, Etc'

Saludos.
Responder Con Cita
  #5  
Antiguo 16-02-2007
hernitz hernitz is offline
Registrado
 
Registrado: feb 2007
Posts: 2
Poder: 0
hernitz Va por buen camino
Muchas Gracias a todos! ya pude solucionarlo!.
Responder Con Cita
  #6  
Antiguo 07-03-2007
Maibok Maibok is offline
Miembro
 
Registrado: mar 2005
Posts: 28
Poder: 0
Maibok Va por buen camino
A mi lo mismo pero no he podido solucionarlo. Cuando hago un INSERT en una tabla lo inserta bien, pero me salta un error diciendo que el adoquery no devuelve ningún valor. En parte es lógico porque es una instrucción de insert y no devuelve nada en una tabla.

Cómo puedo hacer para que no me salta ese error al usar un adoquery???


Y aunque no se si es el sitio indicado. Sabéis cómo puedo hacer para captar los errores o mensajes de información de MySQL para poder modificarlos y mostrarlos yo desde delphi antes de que me salte el error de mysql???. Es decir, que si mysql me dice que no puedo insertar algo porque violo integridad referencial, poder yo modificar lo que pone ese mensaje para hacerlo más legible al usuario.
Responder Con Cita
  #7  
Antiguo 07-03-2007
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Miembro
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 24
vtdeleon Va por buen camino
Saludos
Cita:
Empezado por Maibok
Cómo puedo hacer para que no me salta ese error al usar un adoquery???
La respuesta es:
Cita:
Empezado por rruz
Guia Practica:

Usa Open en sentencias sql de tipo Select ...'

Usa ExecSql en sentencias de tipo 'Update, Insert, Delete, Etc'
Cita:
Empezado por Maibok
abéis cómo puedo hacer para captar los errores o mensajes de información de MySQL para poder modificarlos y mostrarlos yo desde delphi antes de que me salte el error de mysql???. Es decir, que si mysql me dice que no puedo insertar algo porque violo integridad referencial, poder yo modificar lo que pone ese mensaje para hacerlo más legible al usuario.
Claroo, usando Try Except y capturando el error.
Código Delphi [-]
try
 QuerySql.Open
except on
  Exception:E do 
  begin
    ShowMessage('El mensaje que quieras');
  end;
end;
Debes saber qué tipo de Exception te arroja el componetne o MySQL para poder identificar el tipo de error que te arroja.
__________________
Van Troi De León
(Not) Guía, Code vB:=Delphi-SQL, ¿Cómo?
Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto!
Responder Con Cita
Respuesta



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
Qrchart + Adoquery Error Ferrolano Gráficos 0 22-05-2006 10:03:02
Error no especificado en Delphi 5 con ADOQuery Alexander SQL 1 12-08-2005 03:13:13
Error en ADOQuery ¡¡URGENTE!! Victor Pimentel Conexión con bases de datos 2 25-10-2004 08:34:35
Error al cerrar un ADOQuery Alexander Conexión con bases de datos 2 02-06-2004 13:42:18


La franja horaria es GMT +2. Ahora son las 16:49:59.


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