NetTalk Central

Author Topic: NetWebServiceMethod Problem  (Read 4510 times)

osquiabro

  • Hero Member
  • *****
  • Posts: 687
    • View Profile
    • Email
NetWebServiceMethod Problem
« on: October 11, 2019, 12:02:25 PM »
is Possible to skip SELECT COUNT(*) FROM IMSV7.WSPAYMENTDETAIL from NetWebServiceMethod, the driver generate this sentence, this is a view in Oracle and have millions of records and the select count is very slow this is a code generate by clarion Oracle driver:

01728H(3) 15:44:26.656 Closing Statement 01638F10H Time Taken:0.00 secs
01728H(3) 15:44:26.656 OPEN(IMSV7.WSPAYMENTDETAIL:025E258CH)  Time Taken:2.21 secs
01728H(3) 15:44:26.656 GET_PROPERTY(IMSV7.WSPAYMENTDETAIL:025E258CH)  Time Taken:0.00 secs
01728H(3) 15:44:26.657 OPEN(VIEW:49B3ED4:IMSV7.WSPAYMENTDETAIL:049B258CH)   Time Taken:0.00 secs
01728H(3) 15:44:26.657 SET_PROPERTY(VIEW:49B3ED4:IMSV7.WSPAYMENTDETAIL:049B258CH)   Time Taken:0.00 secs
01728H(3) 15:44:26.657 GET_PROPERTY(VIEW:49B3ED4:IMSV7.WSPAYMENTDETAIL:049B258CH)   Time Taken:0.00 secs
01728H(3) 15:44:26.657 Setting Concurrency to Read Only for Statement 01638F10H Time Taken:0.00 secs
01728H(3) 15:44:26.657 Setting Cursor Type to Forward Only for Statement 01638F10H Time Taken:0.00 secs
01728H(3) 15:44:26.657 Resetting Parameters Statement 01638F10H Time Taken:0.00 secs
01728H(3) 15:44:26.657 Preparing Statement 01638F10H : SELECT COUNT(*) FROM IMSV7.WSPAYMENTDETAIL Time Taken:0.00 secs
01728H(3) 15:44:26.658 Setting number of rows to fetch to 1 for Statement 01638F10H Time Taken:0.00 secs
01728H(3) 15:44:26.658 Binding Column 1 to C type LONG for Statement 01638F10H Time Taken:0.00 secs
01728H(3) 15:44:26.658 Executing prepared Statement 


NT 11.22

osquiabro

  • Hero Member
  • *****
  • Posts: 687
    • View Profile
    • Email
Re: NetWebServiceMethod Problem
« Reply #1 on: October 11, 2019, 03:25:07 PM »
i don't how NetWebServiceMethod open a table or view but if i founded another solution for my problem, i create a queue and open a table manually and then assign a values to a queue, with this code the select count(*) is not generated, but when return type is set to view then the select count(*) is generate

With queue  and open manually work, but generated more code.. and i think that  filter need embedded for conditional filter when Return Type is View


CLEAR(ThisQueue)
FREE(ThisQueue)

p_web.OpenFile(WSPAYMENTDETAIL)

SET(WSPAYMENTDETAIL)
WSPAYMENTDETAIL{PROP:Order}=WSP:BATCHNO
IF CLIP(BlType)=''   
    WSPAYMENTDETAIL{prop:where}='acctno=<39>'&clip(AcctNo)&'<39>'
ELSE
    WSPAYMENTDETAIL{prop:where} = 'acctno=<39>'&clip(Acctno)&'<39> and bltype= <39>'& clip(BlType)&'<39>'
END       
LOOP
    NEXT(WSPAYMENTDETAIL)
    IF ERROR() THEN BREAK.
    LOC:BATCHNO       = WSP:BATCHNO
    LOC:TRAN_         = WSP:TRAN_
    LOC:TYPE          = WSP:TYPE
    LOC:DES           = WSP:DES
    LOC:EMPID         = WSP:EMPID
    LOC:LINEITEM      = WSP:LINEITEM     
    LOC:TRANDATE_DATE = format(WSP:TRANDATE_DATE,@d02)
    LOC:TRANDATE_TIME = format(WSP:TRANDATE_TIME,@t3)
    LOC:AMOUNT        = WSP:AMOUNT
    LOC:TRACENO       = WSP:TRACENO
    LOC:ACCTKEY       = WSP:ACCTKEY
    LOC:BLTYPE        = WSP:BLTYPE
    LOC:ACCTNO        = WSP:ACCTNO
    ADD(ThisQueue)
END
p_web.CloseFile(WSPAYMENTDETAIL)