In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.

Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.

error GPF (Code = c0000005)

Foro público de Xailer en español
Responder
lilosoft
Mensajes: 41
Registrado: Lun May 11, 2015 2:54 am

error GPF (Code = c0000005)

Mensaje por lilosoft »

buenas tardes junto con saludar les comento que me encuentro pasando mis programas a BD.
Para esto instale MARIADB y estoy trabajando con localhost.
El problema que se me presenta es que al agregar registro en una tabla me da un error y no se porque se produce.
Por favor alguien que me pueda ayudar, a continuación adjunto rutina de grabación

STATIC FUNCTION GrabaMensaje( oSqlHisChat, cMensaje, cUsuEnvio)
Local FechaHoy := DToS(Date())

With Object oSqlHisChat
IF :lOpen
:Close()
End IF
:cSelect := "Select * From HISCHAT Where Empresa = 1 and fecha = '"+FechaHoy+"' "
:Open()
:AddNew()
:Empresa := appdata:pcodempre
:Usuario := appdata:pUsuario
:UsuEnvio := cUsuEnvio
:Fecha := Date()
:Hora := Time()
:Mensaje := " " //cMensaje
:Update()
End With
Return Nil
Adjuntos
tabla.png
tabla.png (62.17 KiB) Visto 3313 veces
Avatar de Usuario
gabo1
Mensajes: 127
Registrado: Lun Oct 13, 2014 9:42 am

Re: error GPF (Code = c0000005)

Mensaje por gabo1 »

Hola..
Primeramente tienes que crear el datasource MySQL o MariaDB, por lo que veo estas usando ADO

Código: Seleccionar todo

  WITH OBJECT AppData:oMySQLDS:= TMySQLDataSource():New()  // TMariaDBDataSource():New()
       :cHost:= AllTrim(::oSQLEmpresas:servidor_ip)
       :cPassword:= AllTrim(::oSQLEmpresas:servidor_password)
       :cUser:= AllTrim(::oSQLEmpresas:servidor_user)
       :cDataBase:= AllTrim(::oSQLEmpresas:servidor_db)
       :nPort:= 3306
       :lConnected:= .F.
       :lDisplayErrors:= .F.
       :Create()
  END
Despues que hayas creado el DataSource tienes que asignarselo a cada DataSet que uses

Código: Seleccionar todo

  WITH OBJECT ::oSQLProductos
       :Close()
       :oDataSource:= AppData:oMySQLDS // AQUI ESTA EL DATASOURCE MySQL o MariaDB
       :cSelect:= "SELECT * FROM productos"
       :lOpen:= .T.
       IF ! :lOpen
          msgstop("NO SE PUDO ABRIR")
          RETURN NIL
       ENDIF
  END WITH
Saludos!
lilosoft
Mensajes: 41
Registrado: Lun May 11, 2015 2:54 am

Re: error GPF (Code = c0000005)

Mensaje por lilosoft »

hola
lo que me indicas ya esta incluido dentro del programa y se encuentra funcionando. El problema se presenta al grabar. de hecha alcanza a grabar el primer registro y al grabar el segundo da el error
adjunto datos.
Adjuntos
datos.jpg
datos.jpg (119.08 KiB) Visto 3273 veces
estructura.jpg
estructura.jpg (170.25 KiB) Visto 3273 veces
Avatar de Usuario
XeviCOMAS
Mensajes: 582
Registrado: Sab Mar 12, 2011 8:16 pm

Re: error GPF (Code = c0000005)

Mensaje por XeviCOMAS »

El formato de MariaDB (SQL) es año/mes/dia

yo tengo esa función... igual hay alguna (seguro que la hay)

como el formato que utilizo en mis aplicaciones es
Set( _SET_DATEFORMAT, "dd/mm/yyyy" )

Código: Seleccionar todo

Function xDateSQL( c )
IF( ValType(c) = "D", c := DToC(c), )
RETURN Right(c,4) +"/"+ SubStr(c,4,2) +"/"+ Left(c,2)
Un Saludo,
Xevi.
hgarciaj
Mensajes: 107
Registrado: Jue Sep 23, 2010 12:44 am

Re: error GPF (Code = c0000005)

Mensaje por hgarciaj »

Hola yo tuve algunos inconvenientes usando los objetos dataset, así que opté por grabar directo, pero en el caso que muestras, sugiero reemplaces :Addnew() por :fastaddnew() y :update() por :fastupdate() la diferencia es que el primero se usa cuando vas a editar el registro mediante captura y el otro es para grabar directo al dataset. para mi fue más fácil usando la instrucción:

cCodigo:=::oMaria:buildsqlst("Insert into tabla valor1,valor2,valor3 values(?,?,?)",datonumero,datocaracter,datofecha)
::oMaria:execute(cCodigo)
si tu registro tiene más campos debes cuidar los valores por default de cada uno de ellos cuando creas la tabla, si los dejas como default null después tienes problemas cuando los trabajas en xailer.
Saludos
Héctor García
hgarciaj
Mensajes: 107
Registrado: Jue Sep 23, 2010 12:44 am

Re: error GPF (Code = c0000005)

Mensaje por hgarciaj »

Para Xevi
el formato de para Maria es yyyy-mm-dd y se puede enviar con la función dtosql(date()) si usas el objeto dataset de Xailer hace la conversión automáticamente a partir del cualquier campo fecha
Saludos
Héctor García
lilosoft
Mensajes: 41
Registrado: Lun May 11, 2015 2:54 am

Re: error GPF (Code = c0000005)

Mensaje por lilosoft »

Muchas gracias por las sugerencias probare y veré que sucede
Muchas Gracias
Responder