Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 30-05-2019
Alfonso Jurado Alfonso Jurado is offline
Registrado
 
Registrado: sep 2005
Ubicación: Granada
Posts: 6
Poder: 0
Alfonso Jurado Va por buen camino
Fallo en el refresh de una ADOTable

Tengo un botón en el que elimino tanto las lineas como la cabecera de un albarán de expedición.
Una vez borradas usando querys, quiero refrescar la tabla de la cabecera para que en la ventana donde se pintan los datos la información se vea correctamente. El problema es que use un refresh (ya se que no debe de funcionar) o use un requery siempre me sale el error "Could not convert variant type (Null) into type (Boolean)".

El código que he usado es este:
Código Delphi [-]
procedure TfrmControlExpedicion.CategoryButtons1Categories0Items2Click(Sender: TObject);
var
 SavePlace : TBookmark;
begin
   if tControlExpedicion.FieldValues['id']<>null then begin
     if MessageDlg('¿Seguro que desea eliminar este registro?', mtConfirmation, [mbOK,mbNo], 0) = mrOK then begin
     
        Screen.Cursor := crHourGlass;
    borraLineas.active:=false;
    borraLineas.sql.text:='delete from  controlExpedicionLineas where idControlExpedicion='+inttostr(tControlExpedicion.FieldValues['id']);
    borraLineas.execSQL;
    
    qConsultaLineas.active:=false;
    qConsultaLineas.active:=true;
    
    
    
    borraLineas.active:=false;
    borraLineas.sql.text:='delete from  controlExpedicion where id='+inttostr(tControlExpedicion.FieldValues['id']);
    borraLineas.execSQL;
    Screen.Cursor := crDefault;
    Application.MessageBox ('Registro eliminado.', 'Eliminado', MB_ICONINFORMATION);
    
    SavePlace := tControlExpedicion.GetBookmark;
    tControlExpedicion.Requery();
    tControlExpedicion.GotoBookMark(SavePlace);
    tControlExpedicion.FreeBookMark(SavePlace);
    
     end;
   end
   else begin
    Application.MessageBox ('ATENCION! No existe ningún registro para ser eliminado', 'Error', MB_ICONWARNING);
   end;
end;

¿Alguien sabría decirme que está pasando? Gracias
Responder Con Cita
  #2  
Antiguo 30-05-2019
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.257
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Si no dices dónde sale el error.
Responder Con Cita
  #3  
Antiguo 30-05-2019
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.010
Poder: 21
oscarac Va por buen camino
debes dar mas informacion
como por ejemplo

llega a borrar el registro?

porque el mensaje te esta diciendo que no puede convertir una variable tipo Null en booleana

quiza el tema esté en el query que estas ejecutando
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #4  
Antiguo 31-05-2019
yeyo yeyo is offline
Miembro
 
Registrado: abr 2010
Posts: 17
Poder: 0
yeyo Va por buen camino
yo no utilizaría fieldvalues. Intentalo con fieldbyname('id').asstring en todas partes. Al margen del error, el código será más rápido puesto que no estará convirtiendo continuamente de variant a string. ¿tienes algún motivo especial en utilizar fieldvalues['id']?
Responder Con Cita
  #5  
Antiguo 31-05-2019
Avatar de newtron
[newtron] newtron is offline
Membrillo Premium
 
Registrado: abr 2007
Ubicación: Motril, Granada
Posts: 3.591
Poder: 21
newtron Va camino a la fama
¿Es posible que al hacer el "requery" se pierdan los valores de los bookmarks?
__________________
Be water my friend.
Responder Con Cita
  #6  
Antiguo 06-06-2019
Alfonso Jurado Alfonso Jurado is offline
Registrado
 
Registrado: sep 2005
Ubicación: Granada
Posts: 6
Poder: 0
Alfonso Jurado Va por buen camino
Efectivamente, cuando hace el requery se pierden los valores de los bookmarks. He intentado almacenar en que posición de la tabla estoy, en plan coger el anterior o el posterior registro ( SavePlace := tControlExpedicion.GetBookmark... ) pero el error sale siempre el mismo.

El borrado lo hace,tanto de las lineas como de la cabecera, pero el refresco no. En la tabla no tengo programado ningún evento para después de borrar o similar.
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
ADOTable: Refresh tarda mucho luego de un borrado jeremiselxi Varios 6 01-03-2015 01:08:24
Refresh lunicirus Varios 5 09-11-2012 16:05:28
ADO y refresh no va? Mannu C++ Builder 4 04-01-2008 09:09:40
Refresh elguille Varios 3 21-02-2007 21:13:53
refresh del formulario.... User_baja1 Varios 1 17-05-2005 12:01:19


La franja horaria es GMT +2. Ahora son las 02:19:05.


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