On Wed, Jun 11, 2003 at 08:18:36AM -0700, Dean Arnold wrote:
> > 
> > Taking a step back for a moment... The switch from column-wise
> > arrays in execute_array() to row-wise arrays in ora_execute_array()
> > is interesting.
> > 
> > Perhaps there's scope for the DBI to add a new execute_* method to
> > do what ora_execute_array is doing here. Take a simple set of tuples
> > (as array of tuple arrays) plus a status array.
> > 
> > Then I could change the default execute_for_fetch method in the DBI
> > to call that one. Driver authors would then have more options in
> > what they override.
> > 
> > Comments anyone?
> > 
> 
> 
> I'd certainly prefer to see row-wise arrays; that fits Teradata's model better.
> 
> But I thought OCI worked with column-wise arrays ?

OCI works every-which-way-wise - if you you can understand the manual :)
I think callbacks are the easiest though.

> Is the ora_* API doing a transform ?

The ora_execute_array I proposed (which could be the model for a
new DBI method) would simply use OCIBindDynamic to register callbacks
and then call OCIStmtExecute passing the number of rows in @$tuple_data.

The callback code would be told it's on row N column C and would just
navigate to the corresponding SV in the array ($tuple_data->[N][C]).

> Also, if memory serves, ODBC permits either, depending on a config variable.

Okay, thanks.

Tim.

Reply via email to