Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Error En Código: Null Key
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Error En Código: Null Key 
 
Hola, antes de editar el .class del formulario todo funcionaba de maravilla, ahora le agregue unas cosas simples y me genera un error al intentar obener la data de la dase de datos. Este es el código, el error está comentado.

PUBLIC SUB CerrarConexion()
 
 IF con.hConn = NULL THEN RETURN
 con.hConn.CLOSE()
 con.hConn = NULL
 
END
 
'++++++++++++++++++++++++++++++++++++++++++++++++++++++
' Sentencia para mostrar los resultados de la búsqueda
'++++++++++++++++++++++++++++++++++++++++++++++++++++++
PRIVATE SUB refrescarLista(OPTIONAL filtro AS String)

 DIM hResul AS Result
 DIM Clave AS String

 tabla.Clear()
 IF con.ConectarBase() THEN RETURN
 
 tabla.Columns.Count = 6
 tabla.Columns[0].text = "Title"
 tabla.Columns[1].Text = "Collection"
 tabla.Columns[2].text = "Classification"
 tabla.Columns[3].Text = "Concentration"
 tabla.Columns[4].Text = "Format"
 tabla.Columns[5].text = "Comments"
 
 hResul = con.hConn.Exec("select * from movinfo" & If(filtro, " where " & filtro, ""))  'Si hay cadena de filtro se adjunta, si no, no)
 
 DO WHILE hResul.Available
 
   Clave = hResul["title"]
  
   tabla.Add(Clave, Clave)  '------------------------ Aquí es donde me indica que hay error "Null Key"
  
   tabla[Clave][1] = hResul["collection"]
   tabla[Clave][2] = hResul["classification"]
   tabla[Clave][3] = hResul["concentration"]
   tabla[Clave][4] = hResul["format"]
   tabla[Clave][5] = hResul["comments"]
 
   hResul.MoveNext()
  
 LOOP
 CerrarConexion()
 
'++++++++++++++++++++++++++++++++++++++++++++++++++
' Notifica en un label cuantos videos hay con el "título sugerido" en el textbox
'++++++++++++++++++++++++++++++++++++++++++++++++++
  IF tabla.Count = 1 THEN
    VideoCount.Text = tabla.Count & " video"
  ELSE
    VideoCount.Text = tabla.Count & " videos"
  ENDIF
 
END

PUBLIC SUB form_open()

 ME.Title = "Video Database"

 refrescarLista() 'de entrada no enviamos ninguna cadena de filtro con lo que nos muestra todos
 
 ' tabla.Move(0, 60)

END
'++++++++++++++++++++++++++++++++++++++++++++++++++++
' Borrar artículo seleccionado con la tecla "Delete"
'++++++++++++++++++++++++++++++++++++++++++++++++++++
PUBLIC SUB tabla_KeyRelease()
 
 IF Key.Code = Key.Delete THEN
  deleteselect()
  
 ENDIF
 
END
'++++++++++++++++++++++++++++++++++++++++++++++++
' Sentencia para borrar el artículo seleccionado
' de la base de datos y a su vez del ColumnView
'++++++++++++++++++++++++++++++++++++++++++++++++
PUBLIC SUB deleteselect()
  
  IF tabla.Current = NULL THEN RETURN
   IF tabla.Current.Selected = FALSE THEN RETURN
  
   IF con.ConectarBase() THEN RETURN
  
   SELECT Message.Delete("Do you really want to delete, " & tabla.Current.Key & " ?", "Yes", "No")
    CASE 1
       TRY con.hConn.Exec("delete from movinfo where title=&1", tabla.Current.Key)
       IF ERROR THEN
       Message.Error("Can't erase \n" & Error.Text)
       ELSE
       tabla.Current.Delete()
       ENDIF
'        TxtSearch.Text = ""
    CASE 2
    STOP EVENT
    END SELECT
  
   CerrarConexion()
'    refrescarLista()
IF tabla.Count = 1 THEN
VideoCount.Text = tabla.Count & " video"
ELSE
VideoCount.Text = tabla.Count & " videos"
ENDIF
  
END

'++++++++++++++++++++++++++++++++++++++++++++++++++++
' Muestra el formulario para añadir a la base
'++++++++++++++++++++++++++++++++++++++++++++++++++++
PUBLIC SUB BtnAdd_Click()

 IF con.ConectarBase() THEN RETURN
 FData.RunNew(con.hConn)
 CerrarConexion()
 Form_Open()

END

PUBLIC SUB tabla_Activate()
 
 DIM hResul AS Result
 
 IF tabla.Current = NULL THEN RETURN
 
 IF con.ConectarBase() THEN RETURN
 
 tabla.Enabled = FALSE
 
 hResul = con.hConn.Edit("movinfo", "title=&1", tabla.Current.Key)
 FData.RunEdit(hResul)
 
 tabla.Current[0] = hResul["title"]
 tabla.Current[1] = hResul["collection"]
 tabla.Current[2] = hResul["classification"]
 tabla.Current[3] = hResul["concentration"]
 tabla.Current[4] = hResul["format"]
 tabla.Current[5] = hResul["comments"]
 
 tabla.Enabled = TRUE
 
 CerrarConexion()
 
