Subject RE: [IBO] Re: Import dbf data
Author Bram
Jason and others, BlobInserts sample application and changed it. I insert
for two fields: street+zipcode.
First I had about 250 records per second. Much butter than two. Then I took
out the indexes on both fields. Then it went up to about 750 per second.
NICE. The total import didn't take much time anymore.

Thanks for all the help.

Bram van der Voet / A&V Automatisering
bram@... <mailto:bram@...>
Glasbergenlaan 6
2235 BP VALKENBURG ZH
tel 071 407 6956
fax 071 407 3939


-----Oorspronkelijk bericht-----
Van: Jason Wharton [mailto:jwharton@...]
Verzonden: zaterdag 2 december 2000 19:51
Aan: IBObjects@egroups.com
Onderwerp: Re: [IBO] Re: Import dbf data


Thanks for confirming this.

Jason Wharton
CPS - Mesa AZ
http://www.ibobjects.com


----- Original Message -----
From: "Clément Doss" <cdoss@...>
To: <IBObjects@egroups.com>
Sent: Saturday, December 02, 2000 11:50 AM
Subject: [IBO] Re: Import dbf data


Hi Jason,

Thanks for clearing up things...
You are right, I made a simple test...
IB_SCRIPT is slower than DSQL (as in your example) that is
slower then External table...

Cheers,
Clément

--- In IBObjects@egroups.com, "Jason Wharton" <jwharton@i...> wrote:
> This would be slower than the INSERT statement in the TIB_DSQL
component
> using input parameters.
>
> I suppose I better be a little more explicit in my instructions...
>
> var
> Col1: TIB_Column;
> Col2: TIB_Column;
> ...
> begin
> MyDSQL.SQL.Text := 'INSERT INTO MYTBL ( COL1, COL2, ... ) VALUES
( :COL1,
> :COL2, ... )';
> MyDSQL.Prepare;
> Col1 := MyDSQL.ParamByName( 'COL1' );
> Col2 := MyDSQL.ParamByName( 'COL2' );
> ...
> MyDSQL.BeginBusy( false );
> try
> <start transaction>
> try
> <parse out a new record from input or quit if done>
> Col1.As<type> := <value for column1>;
> Col2.As<type> := <value for column2>;
> ...
> MyDSQL.ExecSQL
> <loop back up for next input record>
> <commit transaction>
> except
> <rollback transaction>
> raise;
> end;
> finally
> MyDSQL.EndBusy;
> end;
> end;
>
> If you would like a slightly fancier example that allows you to
cancel the
> operation look at the BlobInserts sample application. It does
almost exactly
> what is being done here.
>
> There isn't a faster method other than using external tables to
load data
> into InterBase.
>
> HTH,
> Jason Wharton
> CPS - Mesa AZ
> http://www.ibobjects.com
>
>
> ----- Original Message -----
> From: "Clément Doss" <cdoss@d...>
> To: <IBObjects@egroups.com>
> Sent: Saturday, December 02, 2000 10:56 AM
> Subject: [IBO] Re: Import dbf data
>
>
> You could also use the IB_SCRIPT component.
> I´ve used it a few times. I have imported 200.000 records from a
> table. 80.0000 from another..
>
> Just include a SQL like:
> INSERT INTO SomeTable(FIELD1,Field2,Field3...,FieldN) Value ("John
> Smith","01-JUN-1992",35.2,....,"Y")
>
> You will have 450.000 lines in your IB_SCRIPT (It´s huge... but it
> might work)
> Call the Execute and there you go!
> This is faster then call insert for each record...
> (You could build 1k records/lines at a time)
>
> Good Luck!
> Clément
>
>
> > I can do an export with the dbf components to an textfile so that
> will be no
> > problem.
> >
> > - Using the create table to an external file looks like using an
> xml file as
> > table....
> > - removing the index is a good idea
> > - So I don't need any IBO component...
> >
> > I have the idea I was doing this 10 year ago also for importing
> data to get
> > it into dbf/dbase. Not much changed over the years...
> >
> >
> > Bram van der Voet / A&V Automatisering
> > bram@a... <mailto:bram@a...>
> > Glasbergenlaan 6
> > 2235 BP VALKENBURG ZH
> > tel 071 407 6956
> > fax 071 407 3939
> >
> >
> > -----Oorspronkelijk bericht-----
> > Van: Clément Doss [mailto:cdoss@d...]
> > Verzonden: zaterdag 2 december 2000 14:07
> > Aan: IBObjects@egroups.com
> > Onderwerp: [IBO] Re: Import dbf data
> >
> >
> > Hi Bram,
> >
> > How fast can you create FixedLength ASCII files with your
> components?
> >
> > You could try to use
> > CREATE TABLE TB_ZIPCODE EXTERNAL FILE 'C:\TEMP\ZIPCODE.TXT'
> > (That means that you can SELECT * FROM TB_ZIPCODE and IB will read
> > the info from a TXT file...
> >
> > To use external files, I believe they must be on the same machine
> > as IB server. Then you can INSERT (with type casting) in a
permanent
> > table. (Remove your indexes before massing insertions.)
> >
> > This is the procedure I use to convert dBase or Paradox to IB.
> > (this will not work if you have MEMOs and alikes... :-(
> >
> > Good Luck!
> > Clément
> >
> >> > >
> > > Helen, I never used Interbase 5. Dbf is the dbaseIII file format
> > also used
> > > in Foxpro. I have IBO alike components for fast access to the
dbf
> > file. I
> > > was hoping to combine this with an IBO component to do a fast
> > transfer.
> > >
> > > Bram
> > > _______________________________________________________