You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Tive que fazer uma alteração aqui no SQLRDD depois de muito teste.
Por algum motivo na versão xHarbour ( lib compilada que tenho aqui antiga ) dava certo e no Harbour dava errado.
Sempre que usava a function SR_cDBValue que por sua vez chama a function SR_SubQuoted, com campos vazio( ex: SR_cDBValue('')) ele gerava um E'' e, isso quebrava na hora de gerar os retortos para mostrar em tela ou gerar macro conforme exemplo abaixo:
cADD:=''
aCOL:=DBSTRUCT() // aqui pega uma estrutura de uma tabela minha
FOR mY:=1 TO LEN(aCOL)
IF alltrim(aCOL[mY,1])='NUMBOL'
cADD+='0,'
ELSEIF alltrim(aCOL[mY,1])='ORDEM_NRO_IMPR'
cADD+='0,'
ELSEIF alltrim(aCOL[mY,1])='MEDIA_VOLUME'
cADD+='0,'
ELSEIF alltrim(aCOL[mY,1])='QTD'
cADD+='0,'
ELSEIF alltrim(aCOL[mY,1])='PRODUTO'
cADD+="'',"
ELSE
IF VALTYPE(RETORNA_TIPO_CAMPO('ORDEM',alltrim(aCOL[mY,1])))='D'
cADD+='CTOD(SPACE(8)),'
ELSEIF VALTYPE(RETORNA_TIPO_CAMPO('ORDEM',alltrim(aCOL[mY,1])))='L'
cADD+='.F.,'
ELSE
cADD+=CS(RETORNA_TIPO_CAMPO('ORDEM',alltrim(aCOL[mY,1])))+","
ENDIF
ENDIF
NEXT
cADD+="0,'','',0"
aVET:={{ &cADD }}
Colocando para ver na tela o que cada versão gerou:
cADD:="0,E'',E'',E'',E'',E'',E'',E'',E'',E'',CTOD(SPACE(8)),E'',E'',E'',E'',0,'','',0," //HARBOUR
cADD:="0,'','','','','','','','','',CTOD(SPACE(8)),'','','','',0,'','',0" //XHARBOUR(versão do SQLRDD antes de abrirem como opensource)
Então acabei mudando em UTILS.PRG para comentar as linhas 595 e 596, conforme abaixo:
Eu testei com: POSTGRESQL 9.5, 10, 13 e 16 e deram varios SQL certo depois dessa alteração.
The text was updated successfully, but these errors were encountered:
Mestre Marcos.
Tive que fazer uma alteração aqui no SQLRDD depois de muito teste.
Por algum motivo na versão xHarbour ( lib compilada que tenho aqui antiga ) dava certo e no Harbour dava errado.
Sempre que usava a function SR_cDBValue que por sua vez chama a function SR_SubQuoted, com campos vazio( ex: SR_cDBValue('')) ele gerava um E'' e, isso quebrava na hora de gerar os retortos para mostrar em tela ou gerar macro conforme exemplo abaixo:
cADD:=''
aCOL:=DBSTRUCT() // aqui pega uma estrutura de uma tabela minha
FOR mY:=1 TO LEN(aCOL)
IF alltrim(aCOL[mY,1])='NUMBOL'
cADD+='0,'
ELSEIF alltrim(aCOL[mY,1])='ORDEM_NRO_IMPR'
cADD+='0,'
ELSEIF alltrim(aCOL[mY,1])='MEDIA_VOLUME'
cADD+='0,'
ELSEIF alltrim(aCOL[mY,1])='QTD'
cADD+='0,'
ELSEIF alltrim(aCOL[mY,1])='PRODUTO'
cADD+="'',"
ELSE
IF VALTYPE(RETORNA_TIPO_CAMPO('ORDEM',alltrim(aCOL[mY,1])))='D'
cADD+='CTOD(SPACE(8)),'
ELSEIF VALTYPE(RETORNA_TIPO_CAMPO('ORDEM',alltrim(aCOL[mY,1])))='L'
cADD+='.F.,'
ELSE
cADD+=CS(RETORNA_TIPO_CAMPO('ORDEM',alltrim(aCOL[mY,1])))+","
ENDIF
ENDIF
NEXT
cADD+="0,'','',0"
aVET:={{ &cADD }}
Colocando para ver na tela o que cada versão gerou:
cADD:="0,E'',E'',E'',E'',E'',E'',E'',E'',E'',CTOD(SPACE(8)),E'',E'',E'',E'',0,'','',0," //HARBOUR
cADD:="0,'','','','','','','','','',CTOD(SPACE(8)),'','','','',0,'','',0" //XHARBOUR(versão do SQLRDD antes de abrirem como opensource)
Então acabei mudando em UTILS.PRG para comentar as linhas 595 e 596, conforme abaixo:
Eu testei com: POSTGRESQL 9.5, 10, 13 e 16 e deram varios SQL certo depois dessa alteração.
The text was updated successfully, but these errors were encountered: