On Jul 12, 2013 4:53 AM, "Adam Nicholls" <inkysplat@xxxxxxxxx> wrote: > > Hi Guys/Gals, > > I'm doing some integration work with a COM API and according to their > documentation to save data in the API, you have to assign to the > method. > > This is their example in Visual Basic: > > ------------------------------------------------------------------------------------- > Set oBank = New CBank > oBank.Init Application.SessionContext > With oBank > .Fields(BANK_fld_ACCOUNT_NAME) = "Test account" > .Fields(BANK_fld_ACCOUNT_NO) = "12345" > .Fields(BANK_fld_BANK) = "Bank of the Nation" > .Fields(BANK_fld_BRANCH_NAME) = "State Street Branch" > End With > oBank.Save > ------------------------------------------------------------------------------------- > > Obviously in PHP is isn't possible to assign to a method in this way > (thats what parameters are for!) So I'm at a bit of a loose end. I'm > wondering if anyone else has come across this? Or am I missing > something obvious in PHP's implementation of the COM that allows me to > work around this? > > My PHP Code is looks like this: > ------------------------------------------------------------------------------------- > $API = new COM('API7.API'); > $API->Init($SerialNo, $Login, '', 1, '', 1); > $API->SignOutOnTerminate = True; > > $Record = new COM("Data.Record"); > $Record->Init($API->SessionContext); > > $Record->Fields('BANK_fld_ACCOUNT_NAME') = 'Test Account';//doesn't work > ------------------------------------------------------------------------------------- > > I've also tried (below) but the API says wrong number of parameters > $Record->Fields('BANK_fld_ACCOUNT_NAME', 'Test Account'); > > I've also tried something crazy like this (below) but that overwrites > the $Record object. > $_R = &$Record->Fields('BANK_fld_ACCOUNT_NAME'); > $_R = 'Test Account'; > > > Any ideas? Is it possible? > > > Many Thanks > Adam Nicholls > That example isn't assigning values to method return value. Fields is a collection of ADO Field objects. The default property of a Field object is its Value property, so the shorthand is simply assigning the values of the variables to the value of each field in a record within a Recordset. Andrew