koha-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Koha-devel] Using MARC::Record to insert MARC data into MySQL table


From: paul POULAIN
Subject: Re: [Koha-devel] Using MARC::Record to insert MARC data into MySQL tables
Date: Mon Mar 10 23:57:05 2003
User-agent: Mozilla/5.0 (X11; U; Linux i686; fr-FR; rv:1.1) Gecko/20020826

Larry Currie wrote:

I hoping that within a couple of days we will have the item data for our
collections loaded into the 945, 946, and 949 fields of our MARC
records, and then we would like to run a Perl script which will go
through each of our MARC records and extract and insert into the Koha
MySQL tables biblio, biblioitems, and items all of the data needed to
run version 1.9.0.  Has anyone developed such a script at this point or
give me an idea of what the commands would look like to accomplish this?

Larry Currie
C4/Biblio.pm is your friend in this matter :

=item (oldbibnum,$oldbibitemnum) = NEWnewbibilio($dbh,$MARCRecord,$oldbiblio,$oldbiblioitem); creates a new biblio from a MARC::Record. The 3rd and 4th parameter are hashes and may be ignored. If only 2 params are passed to the sub, the old-db hashes
are builded from the MARC::Record. If they are passed, they are used.

=item NEWnewitem($dbh, $record,$bibid);
adds an item in the db.

Some explanations :
* load your MARC data with a MARC::Record
* open a db handler
* call NEWnewbiblio($dbh,$MARCrecord) to add a biblio.

IF you plan to load biblio AND item in the same MARC Record :
* remember that all item fields MUST be in the same tag (995 proposed)
* split the MARC record in 2 parts : one with biblio and one with item
* call NEWnewbiblio and NEWnewitem

hope it will work fine.
If you write such a script, please submit it in cvs, it should be useful for 2.0 version (migrating from another ILS)

Comments from Biblio.pm
========================================================================
move from 1.2 to 1.4 version :
1.2 and previous version uses a specific API to manage biblios. This API uses old-DB style parameters.
In the 1.4 version, we want to do 2 differents things :
- keep populating the old-DB, that has a LOT less datas than MARC
- populate the MARC-DB
To populate the DBs we have 2 differents sources :
- the standard acquisition system (through book sellers), that does'nt use MARC data
- the MARC acquisition system, that uses MARC data.

Thus, we have 2 differents cases :
- with the standard acquisition system, we have non MARC data and want to populate old-DB and MARC-DB, knowing it's an incomplete MARC-record - with the MARC acquisition system, we have MARC datas, and want to loose nothing in MARC-DB. So, we can't store datas in old-DB, then copy in MARC-DB. we MUST have an API for true MARC data, that populate MARC-DB then old-DB

That's why we need 4 subs :
all I<subs beginning by MARC> manage only MARC tables. They manage MARC-DB with MARC::Record parameters all I<subs beginning by OLD> manage only OLD-DB tables. They manage old-DB with old-DB parameters all I<subs beginning by NEW> manage both OLD-DB and MARC tables. They use MARC::Record as parameters. it's the API that MUST be used in MARC acquisition system all I<subs beginning by seomething else> are the old-style API. They use old-DB as parameter, then call internally the OLD and MARC subs.

- NEW and old-style API should be used in koha to manage biblio
- MARCsubs are divided in 2 parts :
* some of them manage MARC parameters. They are heavily used in koha.
* some of them manage MARC biblio : they are mostly used by NEW and old-style subs.
- OLD are used internally only

all subs requires/use $dbh as 1st parameter.

--
Paul POULAIN
Consultant indépendant en logiciels libres
responsable francophone de koha (SIGB libre http://www.koha-fr.org)





reply via email to

[Prev in Thread] Current Thread [Next in Thread]