Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

FUNCTION SR_SubQuoted #20

Open
sygecom opened this issue Mar 26, 2024 · 0 comments
Open

FUNCTION SR_SubQuoted #20

sygecom opened this issue Mar 26, 2024 · 0 comments

Comments

@sygecom
Copy link

sygecom commented Mar 26, 2024

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:
image

Eu testei com: POSTGRESQL 9.5, 10, 13 e 16 e deram varios SQL certo depois dessa alteração.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant