Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 06-02-2006
Avatar de dmagui
dmagui dmagui is offline
Miembro
 
Registrado: may 2005
Posts: 168
Poder: 19
dmagui Va por buen camino
Como capturar Excepcione EIBClientError

Buenos Dias:

Tengo un inconveniente en los DBGrid, estoy utilizando uno para que me muestre la tabla de monedas que tengo en mi BD, para esto utilizo un IBDataSet, del cual estoy utilizando el Select y el update.

Especialmente hago que me liste las monedas para poderlas modificar, bueno el inconveniente es que al desplazarme de un registro a otro utilizo las flechas, cuando me desplazo hacia abajo y llego al ultimo registro y oprimo de nuevo la flecha hacia abajo me sale una Excepcion de:

EIBClientError.
Cannot insert into dataset (No insert query)

Lo que deseo es capturar esa excepcion o que si llega al ultimo registro no se pueda desplzar mas, para que no me genere ese error.

Agradeceria muchisimo que me ayudaran.
__________________
El espiritu humano no se acaba cuando es derrotado se termina cuando se rinde.
Responder Con Cita
  #2  
Antiguo 06-02-2006
Avatar de Thales
Thales Thales is offline
Miembro
 
Registrado: ago 2005
Posts: 48
Poder: 0
Thales Va por buen camino
Podrías definir un manejador para el evento BeforeInsert de la consulta asociada al grid

Código Delphi [-]
procedure DataModule.QueryBeforeInsert(DataSet: TDataSet);
begin
  Abort
end;

Esto impide por completo las inserciones en esa consulta

Un saludo
Responder Con Cita
  #3  
Antiguo 07-02-2006
Avatar de dmagui
dmagui dmagui is offline
Miembro
 
Registrado: may 2005
Posts: 168
Poder: 19
dmagui Va por buen camino
Ante todo gracias por haberme respondido.

Mira no me funciono, sigue saliendo esa excepcion, cuando estoy posionada en el ultimo registro de la tabla, eso ocurre con la flecha hacia abajo.
que puedo hacer?
__________________
El espiritu humano no se acaba cuando es derrotado se termina cuando se rinde.
Responder Con Cita
  #4  
Antiguo 07-02-2006
cuburu cuburu is offline
Miembro
 
Registrado: mar 2005
Posts: 63
Poder: 20
cuburu Va por buen camino
Mira, como entiendo, estas utilizando un DBGrid para este truco, tienes tres maneras de hacerlo, una como ya lo comento es buscar en los eventos del DBGrid, no del query o lo que uses y colocar la instrucción Abort.

La segunda es sin tener que colocar ninguna clase de código, solo te vas en las propiedades del DBGrid, en opciones y colocas la propiedad edit en FALSE.

La tercera es la más sencilla de todas, lo que tienes que hacer es, como el DBGrid esta conectado a un data set supongo, ir al data set y colocar sy propiedad EDIT en FALSE.

Espero que te halla servido de algo esto, suerte.
Responder Con Cita
  #5  
Antiguo 07-02-2006
Avatar de dmagui
dmagui dmagui is offline
Miembro
 
Registrado: may 2005
Posts: 168
Poder: 19
dmagui Va por buen camino
no me funciono, porque si coloco la opcion edit en false, no me dejaria modificar las monedas que deseo,

lo que quiero es que me deje modificar las ya existentes, mas no me deje hacer un append en la grilla, ya que no debe dejar insertar.

y por no tener la instruccion sql del insert es por eso que me genera la excepcion que no la he podido capturar, originada cuando lo hago con la flecha abajo, donde especificamente me sale el error en el (end.

ojala me halla hecho entender y me puedan ayudar.

Gracias ante todo por las respuestas.
__________________
El espiritu humano no se acaba cuando es derrotado se termina cuando se rinde.
Responder Con Cita
  #6  
Antiguo 07-02-2006
cuburu cuburu is offline
Miembro
 
Registrado: mar 2005
Posts: 63
Poder: 20
cuburu Va por buen camino
Entonces lo que se me ocurre de golpe es que utilices uno o unos DBEDITs que apunten a o los valores que estas seleccionando y que cuando desees modificar el valor lo hagas en el DBEDit en lugar de hacerlo directamente en el DBGrid.
Responder Con Cita
  #7  
Antiguo 07-02-2006
Avatar de Thales
Thales Thales is offline
Miembro
 
Registrado: ago 2005
Posts: 48
Poder: 0
Thales Va por buen camino
Aparte de hacer lo que te he indicado en el post anterior, pon en la propiedad InsertSQL del IBDataSet cualquier cosa (la letra que más rabia te dé bastaría). De esta manera no saltará el error.

Un saludo
Responder Con Cita
  #8  
Antiguo 08-02-2006
Fernando Fernando is offline
Miembro
 
Registrado: ago 2003
Posts: 77
Poder: 21
Fernando Va por buen camino
De Darío Álvarez Aranda en trucomanía (www.q3.nu)

Código Delphi [-]
with (Sender as TDbGrid) do 

if (Key = VK_DOWN) or ((Key = VK_TAB) and (SelectedIndex = Columns.Count-1)) then 
begin 

  DataSource.DataSet.DisableControls;

  DataSource.DataSet.Next;

  if DataSource.DataSet.EOF then 
    Key := 0
  else 
    DataSource.DataSet.Prior;

  DataSource.DataSet.EnableControls;

end;

Saludos.
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
Como tener en un DBGrid un campo lookupComboBox como los del ObjectInstpector ? jpablor Conexión con bases de datos 1 29-08-2005 16:05:52
capturar texto no seleccionado, ComboBox sakuragi OOP 3 10-08-2005 23:28:22
Usar Linux como Server . . . uper Linux 2 24-06-2004 20:07:18
Como Capturar Las Flechas Arriba/abajo Presionadas MITOPE Varios 3 17-05-2004 20:51:55
Como paso un la intancia Tstrings de un TComboBox (ComboBox.items) por parametro? orfeo OOP 1 05-05-2003 07:58:52


La franja horaria es GMT +2. Ahora son las 16:55:47.


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