END
'++++++++++++++++++++++++++++++++++++++++++++++++++++++++
' Buscador: Busca artículos en la base de datos mientras
' se escribe y los va mostrando en el ColumnView
'++++++++++++++++++++++++++++++++++++++++++++++++++++++++

PUBLIC SUB TxtSearch_change()

  refrescarLista("title like" & "'" & TxtSearch.Text & "%" & "'")

END
'++++++++++++++++++++++++++++++++++++++++++++++++++++
' Se despliega el "Popup Menu" con el "Right Click"
'++++++++++++++++++++++++++++++++++++++++++++++++++++

PUBLIC SUB tabla_Menu()

  popupmenu.Popup()

END
'++++++++++++++++++++++++++++++++++++++++++++++++++++
' Borrar artículo seleccionado con el "Popup Menu"
'++++++++++++++++++++++++++++++++++++++++++++++++++++
PUBLIC SUB delectselected_Click()

  deleteselect()

END
'++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
' Para editar el artículo seleccionado con el "Popup Menu"
'++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
PUBLIC SUB editselected_Click()

  

END

PUBLIC SUB VideoCount_DblClick()

  TxtSearch.Text = ""

END



 -  "title" es el primary key de la base de datos
 -  Los datos de conexión se encuentran en el módulo "con"
 



 
techm3 - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Error En Código: Null Key 
 
Citar:

DO WHILE hResul.Available
 
   Clave = hResul["title"]
  
   tabla.Add(Clave, Clave)  '------------------------ Aquí es donde me indica que hay error "Null Key"

...
 



Tiene toda la pinta de que Clave no obtiene un valor de hResul["title"] (¿el campo title puede ser Null?) y por tanto queda vacía. Cuando haces tabla.Add(Clave, Clave) se parsea como tabla.Add("","") y da ese error.
 




===================
Cómo programar con Gambas

Speed Books: informática libre.
 
fabianfv - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Error En Código: Null Key 
 
Alguna idea de como puedo solucionarlo?   ???
 



 
última edición por techm3 el Lunes, 30 Agosto 2010, 13:37; editado 1 vez 
techm3 - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Error En Código: Null Key 
 
fabianfv,

No había analizado bien tu respuesta hasta hoy, pero ya lo resolví.
Resulta que volví a revisar la base de datos y había un campo en la columna "title", vacío, osea nulo. Lo que hice fue borrar la fila y todo volvio a la normalidad.

Para no volver a cometer este error, en el formulario en donde añado los datos utilize un IF null...

IF TxtTitle.Text = NULL THEN
        Message.Error("Please insert a title")
        STOP EVENT
       ELSE
  TRY hConn.Exec("insert into movinfo values (&1,&2,&3,&4,&5,&6)", TxtTitle.Text, TxtCollection.Text, TxtClass.Text, ComboConcentration.Text, ComboFormat.Text, TxtComments.Text)
        ME.Close()
        ENDIF


Muchas gracias fabianfv!
 



 
última edición por techm3 el Miercoles, 22 Septiembre 2010, 02:58; editado 1 vez 
techm3 - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Error En Código: Null Key 
 
techm3 escribió: [Ver mensaje]
fabianfv,

No había analizado bien tu respuesta hasta hoy, pero ya lo resolví.
Resulta que volví a revisar la base de datos y había un campo en la columna "title", vacío, osea nulo. Lo que hice fue borrar la fila y todo volvio a la normalidad.

Para no volver a cometer este error, en el formulario en donde añado los datos utilize un IF null...

IF TxtTitle.Text = NULL THEN
        Message.Error("Please insert a title")
        STOP EVENT
       ELSE
  TRY hConn.Exec("insert into movinfo values (&1,&2,&3,&4,&5,&6)", TxtTitle.Text, TxtCollection.Text, TxtClass.Text, ComboConcentration.Text, ComboFormat.Text, TxtComments.Text)
        ME.Close()
        ENDIF


Muchas gracias fabianfv!


HOLA TECH3. Me puedes puedes indicar como borrastes la fila, para que todo volviera  a la normalidfad, que yo no puedo borrarlo. Gracias.
 



 
moises - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Error "Null Object" Al Tratar De... drjuano Bases de Datos 8 Lunes, 14 Marzo 2011, 00:00 Ver último mensaje
drjuano
No hay nuevos mensajes Null Object En Dialog (solucionado) BrunoIV Controles/Librerías/Componentes 2 Domingo, 08 May 2011, 08:42 Ver último mensaje
Invitado
No hay nuevos mensajes Diferencia Entre Campo Vacío Y Null v3ctor Bases de Datos 5 Viernes, 16 Septiembre 2016, 13:17 Ver último mensaje
Shell
No hay nuevos mensajes _GridView_Rows._GetRowHeight.155 Null Obje... v3ctor General 5 Domingo, 04 Junio 2017, 15:52 Ver último mensaje
v3ctor
 

Publicar nuevo tema  Responder al tema  Página 1 de 1
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario



  

 

cron