Subject Re: IB_WISQL Datapump
Author paulhope@allcomm.co.uk
Jason

> > I have just been trying the datapump facility for the first time
and
> > have had mixed success.
> > With very simple src SQL like 'select * from table where
field=value'
> > and dst SQL 'select * from table' it seems to be missing out some
> > columns.
> >
> > If I look at ItemActions and click prepare then all the included
> > columns have ColumnName=DIRECT and the excluded have
ColumnName=BASE:

In this instance the ColumnName was a simple char(1) and happended to
be the column used in the where clause of the srcSQL. The data was
transfered but the corresponding destination column was null.

> >
> > What does BASE: mean? Why is it there? Is it what causes the
column
> > to be excluded? Is the SQL is the right form?

Helen replied that the dstSQL must be an INSERT statement. As it
almost worked with a select statement is this true? Obviously if
you're moving all the columns of a table select * is a lot more
convenient then typing out all the field and param names!


>
> Base simply means that it wasn't possible for the source or
destination
> buffer pointers to be swapped over to the other's buffer so that
there is no
> need to move the data from one to the other.
>

Are we talking buffer pointers to any type of data or pointers to
blob data? and presubably we are only talking about moving stuff
within the same DB?

> IOW. If they are all direct is all that is necessary to do is call
the API
> to fetch, then execute, fetch then execute and so on. No need to
fetch, move
> data to dest, then execute. This makes it as fast as is absolutely
possible.
>
> Base just means it has to move the data...

So (assuming a select statement in the dstSQL was OK)why do columns
with BASE: come out as null after the transfer?

Regards
Paul