Page 4 of 7

Posted: Tue Oct 07, 2008 7:45 pm
by Rossine
Olá pessoal,

Estou testando o sqlwin para postgres e já tenho várias funções funcionando. Agora estou tentando fazer "UR_RECINFO" funcionar, mas quando acrescento as linhas abaixo, me é retornado um erro de GPF.

Code: Select all


function SQLWIN_GETFUNCTABLE( pFuncCount, pFuncTable, pSuperTable, nRddID )

...
   aSQLFunc[ UR_RECINFO ]      := ( @SQL_RECINFO() )
...

STATIC FUNCTION SQL_RECINFO( nWA, nRecord, nInfoType, uInfo )

   LOCAL nResult := SUCCESS
   local aWAData := USRRDD_AREADATA( nWA )
   local cRddSep := SQLGetCurrentSep( aWAData[ WA_SYSTEMID ] )
   local nSysID  := aWAData[ WA_SYSTEMID ]

MSGSTOP( "NÃO CHEGA AQUI" )

   DO CASE
   CASE nInfoType == UR_DBRI_DELETED
        uInfo     := .F.
   CASE nInfoType == UR_DBRI_LOCKED
        uInfo     := .T.
   CASE nInfoType == UR_DBRI_RECSIZE
   CASE nInfoType == UR_DBRI_RECNO
        nResult   := SQL_RECID( nWA, @nRecord )
   CASE nInfoType == UR_DBRI_UPDATED
        uInfo     := .F.
   CASE nInfoType == UR_DBRI_ENCRYPTED
        uInfo     := .F.
   CASE nInfoType == UR_DBRI_RAWRECORD
        uInfo     := ""
   CASE nInfoType == UR_DBRI_RAWMEMOS
        uInfo     := ""
   CASE nInfoType == UR_DBRI_RAWDATA
        nResult   := SQL_GOTOID( nWA, nRecord )
        uInfo     := ""
   ENDCASE

RETURN nResult
Funções que já estão funcionando:

Code: Select all

dbgotop()
dbgobottom()
skip()
use()
goto()
dbappend()
alias()
eof()
bof()
recno()
reccount()
__dbzap()
__dbpack()
fieldget()
fieldput()
fieldname()
fieldsize()
dbcommit()
Alguém poderia me ajudar ?

Antonio: Se quiser lhe envio o sqlwin com minhas mudanças ok ? :wink:

Obrigado,

Posted: Tue Oct 07, 2008 8:33 pm
by Antonio Linares
Rossine,

> Se quiser lhe envio o sqlwin com minhas mudanças ok ?

Por que no las subes directamente al wiki ?

http://wiki.fivetechsoft.com/doku.php?i ... evelopment

Asi podemos ver _ más facilmente y estan disponibles para todos :-)

Tienes que haber recibido un email con tu login y password para el wiki para que puedas actualizar el código de SQLWIN en el wiki, gracias! :-)

Posted: Tue Oct 07, 2008 9:14 pm
by Rossine
OK Maestro. Irei organizar o código com minhas mudanças e o sample e postarei.

Gracias,

Rossine.

Posted: Wed Oct 08, 2008 3:23 pm
by Rossine
Olá Antonio,

Meu primeiro post em wiki não ficou correto :oops: Poderia por favor apagá-lo (Não vi opção para apagar um post) (hehehe).

Bom, testei o código postado, com postgres 8.3.

Para verem as mudanças por mim implementadas/modificadas, procurem pelo meu nome "Rossine".

O código está meio bagunçado, pois trata-se de um protótipo. Depois que tudo estiver funcionando pretendo "enxugar" o código. :lol:

Antonio poderia ver o erro de GPF que está ocorrendo na função "DbRecordInfo" ?

Gracias,

Rossine.

Posted: Thu Oct 09, 2008 8:25 am
by Antonio Linares
Rossine,

Para borrar un post selecciona "Old Revisions":

"These are the older revisons of the current document. To revert to an old revision, select it from below, click Edit this page and save it."

Posted: Thu Oct 09, 2008 11:14 am
by Antonio Linares
Rossine,

Pon una traza aqui y comprueba si llega:

Code: Select all

STATIC FUNCTION SQL_RECINFO( nWA, nRecord, nInfoType, uInfo )  && Rossine 07/10/08
 
   LOCAL nResult := SUCCESS
   local aWAData := USRRDD_AREADATA( nWA )
   local cRddSep := SQLGetCurrentSep( aWAData[ WA_SYSTEMID ] )
   local nSysID  := aWAData[ WA_SYSTEMID ]
 
   MsgInfo( "here 1" )
   ...

