This content has been marked as final. Show 2 replies
I'm not sure I understand. What "value" would you like to have printed for LOAN_NO? When you assigned null to the C variable nullVal, that gave nullVal the value of 0.0. This is normal C behavior and has nothing to do with Tuxedo. Try the following:
You would have gotten the exact same output.
TypedFML32 myFml32 = new TypedFML32(new DynamicFldTbl("D:/fldtbl.txt", true)); int fldIdLoanNo = myFml32.Fldid("LOAN_NO"); System.out.println("LOAN_NO Field Type : " + myFml32.Fldtype(fldIdLoanNo)); System.out.println("TypedFML32.FLD_DOUBLE : " + TypedFML32.FLD_DOUBLE); System.out.println("Set LOAN_NO as null"); Double nullVal = null; myFml32.Fchg(fldIdLoanNo, 0, nullVal ); System.out.println("Get LOAN_NO from Buffer : " + nullVal);
What are you trying to accomplish? Are you trying to determine if the value was present or not? If so, you might try Fdel32 to delete the field from the FML32 buffer and when you receive the buffer check to see if the field is present or not. Since you are passing things by value and not pointer, null doesn't mean not present, it means the default value for the data type.
Oracle Tuxedo Chief Architect
Thanks for the response Todd. I thought after I set null, expected null when I read. But now I understand it is because of the behavior of C for number variables. It looks like PowerBuilder Interspace interface works differently than WebLogic Tuxedo Connector. Thanks for the clarification.