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
lilosoft
Posts: 33
Joined: Mon May 11, 2015 2:54 am

error GPF (Code = c0000005)

Postby lilosoft » Sun Nov 04, 2018 12:58 am

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
Attachments
tabla.png
tabla.png (62.17 KiB) Viewed 1548 times
gabo1
Posts: 73
Joined: Mon Oct 13, 2014 9:42 am

Re: error GPF (Code = c0000005)

Postby gabo1 » Sun Nov 04, 2018 4:55 pm

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

Code: Select all

  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

Code: Select all

  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
Posts: 33
Joined: Mon May 11, 2015 2:54 am

Re: error GPF (Code = c0000005)

Postby lilosoft » Mon Nov 05, 2018 3:58 am

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.
Attachments
datos.jpg
datos.jpg (119.09 KiB) Viewed 1508 times
estructura.jpg
estructura.jpg (170.25 KiB) Viewed 1508 times
User avatar
XeviCOMAS
Posts: 524
Joined: Sat Mar 12, 2011 8:16 pm

Re: error GPF (Code = c0000005)

Postby XeviCOMAS » Mon Nov 05, 2018 10:28 am

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" )

Code: Select all

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
Posts: 80
Joined: Thu Sep 23, 2010 12:44 am

Re: error GPF (Code = c0000005)

Postby hgarciaj » Tue Nov 06, 2018 4:27 pm

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
Posts: 80
Joined: Thu Sep 23, 2010 12:44 am

Re: error GPF (Code = c0000005)

Postby hgarciaj » Tue Nov 06, 2018 4:30 pm

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
Posts: 33
Joined: Mon May 11, 2015 2:54 am

Re: error GPF (Code = c0000005)

Postby lilosoft » Fri Nov 09, 2018 12:34 am

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

Return to “Spanish”