Boa tarde.
Estou tendo problemas na utilização da classe FWAdapterBaseV2. quando executo o método Execute() da OwnerData, a string da query está incorreta e consequemente dá error.log. AO que parece ele está montando incorretamente a query.
Vejam o erro:
THREAD ERROR ([251448], TP|HTTPREST|HTTPURI@99|FALSE, 217C7CA3543D484FA4640B4A0393EADD) 12/09/2024 16:21:58 : Error : 102 (37000) (RC=-1) - [Microsoft][SQL Server Native Client 11.0][SQL Server]Sintaxe incorreta pr¾xima a ','. Error : 102 (37000) (RC=-1) - [Microsoft][SQL Server Native Client 11.0][SQL Server]Sintaxe incorreta pr¾xima a ')'. Error : 102 (00000) (RC=-1) - ( From tMSSQLConnection::GetQueryFile ) Thread ID [264508] User [TP|HTTPREST|HTTPURI@99|FALSE] IO [1656] Tables [43] MaxTables [44] Comment [] SP [ ] Traced [No] SQLReplay [No] InTran [No] DBEnv [MSSQL/TOTVSDBLOCAL] DBThread [(SPID 58,59)]Started [12/09/2024 16:20:24] IP [127.0.0.1:1234] IDLE [ ] InTransact [ ] Memory [0] Running [ROPQUERY for 0 s.] RCV [37499] SND [110979] TCBuild [20230303-20230929] TCVersion [23.1.1.0] ARCH [64] OS [WINDOWS] BUILD [RELEASE] SELECT ZSB_ID,ZSB_NAME,ZSB_RG,ZSB_CPF, ITEM_ORDER FROM ( , ROW_NUMBER() OVER ( ORDER BY ZSB_ID desc ) ITEM_ORDER select ZSB_ID,ZSB_NAME,ZSB_RG,ZSB_CPF from ZSB990 ZSB where ZSB_FILIAL = ' ' AND D_E_L_E_T='' ) TRB WHERE ITEM_ORDER BETWEEN 1 AND 10 on MPSYSOPENQUERY(MPSYSOPENTABLES.PRW) 12/04/2024 16:07:10 line : 712
Na verdade, a clausula correta deveria ser:
SELECT ZSBID,ZSB_NAME,ZSB_RG,ZSB_CPF,ZSB_EMAIL,ZSB_TEL1,ZSB_TEL2,ITEM_ORDER FROM (SELECT ROW_NUMBER() OVER (ORDER BY ZSB_FILIAL, ZSB_ID ) ITEM_ORDER, ZSB_ID,ZSB_NAME,ZSB_RG,ZSB_CPF,ZSB_EMAIL,ZSB_TEL1,ZSB_TEL2 from ZSB990 ZSB where ZSB_FILIAL = ' ' AND D_E_L_E_T = '' ) TRB WHERE ITEM_ORDER BETWEEN 1 AND 10
Vejam que ele se pedeu perto do RoW_Number.
Alguém tem alguma ideia ?
Coloquei os fontes em anexo.
Obrigado.