Posted: Thu Oct 09, 2008 12:14 pm
by Rossine
Olá Antonio,
Pon una traza aqui y comprueba si llega:
Já fiz isto não chega lá não :cry:

Usando este recurso: http://67.222.39.232/forums/viewtopic.php?t=13053 me gera este erro:
Path: C:\myfwh\sqlwin\teste.exe (32 bits)
Tamanho: 1,983,488 bytes
Descrição do Erro: Erro GPFHANDLER/0 Erro de GPF: GPFHANDLER

Tempo de Uso: 0 hours 0 mins 2 secs
interrupção: 09/10/2008, 09:18:12

Argumento:
[ 1] = C EXCEPTION_ACCESS_VIOLATION - O thread tentou ler/escrever num endereço virtual ao qual não tinha acesso.
[ 2] = O Object
[ 3] = N -1073741819

Ordem de Chamada
================
2ª Chamada-> Módulo: ==> Linha: 0 Função: DBRECORDINFO
1ª Chamada-> Módulo: TESTE.PRG ==> Linha: 81 Função: MAIN
Saludos,

Rossine.

Posted: Thu Oct 09, 2008 12:55 pm
by Antonio Linares
Rossine,

Pruébalo asi:

Code: Select all

STATIC FUNCTION SQL_RECINFO( nWA, nRecord, nInfoType, uInfo )  && Rossine 07/10/08 
  
   MsgInfo( "here 1" ) 
   ...

Posted: Thu Oct 09, 2008 4:39 pm
by Rossine
Antonio,

Code: Select all

STATIC FUNCTION SQL_RECINFO( nWA, nRecord, nInfoType, uInfo )  && Rossine 07/10/08 
  
   MsgInfo( "here 1" ) 
   ... 
Mesmo erro de GPF :cry:

Posted: Thu Oct 09, 2008 5:32 pm
by Rossine
Olá Antonio,

Eu acrescentei o parametro "recno()" na dbrecorinfo() e não ocorreu mais o erro de GPF: Fiz assim:

Code: Select all


msgstop( DbRecordInfo( DBRI_LOCKED, recno() ) )

O próximo passo agora é fazer funcionar as funções:

DbRecordInfo()
dbinfo()
dbrlocklist()

Alguma dica ?

Posted: Thu Oct 09, 2008 6:12 pm
by Antonio Linares
Rossine,

>
Eu acrescentei o parametro "recno()" na dbrecorinfo() e não ocorreu mais o erro de GPF: Fiz assim:

msgstop( DbRecordInfo( DBRI_LOCKED, recno() ) )
>

Bien! :-)

>
O próximo passo agora é fazer funcionar as funções:

DbRecordInfo()
dbinfo()
dbrlocklist()

Alguma dica ?
>

Revisa el código fuente de los RDDs que se proporcionan con Harbour/xHarbour. Es la mejor forma de ver como funcionan.

Posted: Thu Oct 09, 2008 6:39 pm
by Rossine
Olá Antonio,
Revisa el código fuente de los RDDs que se proporcionan con Harbour/xHarbour. Es la mejor forma de ver como funcionan.
OK.

Code: Select all

   HB_SYMBOL_UNUSED( xRecId )
   HB_SYMBOL_UNUSED( nWA )
Porque disto no código abaixo ?

Code: Select all

STATIC FUNCTION ADO_UNLOCK( nWA, xRecID )

/* TODO
   LOCAL oRecordSet := USRRDD_AREADATA( nWA )[ WA_RECORDSET ]
*/   
   HB_SYMBOL_UNUSED( xRecId )
   HB_SYMBOL_UNUSED( nWA )

Posted: Thu Oct 09, 2008 6:49 pm
by Antonio Linares
Rossine,

#define HB_SYMBOL_UNUSED( symbol ) ( symbol := ( symbol ) )

Posted: Thu Oct 09, 2008 7:11 pm
by Rossine
Antonio,

Code: Select all

#define HB_SYMBOL_UNUSED( symbol ) ( symbol := ( symbol ) )
Mas o porque usar isto dentro de SQLWIN.PRG ? O que isto faz ?

Posted: Thu Oct 09, 2008 7:51 pm
by Antonio Linares
Rossine,

Evita los "warnings" de variables no usadas al compilar