php-general Digest 13 Jul 2013 16:11:33 -0000 Issue 8294

Topics (messages 321610 through 321610):

Re: COM - Assigning to method.
        321610 by: Richard Quadling

Administrivia:

To subscribe to the digest, e-mail:
        php-general-digest-subscr...@lists.php.net

To unsubscribe from the digest, e-mail:
        php-general-digest-unsubscr...@lists.php.net

To post to the list, e-mail:
        php-gene...@lists.php.net


----------------------------------------------------------------------
--- Begin Message ---
On 13 July 2013 01:24, Andrew Ballard <aball...@gmail.com> wrote:

> On Jul 12, 2013 4:53 AM, "Adam Nicholls" <inkysp...@gmail.com> 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
>

So ..

$oBank->BANK_fld_ACCOUNT_NAME = "Test account";

sort of thing.

-- 
Richard Quadling
Twitter : @RQuadling

--- End Message ---

Reply via email to