Subject RE: [IBO] Query OrderingLinks POS - program never ends
Author IBO Support List
Sounds like it is being caught in an infinite loop of some kind.
Are you able to get it to do this while debugging?
It would sure help if I could see the callstack.
 
Thanks,
Jason Wharton
 


From: IBObjects@yahoogroups.com [mailto:IBObjects@yahoogroups.com]
Sent: Monday, February 16, 2015 9:29 AM
To: IBObjects@yahoogroups.com
Subject: [IBO] Query OrderingLinks POS - program never ends

Hello,

 

I am upgrading a program from delphi7, ibo v4.8 to the newest ibo v5.5.5.

 

I noticed that sometimes my programs where not exiting, I started digging

into what is going on and found that if I opened a query or changed to a

order that had used a “OrderingLinks” with “POS” then when the program

tries to close it stays on the TaskBar and doesn’t stop running, I must go into

TaskManager and kill it.

 

I checked an I am closing the query, I checked multiple queries where I had

the POS and all did the same thing.  The queries that didn’t use the POS worked

as expected.  I have included dfm code samples below.

 

Thanks

Michael Horne

 

--- Sample 1

 

object qyWarehouse: TIB_Query

  IB_Connection = formIBData.cnMain

  SQL.Strings = (

    'select wh_id, wh_Company, wh_Descr, wh_Location,'

    '    wh_fontColor, wh_BackColor,'

   

      '    cast(( case cwh_omit when 1 then 1 else 0 end) as t_boolean)' +

      ' omit '

    'from warehouse '

   

      'left join customer_wh on wh_id = cwh_wh_id and cwh_cus_id = :cus' +

      '_id'

    'where wh_hide = '#39'F'#39)

  AutoFetchAll = True

  KeyLinks.Strings = (

    'warehouse.wh_id')

  MasterSource = dsCustomer

  OrderingItemNo = 2

  OrderingItems.Strings = (

    'WH_ID=WH_ID;WH_ID DESC'

    'WH_COMPANY=WH_COMPANY;WH_COMPANY DESC'

    'WH_DESCR=WH_DESCR;WH_DESCR DESC'

    'WH_LOCATION=WH_LOCATION;WH_LOCATION DESCR')

  OrderingLinks.Strings = (

    'WH_ID=ITEM=1;POS=1'

    'WH_COMPANY=ITEM=2;POS=1'

    'WH_DESCR=ITEM=3;POS=1'

    'WH_LOCATION=ITEM=4;POS=1')

  RequestLive = True

  Left = 484

  Top = 363

end

 

--- Sample 2

 

object IB_Query1: TIB_Query

  IB_Connection = formIBData.cnMain

  SQL.Strings = ( < /p>

    'SELECT OM_ID'

    '     , OM_CUS_ID'

    '     , OM_INVNUM'

    '     , OM_COMPANY'

    '     , OM_STATUS'

    '     , OM_INVDATE'

    '     , om_realdate'

    '     , (select Total'

    '        from spOrderCalculate(ORDERSM.om_id)) as Total'

    '/*'

    '     , (select TOTSALES'

    '        from spOrderCalculate(ORDERSM.om_id)) as TOTSALES'

    '*/'

    '     , (select SALESTAX'

    '        from spOrderCalculate(ORDERSM.om_id)) as SALESTAX'

    '     , (select TOTCUSTOMERFREIGHT'

    '        from spOrderCalculate(ORDERSM.om_id)) as FREIGHT'

    '/*'

    '     , (select TOTMisc'

    '        from spOrderCalculate(ORDERSM.om_id)) as MiscChg'

   ;  '*/'

    '     , OM_SALESPERSON'

    '     , (SELECT first 1 NC_DATETIME from NetComQuote'

    '          left join netcomin on nc_id = ncq_nc_id'

    '          where (ncq_om_id = ordersM.om_ID)'

    '          and (NC_Status <> '#39'D'#39')'

    '          order by nc_DateTime desc) as nc_DateTime'

    '     , om_reviewed'

    '     , OM_REVIEWED_SALESPERSON'

    '     , OM_SALESMANAGER'

    '     , OM_CUSTSEARCH'

    '     , OM_SESSION_ID'

    '     , OM_SESSION_USERNAME'

    '     , OM_PONUM'

    '     , OM_REFNUM'

    '     , OM_SEARCHNOTES'

    '     , OM_NC_REPLIES_DATETIME'

   

      '     , (select CUS_RATING from customer where om_cus_id = cus_id' +

       ') as cus_rating'

   

      '     , (select first 1 RAM_ID from ramaster where om_id = ram_om' +

      '_id order by ram_id) as ram_id'

   

      '/*     , (select first 1 REPLIES_CODE from SPORDER_CHECK_NC_REPL' +

      'IES(ORDERSM.om_id)) as replies_code */'

    'FROM ORDERSM')

  EditSQL.Strings = (

    'UPDATE ORDERSM SET'

    '   OM_REVIEWED = :OM_REVIEWED'

    'WHERE'

    '   OM_ID = :OLD_OM_ID')

  KeyLinks.Strings = (

    'OrdersM.OM_ID')

  MasterSearchFlags = [msfOpenMasterOnOpen, msfSearchMasterOnSearch, msfSearchAppliesToMasterOnly]

  OrderingItemNo = 1

  OrderingItems.Strings = (

    'Quote=OM_ID desc; OM_ID'

    'InvNum=OM_InvNum desc, OM_ID desc; OM_InvNum, OM_ID'

   

      'CustNum=OM_Cus_ID desc, OM_Company desc, OM_ID desc; OM_Cus_ID, ' +

      'OM_Company, OM_ID'

   

 & nbsp;    'Company= OM_Company desc, OM_Cus_ID desc, OM_ID desc; OM_Company' +

      ', OM_Cus_ID, OM_ID'

    'SalesPerson=OM_ID desc; OM_ID'

    'InvDate=OM_INVDATE, om_id; OM_INVDATE desc, om_id desc'

   

      'SalesManager=OM_SALESMANAGER desc, om_id desc; OM_SALESMANAGER, ' +

      'om_id'

    'RefNum=OM_Refnum, om_id desc; om_refnum desc, om_id desc'

   

      'SalesPerReview=OM_REVIEWED_SALESPERSON, om_id desc; OM_REVIEWED_' +

      'SALESPERSON desc, om_id desc ')

  OrderingLinks.Strings = (

    'OM_ID=ITEM=1;Pos=6'

    'OM_InvNum=ITEM=2;Pos=5'

    'OM_Cus_ID=ITEM=3;Pos=4'

    'OM_Company=ITEM=4;Pos=1'

    'OM_SalesPerson=ITEM=5;Pos=1'

    'OM_INVDATE=ITEM=6;Pos=8'

    'OM_SALESMANAGER=ITEM=7;Pos=1'

    'OM_REFNUM=ITEM=8;pos=1'

    'OM_REVIEWED_SALESPERSON=ITEM=9;pos=1')

  RefreshAction = raKeepDataPos

  SearchingLinks.Strings = (

    'OM_ID=Quote'

    'OM_InvNum=InvNum'

    'OM_Cus_ID=Cus_ID'

    'OM_Company=Company'

    'OM_SalesPerson=SalesPerson'

    'OM_INVDATE=InvDate'

    'OM_SALESMANAGER=SalesManager')

  BufferSynchroFlags = [bsAfterEdit, bsAfterInsert]

  Left = 344

  Top = 232

  ParamValues = (

    'OLNK_OM_ID=00000080')

end