SlideShare a Scribd company logo
VUGM
2001
Session
19
vs.
vs.
MARC RECORD STRUCTURE
OCLC MARC Record in Raw Form:
00734cam 22002411 45*000100130000000300060001300500170001900800410003601000170007704000230009404300
1200117050001600129082001300145092001900158049000900177100002500186245009800211260005700309300003900
366350000900405504003000414651004800444*ocm00442080 *OCoLC*19940620065418.0*701012s1968 pauab b
000 0 eng * ‡a 68021623 * ‡aDLC‡cDLC‡dOCL‡dIPL*‡an-us---*0 ‡aJK2556‡b.E2* ‡a325.3/73* ‡a325.373‡bEb61f*
‡aIPL1*1 ‡aEblen, Jack Ericson.*14‡aThe first and second United States empires;‡bgovernors and territorial government,
1784-1912.*‡a[Pittsburgh]‡bUniversity of Pittsburgh Press‡c[1968]* ‡aviii, 344 p.‡billus., map.‡c24 cm.* ‡a8.95*
‡aBibliography: p. 321-333.* 0‡aUnited States‡xTerritories and possessions.**
LEADER:
Logical record length: 00734
Record status/Type of record/Bibliographic level: cam
Two blanks/Indicator count/Subfield code count: bb22
Base address of data: 00241
Encoding level/Descriptive cat. form/Linked record code: 1bb
Length of length-of-field/Length of starting-character pos: 45
OCLC transaction type code: *
Undefined: 0
FIELDS:
Tag Length Start Text
001 0013 00000 ocm00442080 *
003 0006 00013 OCoLC*
005 0017 00019 19940620065418.0*
008 0041 00036 701012s1968 pauab b 000
0 eng *
010 0017 00077 #a 68021623 *
040 0023 00094 #aDLC#cDLC#dOCL#dIPL*
043 0012 00117 #an-us---*
050 0016 00129 0 #aJK2556#b.E2*
082 0013 00145 #a325.3/73*
…
vs.
THE FUNCTIONS
AND THEIR PARAMETERS
Version 99:
GetBibBLOB(BIB_ID)
GetMFHDBLOB(MFHD_ID)
GetAuthBLOB(AUTH_ID)
GetFieldRaw(MARCRec, DTag, Which)
GetField(MARCRec, DTag, Which)
GetFieldAll(MARCRec, DTag)
GetSubField(RawField, SFCode, Which)
Version 2000+:
BIBBLOB_VW.MARC_Record
MFHDBLOB_VW.MARC_Record
AUTHBLOB_VW.MARC_Record
vs.
THE BLOB FUNCTIONS
AND THEIR RESULTS
01503cam 2200337I 4500001000800000005001700008007001400025008004100039035002300080037002200103040002
3001251000041001482450142001892600059003312650078003903000024004685000037004925000039005295000027005
6850000780059551000160067353301360068965000530082565000300087870000300090874000160093874000650095483
0004601019852004101065856005901106118817820010213171755.0hd afv---bacp851016r19701660miu a 00010 eng d
‡a(OCoLC)ocm12682241 ‡aCL0037000010‡bUMI ‡aEAA‡cEAA‡dm/c‡dQPQ10‡aPhilanthropus, Irenaus
Philadelphus.10‡aEireenikon, or, A treatise of peace between the two visible divided parties ...‡h[microform] /‡cby Iren5us
Philadelphus Philanthropus ...0 ‡aLondon :‡bPrinted by T.J. for Nath. Brooks ...,‡c1660. ‡aUniversity Microfilms
International, 300 N. Zeeb Rd., Ann Arbor, MI 48106 ‡a[10], 3-102, [1] p. ‡aTitle transliterated from Greek. ‡aAttributed
to Robert Gell by Wing. ‡aErrata: p. [1] at end. ‡aReproduction of original in Union Theological Seminary Library, New
York.4 ‡aWing‡cG469. ‡aMicrofilm.‡bAnn Arbor, Mich. :‡cUniversity Microfilms,‡d1970.‡e1 microfilm reel ; 35
mm.‡f(Early English books, 1641-1700 ; 354:15) 0‡aReconciliation‡xReligious aspects‡xChristianity. 0‡aPeace‡xReligious
aspects.10‡aGell, Robert,‡d1595-1665.01‡aEireenikon.21‡aA treatise of peace between the two visible divided parties.
0‡aEarly English books, 1641-1700 ;‡v354:15. ‡bhsse,mic2‡h820.82‡iEn36‡iReel 354:154
‡uhttp://wwwlib.umi.com/eebo/image/65679‡zOnline version
GetBibBLOB(“1188178”) or BIBBLOB_VW.MARC_Record
vs.
THE BLOB FUNCTIONS
AND THEIR RESULTS
00224nx 2200109z 4500001000400000004000400004005001700008008003300025014001700058014001400075852002
50008983441519980612181839.09806122u u 1001uu 00000001 ‡aAAA0417PU0010
‡900000083310‡bstor‡h641.578‡iM189i
GetMFHDBLOB(“834”) or MFHDBLOB_VW.MARC_Record
00856cz 2200169n 4500001000500000005001700005008004100022010001700063035001400080040001800094110002
600112410002500138510004100163670004200204670032700246670011300573220019980612191359.0790703n
acannaab a ana ‡an 79055737 ‡aCAA8726PU ‡aDLC‡cDLC‡dDLC20‡aChina Inland Mission.20‡aChung-
kuo nei ti hui20‡wbnna‡aOverseas Missionary Fellowship ‡aKuhn, I.‡bAscent to the tribes, 1956. ‡aNUCMC data from
Wheaton College, Billy Graham Center Archives, for Overseas Missionary Fellowship. United States Home Council
Records, 1853-1957‡b(China Inland Mission; Protestant mission agency working in China until 1950; later took name
Overseas Missionary Fellowship and redirected work to other Far Eastern countries) ‡aLin, M.M. Chung-kuo nei ti hui chih
yen chiu, 1984:‡bt.p. (Chung-kuo nei ti hui) p. 6 (China Inland Mission)
GetAuthBLOB(“2200”) or AUTHBLOB_VW.MARC_Record
vs.
THE PARSING FUNCTIONS
AND THEIR RESULTS
GetFieldRaw(<record 1188178>,”650”,1)
650 0‡aReconciliation‡xReligious aspects‡xChristianity.
GetField(<record 1188178>,”650”,1)
Reconciliation Religious aspects Christianity.
Reconciliation Religious aspects Christianity. äå
Peace Religious aspects.
GetFieldAll(<record 1188178>,”650”)
GetSubField(<the raw field above>,”x”,2)
Christianity.
vs.
99.1 FUNCTIONS
vs.
2000.1 VIEWS
Version 99:
GetBibBLOB(BIB_ID)
GetMFHDBLOB(MFHD_ID)
GetAuthBLOB(AUTH_ID)
Version 2000+:
BIBBLOB_VW.MARC_Record
MFHDBLOB_VW.MARC_Record
AUTHBLOB_VW.MARC_Record
IN VERSION 2000.1, THE GET*BLOB FUNCTIONS HAVE BEEN
REPLACED WITH DATABASE VIEWS. A VIEW IS A QUERY THAT
IS STORED WITHIN THE ORACLE DATABASE.
THE PROCESSING ON THE SERVER IS
FASTER THAN THE PROCESSING ON THE
WORKSTATION, BUT MOST OF THE TIME
IS IN TRANSFERRING DATA, WHICH WON’T
CHANGE.
vs.
FUNCTIONS
GROCERY
LIST
GROCERIES EGGS
QUICHE
TO END UP WITH
QUICHE, YOU NEED
TO START WITH A
GROCERY LIST AND
TRANSFORM IT STEP
BY STEP
vs.
FUZZY MATH
QUICHE = COOK(EGGS,4)
EGGS = UNPACK(GROCERIES,”EGGS”)
GROCERIES = SHOP(GROCERY LIST)
( , 4)
( ,”EGGS”)
( )
QUICHE = COOK(UNPACK(SHOP(GROCERY LIST),”EGGS”),4)
=
=
=
SHORTHAND METHOD:
vs.
APPLY THIS TO THE BLOB
FUNCTIONS
CLASSIFICATION =
GetSubField(GetFieldRaw(GetMFHDBLOB(MFHD_ID),”852”,1),”h”,1)
COMPARE:
QUICHE = COOK(UNPACK(SHOP(GROCERY LIST),”EGGS”),4)
[MFHD Record] = GetMFHDBLOB (MFHD_ID)
[Raw 852 Field] = GetFieldRaw ([MFHD Record], “852”, 1)
CLASSIFICATION = GetSubField ([Raw 852 Field], “h”, 1)
SHORTHAND VERSION:
vs.
USES FOR THE FUNCTIONS
ADD FIELDS TO A REPORT
Examples: Add Subject Headings to a Bibliography
Add holdings to a serials list
CHECK FOR PRESENCE OF FIELDS
Examples: Find serials records that contain multiple ISSNs
Find MFHDs with 899 fields
SCREEN RECORDS BASED ON FIELD CONTENT
Examples: Select records based on cataloguer initials in a
local notes 9XX field
Find theses from a specific department by
examining the 502 field
vs.
ADDING BLOB FIELDS TO A
REPORT
SERIALS IN A GIVEN LOCATION WITH THEIR HOLDINGS
vs.
REPORT FROM THAT QUERY
GetField/GetFieldAll/GetFieldRaw
GetFieldAll(GetBibBLOB(“276246”),”650”)
Wildlife watching Australia Wallaby Creek (N.S.W.) Juvenile literature.
Zoology Australia Wallaby Creek (N.S.W.) Juvenile literature.
Zoology Australia Wallaby Creek (N.S.W.)
Wildlife watching.
Wildlife watching Australia Wallaby Creek (N.S.W.) Juvenile literature.
GetField(GetBibBLOB(“276246”),”650”,1)
650 0‡aWildlife watching‡zAustralia‡zWallaby Creek (N.S.W.)‡xJuvenile literature.
GetFieldRaw(GetBibBLOB(“276246”),”650”,1)
vs.
PROS AND CONS
GetFieldAll
GetField
GetFieldRaw
PROS
Get all matching
fields in one call.
Control over which
fields you get.
Can use GetSubField
to get exactly the
subfields you want.
Can distinguish subfields.
CONS
Get all subfields.
Subfields separated
by spaces.
Same as GetFieldAll
Get only one field.
Not printable as is.
vs.
CHECKING FOR FIELD
PRESENCE
MFHDS WITH MULTIPLE 866 FIELDS:
WE DON’T
CARE WHAT
THE SECOND
866 FIELD
CONTAINS, WE
JUST CARE
ABOUT
WHETHER IT IS
THERE
vs.
SCREENING ON
FIELD CONTENT
SMALL BOOKS: SIZE UNDER 21 CENTIMETRES
vs.
CAVEAT ACCESSOR!
THE BLOB FUNCTIONS RUN ON THE WORKSTATION, NOT
ON THE SERVER. BEFORE THEY CAN RUN, THE ENTIRE
MARC RECORD MUST BE TRANSFERRED TO THE
WORKSTATION ACROSS THE NETWORK.
BIB RECORDS
BYTES AVERAGE MARC RECORD
BYTES TRANSFERRED
1,200,000
X 907
1,088,400,000
REDUCE THE SIZE OF YOUR SAMPLE
AS MUCH AS POSSIBLE BEFORE YOU
USE THE BLOB FUNCTIONS
vs.
GENERIC MATCHING
THE GETSUBFIELD FUNCTION AND ALL OF THE
GETFIELD FUNCTIONS DO GENERIC MATCHING:
GetSubField(GetFieldRaw(GetBibBLOB(BIB_ID),”020”,1),””,1)
FIND THE FIRST SUBFIELD IN THE FIRST ISBN FIELD
GET THE MAIN ENTRY, NO MATTER WHAT ITS TYPE
GetField(GetBibBLOB(BIB_ID),”1”,1)
GET ALL OF THE SUBJECT FIELDS
GetFieldAll(GetBibBLOB(BIB_ID),”6”)
GET AN “a” SUBFIELD FROM THE FIRST LOCAL CALL NUMBER
GetSubField(GetFieldRaw(GetBibBLOB(BIB_ID),”09”,1),”a”,1)
vs.
EXTENDING THE FUNCTIONS
WOULDN’T IT BE NICE…
GetFieldAll(MFHDBLOB_VW.MARC_Record,”866”,”az”)
GetField(BIBBLOB_VW.MARC_Record, “650”,1,”axyz”,”--”)
SPECIFY THE DESIRED SUBFIELDS
SPECIFY THE DESIRED SUBFIELDS AND SEPARATOR
Reconciliation--Religious aspects--Christianity.
instead of
Reconciliation Religious aspects Christianity.
1966-1973, 1975/1976-1992
instead of
0 1966-1973, 1975/1976-1992
0 ca:6-29-91
vs.
OKAY, HERE’S GETFIELD
Function GetField(marcrec As String, DTag As String, which As Long, Optional SubFlds As String = "", Optional Sep As String = " ") As String
Dim sRawField As String
Dim iStart As Integer
Dim iEnd As Integer
Dim iLength As Integer
GetField = ""
sRawField = GetFieldRaw(marcrec, DTag, which)
iLength = Len(sRawField)
iStart = InStr(1, sRawField, Chr(31)) + 1
While iStart < iLength
iEnd = InStr(iStart, sRawField, Chr(31))
If iEnd = 0 Then
iEnd = iLength + 1
End If
If ((SubFlds = "") Or (InStr(SubFlds, Mid(sRawField, iStart, 1)) <> 0)) Then
If (GetField <> "") Then
GetField = GetField & Sep & Mid(sRawField, iStart + 1, (iEnd - iStart - 1))
Else
GetField = Mid(sRawField, iStart + 1, (iEnd - iStart - 1))
End If
End If
iStart = iEnd + 1
Wend
End Function
DON’T EVEN TRY TO READ
THIS. JUST GRAB THE
POWERPOINT FILE FROM
SUPPORTWEB AND COPY
AND PASTE FROM IT TO
YOUR MODULE.
vs.
AND HERE’S GETFIELDALL
Function GetFieldAll(marcrec As String, DTag As String, Optional SubFlds As String = "", Optional Sep As String = " ") As String
Dim sField As String
Dim iWhich As Long
iWhich = 1
sField = Trim(GetField(marcrec, DTag, iWhich, SubFlds, Sep))
While Len(sField) > 0
GetFieldAll = GetFieldAll & sField & vbCrLf
iWhich = iWhich + 1
sField = Trim(GetField(marcrec, DTag, iWhich, SubFlds, Sep))
Wend
Dim iLength As Integer
iLength = Len(GetFieldAll)
If iLength > 2 Then
GetFieldAll = Left(GetFieldAll, (iLength - 2))
End If
End Function
JUST COPY AND PASTE!
vs.
REALLY USING THE FUNCTIONS
USING THE
FUNCTIONS TO
THEIR FULLEST
POTENTIAL
REQUIRES
SOME
PROGRAMMING
Function GetRecsToPrt()
Do
RecNum = bibnums![BIB_ID]
marcrec = getmarcrec(RecNum) ' Get the MARC record and the call number
Set callnoqdf = imcdb.CreateQueryDef("", "select display_call_no from mfhd_master…)
Set callnorst = callnoqdf.OpenRecordset(dbOpenForwardOnly)
Title = ""
currfld = GetFld(marcrec, "245", 1)
If (currfld <> "") Then
strval = GetSubFld(currfld, "a", 1)
If (Mid(currfld, 5, 1) <> "0") Then
skipbytes = Val(Mid(currfld, 5, 1))
sort_title = UCase(Mid(strval, skipbytes + 2)) ‘Strip off non-filing chars
Else
sort_title = UCase(Mid(strval, 2))
End If
Title = Mid(strval, 2) ‘ Add the 245 as is
End If
strval = ""
Do
strval = strval & " " & callnorst![DISPLAY_CALL_NO] ‘Concatenate call numbers
callnorst.MoveNext
Loop While Not callnorst.EOF
call_number = strval
Loop While Not bibnums.EOF
End Function
THIS CODE IS
MISSING VITAL
PIECES!
vs.
THE HARD FACTS
• GETTING DATA FROM THE BLOBS IS
IMPORTANT
• GETTING DATA FROM THE BLOBS IS
DIFFICULT
• THE BLOB FUNCTIONS MAKE
GETTING DATA FROM THE BLOBS
EASIER
• NOTHING WILL MAKE GETTING
DATA FROM THE BLOBS REALLY
EASY

More Related Content

More from Alan Manifold

Making materials findable at State Library Victoria, May 2015
Making materials findable at State Library Victoria, May 2015Making materials findable at State Library Victoria, May 2015
Making materials findable at State Library Victoria, May 2015
Alan Manifold
 
Deep Links Into Primo
Deep Links Into PrimoDeep Links Into Primo
Deep Links Into Primo
Alan Manifold
 
Making Materials Findable at the State Library of Victoria
Making Materials Findable at the State Library of VictoriaMaking Materials Findable at the State Library of Victoria
Making Materials Findable at the State Library of Victoria
Alan Manifold
 
Some Meditations for Baha'i Elections
Some Meditations for Baha'i ElectionsSome Meditations for Baha'i Elections
Some Meditations for Baha'i Elections
Alan Manifold
 
Photo retrospective of the life of Rosemary Manifold
Photo retrospective of the life of Rosemary ManifoldPhoto retrospective of the life of Rosemary Manifold
Photo retrospective of the life of Rosemary Manifold
Alan Manifold
 
What Were Once Habits Are Now Vices
What Were Once Habits Are Now VicesWhat Were Once Habits Are Now Vices
What Were Once Habits Are Now Vices
Alan Manifold
 
Why I Hope ENCompass Continues to Fail
Why I Hope ENCompass Continues to FailWhy I Hope ENCompass Continues to Fail
Why I Hope ENCompass Continues to Fail
Alan Manifold
 
Queer Buy for the Straight Li-brary (Endeavor's ENCompass)
Queer Buy for the Straight Li-brary (Endeavor's ENCompass)Queer Buy for the Straight Li-brary (Endeavor's ENCompass)
Queer Buy for the Straight Li-brary (Endeavor's ENCompass)
Alan Manifold
 
DigiTool API Project
DigiTool API ProjectDigiTool API Project
DigiTool API Project
Alan Manifold
 
Evolution of Libraries and Metadata
Evolution of Libraries and MetadataEvolution of Libraries and Metadata
Evolution of Libraries and Metadata
Alan Manifold
 
Reports and Forms: the finishing touches for Access Reporting (on the Voyager...
Reports and Forms: the finishing touches for Access Reporting (on the Voyager...Reports and Forms: the finishing touches for Access Reporting (on the Voyager...
Reports and Forms: the finishing touches for Access Reporting (on the Voyager...
Alan Manifold
 
Buried Treasure: Finding Reporting Gold in the Voyager Tables (using Microsof...
Buried Treasure: Finding Reporting Gold in the Voyager Tables (using Microsof...Buried Treasure: Finding Reporting Gold in the Voyager Tables (using Microsof...
Buried Treasure: Finding Reporting Gold in the Voyager Tables (using Microsof...
Alan Manifold
 
Art - advanced reporting techniques
Art - advanced reporting techniquesArt - advanced reporting techniques
Art - advanced reporting techniques
Alan Manifold
 
Access Reports for Tenderfeet (or is that tenderfoots?)
Access Reports for Tenderfeet (or is that tenderfoots?) Access Reports for Tenderfeet (or is that tenderfoots?)
Access Reports for Tenderfeet (or is that tenderfoots?)
Alan Manifold
 
A Matter Of Form: Access Forms to make reporting a snap (or a click)
A Matter Of Form: Access Forms to make reporting a snap (or a click)A Matter Of Form: Access Forms to make reporting a snap (or a click)
A Matter Of Form: Access Forms to make reporting a snap (or a click)
Alan Manifold
 
One More Thing: Tweaking and Embellishing Access Queries
One More Thing: Tweaking and Embellishing Access QueriesOne More Thing: Tweaking and Embellishing Access Queries
One More Thing: Tweaking and Embellishing Access Queries
Alan Manifold
 
Breaking the Google Addiction
Breaking the Google AddictionBreaking the Google Addiction
Breaking the Google Addiction
Alan Manifold
 
An Abecedary of Access Tips with the Voyager Integrated Library System
An Abecedary of Access Tips with the Voyager Integrated Library SystemAn Abecedary of Access Tips with the Voyager Integrated Library System
An Abecedary of Access Tips with the Voyager Integrated Library System
Alan Manifold
 
Baha'i Views on Faith and Marriage
Baha'i Views on Faith and MarriageBaha'i Views on Faith and Marriage
Baha'i Views on Faith and Marriage
Alan Manifold
 
The Challenge of Bahá’u’lláh’s Revelation
The Challenge of Bahá’u’lláh’s RevelationThe Challenge of Bahá’u’lláh’s Revelation
The Challenge of Bahá’u’lláh’s Revelation
Alan Manifold
 

More from Alan Manifold (20)

Making materials findable at State Library Victoria, May 2015
Making materials findable at State Library Victoria, May 2015Making materials findable at State Library Victoria, May 2015
Making materials findable at State Library Victoria, May 2015
 
Deep Links Into Primo
Deep Links Into PrimoDeep Links Into Primo
Deep Links Into Primo
 
Making Materials Findable at the State Library of Victoria
Making Materials Findable at the State Library of VictoriaMaking Materials Findable at the State Library of Victoria
Making Materials Findable at the State Library of Victoria
 
Some Meditations for Baha'i Elections
Some Meditations for Baha'i ElectionsSome Meditations for Baha'i Elections
Some Meditations for Baha'i Elections
 
Photo retrospective of the life of Rosemary Manifold
Photo retrospective of the life of Rosemary ManifoldPhoto retrospective of the life of Rosemary Manifold
Photo retrospective of the life of Rosemary Manifold
 
What Were Once Habits Are Now Vices
What Were Once Habits Are Now VicesWhat Were Once Habits Are Now Vices
What Were Once Habits Are Now Vices
 
Why I Hope ENCompass Continues to Fail
Why I Hope ENCompass Continues to FailWhy I Hope ENCompass Continues to Fail
Why I Hope ENCompass Continues to Fail
 
Queer Buy for the Straight Li-brary (Endeavor's ENCompass)
Queer Buy for the Straight Li-brary (Endeavor's ENCompass)Queer Buy for the Straight Li-brary (Endeavor's ENCompass)
Queer Buy for the Straight Li-brary (Endeavor's ENCompass)
 
DigiTool API Project
DigiTool API ProjectDigiTool API Project
DigiTool API Project
 
Evolution of Libraries and Metadata
Evolution of Libraries and MetadataEvolution of Libraries and Metadata
Evolution of Libraries and Metadata
 
Reports and Forms: the finishing touches for Access Reporting (on the Voyager...
Reports and Forms: the finishing touches for Access Reporting (on the Voyager...Reports and Forms: the finishing touches for Access Reporting (on the Voyager...
Reports and Forms: the finishing touches for Access Reporting (on the Voyager...
 
Buried Treasure: Finding Reporting Gold in the Voyager Tables (using Microsof...
Buried Treasure: Finding Reporting Gold in the Voyager Tables (using Microsof...Buried Treasure: Finding Reporting Gold in the Voyager Tables (using Microsof...
Buried Treasure: Finding Reporting Gold in the Voyager Tables (using Microsof...
 
Art - advanced reporting techniques
Art - advanced reporting techniquesArt - advanced reporting techniques
Art - advanced reporting techniques
 
Access Reports for Tenderfeet (or is that tenderfoots?)
Access Reports for Tenderfeet (or is that tenderfoots?) Access Reports for Tenderfeet (or is that tenderfoots?)
Access Reports for Tenderfeet (or is that tenderfoots?)
 
A Matter Of Form: Access Forms to make reporting a snap (or a click)
A Matter Of Form: Access Forms to make reporting a snap (or a click)A Matter Of Form: Access Forms to make reporting a snap (or a click)
A Matter Of Form: Access Forms to make reporting a snap (or a click)
 
One More Thing: Tweaking and Embellishing Access Queries
One More Thing: Tweaking and Embellishing Access QueriesOne More Thing: Tweaking and Embellishing Access Queries
One More Thing: Tweaking and Embellishing Access Queries
 
Breaking the Google Addiction
Breaking the Google AddictionBreaking the Google Addiction
Breaking the Google Addiction
 
An Abecedary of Access Tips with the Voyager Integrated Library System
An Abecedary of Access Tips with the Voyager Integrated Library SystemAn Abecedary of Access Tips with the Voyager Integrated Library System
An Abecedary of Access Tips with the Voyager Integrated Library System
 
Baha'i Views on Faith and Marriage
Baha'i Views on Faith and MarriageBaha'i Views on Faith and Marriage
Baha'i Views on Faith and Marriage
 
The Challenge of Bahá’u’lláh’s Revelation
The Challenge of Bahá’u’lláh’s RevelationThe Challenge of Bahá’u’lláh’s Revelation
The Challenge of Bahá’u’lláh’s Revelation
 

Recently uploaded

Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
DianaGray10
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
Elena Simperl
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
Paul Groth
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
Product School
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
Dorra BARTAGUIZ
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
Cheryl Hung
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
Frank van Harmelen
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
Product School
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
RTTS
 

Recently uploaded (20)

Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
From Daily Decisions to Bottom Line: Connecting Product Work to Revenue by VP...
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*Neuro-symbolic is not enough, we need neuro-*semantic*
Neuro-symbolic is not enough, we need neuro-*semantic*
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
JMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and GrafanaJMeter webinar - integration with InfluxDB and Grafana
JMeter webinar - integration with InfluxDB and Grafana
 

Alan vs the BLOB

  • 2. vs. MARC RECORD STRUCTURE OCLC MARC Record in Raw Form: 00734cam 22002411 45*000100130000000300060001300500170001900800410003601000170007704000230009404300 1200117050001600129082001300145092001900158049000900177100002500186245009800211260005700309300003900 366350000900405504003000414651004800444*ocm00442080 *OCoLC*19940620065418.0*701012s1968 pauab b 000 0 eng * ‡a 68021623 * ‡aDLC‡cDLC‡dOCL‡dIPL*‡an-us---*0 ‡aJK2556‡b.E2* ‡a325.3/73* ‡a325.373‡bEb61f* ‡aIPL1*1 ‡aEblen, Jack Ericson.*14‡aThe first and second United States empires;‡bgovernors and territorial government, 1784-1912.*‡a[Pittsburgh]‡bUniversity of Pittsburgh Press‡c[1968]* ‡aviii, 344 p.‡billus., map.‡c24 cm.* ‡a8.95* ‡aBibliography: p. 321-333.* 0‡aUnited States‡xTerritories and possessions.** LEADER: Logical record length: 00734 Record status/Type of record/Bibliographic level: cam Two blanks/Indicator count/Subfield code count: bb22 Base address of data: 00241 Encoding level/Descriptive cat. form/Linked record code: 1bb Length of length-of-field/Length of starting-character pos: 45 OCLC transaction type code: * Undefined: 0 FIELDS: Tag Length Start Text 001 0013 00000 ocm00442080 * 003 0006 00013 OCoLC* 005 0017 00019 19940620065418.0* 008 0041 00036 701012s1968 pauab b 000 0 eng * 010 0017 00077 #a 68021623 * 040 0023 00094 #aDLC#cDLC#dOCL#dIPL* 043 0012 00117 #an-us---* 050 0016 00129 0 #aJK2556#b.E2* 082 0013 00145 #a325.3/73* …
  • 3. vs. THE FUNCTIONS AND THEIR PARAMETERS Version 99: GetBibBLOB(BIB_ID) GetMFHDBLOB(MFHD_ID) GetAuthBLOB(AUTH_ID) GetFieldRaw(MARCRec, DTag, Which) GetField(MARCRec, DTag, Which) GetFieldAll(MARCRec, DTag) GetSubField(RawField, SFCode, Which) Version 2000+: BIBBLOB_VW.MARC_Record MFHDBLOB_VW.MARC_Record AUTHBLOB_VW.MARC_Record
  • 4. vs. THE BLOB FUNCTIONS AND THEIR RESULTS 01503cam 2200337I 4500001000800000005001700008007001400025008004100039035002300080037002200103040002 3001251000041001482450142001892600059003312650078003903000024004685000037004925000039005295000027005 6850000780059551000160067353301360068965000530082565000300087870000300090874000160093874000650095483 0004601019852004101065856005901106118817820010213171755.0hd afv---bacp851016r19701660miu a 00010 eng d ‡a(OCoLC)ocm12682241 ‡aCL0037000010‡bUMI ‡aEAA‡cEAA‡dm/c‡dQPQ10‡aPhilanthropus, Irenaus Philadelphus.10‡aEireenikon, or, A treatise of peace between the two visible divided parties ...‡h[microform] /‡cby Iren5us Philadelphus Philanthropus ...0 ‡aLondon :‡bPrinted by T.J. for Nath. Brooks ...,‡c1660. ‡aUniversity Microfilms International, 300 N. Zeeb Rd., Ann Arbor, MI 48106 ‡a[10], 3-102, [1] p. ‡aTitle transliterated from Greek. ‡aAttributed to Robert Gell by Wing. ‡aErrata: p. [1] at end. ‡aReproduction of original in Union Theological Seminary Library, New York.4 ‡aWing‡cG469. ‡aMicrofilm.‡bAnn Arbor, Mich. :‡cUniversity Microfilms,‡d1970.‡e1 microfilm reel ; 35 mm.‡f(Early English books, 1641-1700 ; 354:15) 0‡aReconciliation‡xReligious aspects‡xChristianity. 0‡aPeace‡xReligious aspects.10‡aGell, Robert,‡d1595-1665.01‡aEireenikon.21‡aA treatise of peace between the two visible divided parties. 0‡aEarly English books, 1641-1700 ;‡v354:15. ‡bhsse,mic2‡h820.82‡iEn36‡iReel 354:154 ‡uhttp://wwwlib.umi.com/eebo/image/65679‡zOnline version GetBibBLOB(“1188178”) or BIBBLOB_VW.MARC_Record
  • 5. vs. THE BLOB FUNCTIONS AND THEIR RESULTS 00224nx 2200109z 4500001000400000004000400004005001700008008003300025014001700058014001400075852002 50008983441519980612181839.09806122u u 1001uu 00000001 ‡aAAA0417PU0010 ‡900000083310‡bstor‡h641.578‡iM189i GetMFHDBLOB(“834”) or MFHDBLOB_VW.MARC_Record 00856cz 2200169n 4500001000500000005001700005008004100022010001700063035001400080040001800094110002 600112410002500138510004100163670004200204670032700246670011300573220019980612191359.0790703n acannaab a ana ‡an 79055737 ‡aCAA8726PU ‡aDLC‡cDLC‡dDLC20‡aChina Inland Mission.20‡aChung- kuo nei ti hui20‡wbnna‡aOverseas Missionary Fellowship ‡aKuhn, I.‡bAscent to the tribes, 1956. ‡aNUCMC data from Wheaton College, Billy Graham Center Archives, for Overseas Missionary Fellowship. United States Home Council Records, 1853-1957‡b(China Inland Mission; Protestant mission agency working in China until 1950; later took name Overseas Missionary Fellowship and redirected work to other Far Eastern countries) ‡aLin, M.M. Chung-kuo nei ti hui chih yen chiu, 1984:‡bt.p. (Chung-kuo nei ti hui) p. 6 (China Inland Mission) GetAuthBLOB(“2200”) or AUTHBLOB_VW.MARC_Record
  • 6. vs. THE PARSING FUNCTIONS AND THEIR RESULTS GetFieldRaw(<record 1188178>,”650”,1) 650 0‡aReconciliation‡xReligious aspects‡xChristianity. GetField(<record 1188178>,”650”,1) Reconciliation Religious aspects Christianity. Reconciliation Religious aspects Christianity. äå Peace Religious aspects. GetFieldAll(<record 1188178>,”650”) GetSubField(<the raw field above>,”x”,2) Christianity.
  • 7. vs. 99.1 FUNCTIONS vs. 2000.1 VIEWS Version 99: GetBibBLOB(BIB_ID) GetMFHDBLOB(MFHD_ID) GetAuthBLOB(AUTH_ID) Version 2000+: BIBBLOB_VW.MARC_Record MFHDBLOB_VW.MARC_Record AUTHBLOB_VW.MARC_Record IN VERSION 2000.1, THE GET*BLOB FUNCTIONS HAVE BEEN REPLACED WITH DATABASE VIEWS. A VIEW IS A QUERY THAT IS STORED WITHIN THE ORACLE DATABASE. THE PROCESSING ON THE SERVER IS FASTER THAN THE PROCESSING ON THE WORKSTATION, BUT MOST OF THE TIME IS IN TRANSFERRING DATA, WHICH WON’T CHANGE.
  • 8. vs. FUNCTIONS GROCERY LIST GROCERIES EGGS QUICHE TO END UP WITH QUICHE, YOU NEED TO START WITH A GROCERY LIST AND TRANSFORM IT STEP BY STEP
  • 9. vs. FUZZY MATH QUICHE = COOK(EGGS,4) EGGS = UNPACK(GROCERIES,”EGGS”) GROCERIES = SHOP(GROCERY LIST) ( , 4) ( ,”EGGS”) ( ) QUICHE = COOK(UNPACK(SHOP(GROCERY LIST),”EGGS”),4) = = = SHORTHAND METHOD:
  • 10. vs. APPLY THIS TO THE BLOB FUNCTIONS CLASSIFICATION = GetSubField(GetFieldRaw(GetMFHDBLOB(MFHD_ID),”852”,1),”h”,1) COMPARE: QUICHE = COOK(UNPACK(SHOP(GROCERY LIST),”EGGS”),4) [MFHD Record] = GetMFHDBLOB (MFHD_ID) [Raw 852 Field] = GetFieldRaw ([MFHD Record], “852”, 1) CLASSIFICATION = GetSubField ([Raw 852 Field], “h”, 1) SHORTHAND VERSION:
  • 11. vs. USES FOR THE FUNCTIONS ADD FIELDS TO A REPORT Examples: Add Subject Headings to a Bibliography Add holdings to a serials list CHECK FOR PRESENCE OF FIELDS Examples: Find serials records that contain multiple ISSNs Find MFHDs with 899 fields SCREEN RECORDS BASED ON FIELD CONTENT Examples: Select records based on cataloguer initials in a local notes 9XX field Find theses from a specific department by examining the 502 field
  • 12. vs. ADDING BLOB FIELDS TO A REPORT SERIALS IN A GIVEN LOCATION WITH THEIR HOLDINGS
  • 14. GetField/GetFieldAll/GetFieldRaw GetFieldAll(GetBibBLOB(“276246”),”650”) Wildlife watching Australia Wallaby Creek (N.S.W.) Juvenile literature. Zoology Australia Wallaby Creek (N.S.W.) Juvenile literature. Zoology Australia Wallaby Creek (N.S.W.) Wildlife watching. Wildlife watching Australia Wallaby Creek (N.S.W.) Juvenile literature. GetField(GetBibBLOB(“276246”),”650”,1) 650 0‡aWildlife watching‡zAustralia‡zWallaby Creek (N.S.W.)‡xJuvenile literature. GetFieldRaw(GetBibBLOB(“276246”),”650”,1)
  • 15. vs. PROS AND CONS GetFieldAll GetField GetFieldRaw PROS Get all matching fields in one call. Control over which fields you get. Can use GetSubField to get exactly the subfields you want. Can distinguish subfields. CONS Get all subfields. Subfields separated by spaces. Same as GetFieldAll Get only one field. Not printable as is.
  • 16. vs. CHECKING FOR FIELD PRESENCE MFHDS WITH MULTIPLE 866 FIELDS: WE DON’T CARE WHAT THE SECOND 866 FIELD CONTAINS, WE JUST CARE ABOUT WHETHER IT IS THERE
  • 17. vs. SCREENING ON FIELD CONTENT SMALL BOOKS: SIZE UNDER 21 CENTIMETRES
  • 18. vs. CAVEAT ACCESSOR! THE BLOB FUNCTIONS RUN ON THE WORKSTATION, NOT ON THE SERVER. BEFORE THEY CAN RUN, THE ENTIRE MARC RECORD MUST BE TRANSFERRED TO THE WORKSTATION ACROSS THE NETWORK. BIB RECORDS BYTES AVERAGE MARC RECORD BYTES TRANSFERRED 1,200,000 X 907 1,088,400,000 REDUCE THE SIZE OF YOUR SAMPLE AS MUCH AS POSSIBLE BEFORE YOU USE THE BLOB FUNCTIONS
  • 19. vs. GENERIC MATCHING THE GETSUBFIELD FUNCTION AND ALL OF THE GETFIELD FUNCTIONS DO GENERIC MATCHING: GetSubField(GetFieldRaw(GetBibBLOB(BIB_ID),”020”,1),””,1) FIND THE FIRST SUBFIELD IN THE FIRST ISBN FIELD GET THE MAIN ENTRY, NO MATTER WHAT ITS TYPE GetField(GetBibBLOB(BIB_ID),”1”,1) GET ALL OF THE SUBJECT FIELDS GetFieldAll(GetBibBLOB(BIB_ID),”6”) GET AN “a” SUBFIELD FROM THE FIRST LOCAL CALL NUMBER GetSubField(GetFieldRaw(GetBibBLOB(BIB_ID),”09”,1),”a”,1)
  • 20. vs. EXTENDING THE FUNCTIONS WOULDN’T IT BE NICE… GetFieldAll(MFHDBLOB_VW.MARC_Record,”866”,”az”) GetField(BIBBLOB_VW.MARC_Record, “650”,1,”axyz”,”--”) SPECIFY THE DESIRED SUBFIELDS SPECIFY THE DESIRED SUBFIELDS AND SEPARATOR Reconciliation--Religious aspects--Christianity. instead of Reconciliation Religious aspects Christianity. 1966-1973, 1975/1976-1992 instead of 0 1966-1973, 1975/1976-1992 0 ca:6-29-91
  • 21. vs. OKAY, HERE’S GETFIELD Function GetField(marcrec As String, DTag As String, which As Long, Optional SubFlds As String = "", Optional Sep As String = " ") As String Dim sRawField As String Dim iStart As Integer Dim iEnd As Integer Dim iLength As Integer GetField = "" sRawField = GetFieldRaw(marcrec, DTag, which) iLength = Len(sRawField) iStart = InStr(1, sRawField, Chr(31)) + 1 While iStart < iLength iEnd = InStr(iStart, sRawField, Chr(31)) If iEnd = 0 Then iEnd = iLength + 1 End If If ((SubFlds = "") Or (InStr(SubFlds, Mid(sRawField, iStart, 1)) <> 0)) Then If (GetField <> "") Then GetField = GetField & Sep & Mid(sRawField, iStart + 1, (iEnd - iStart - 1)) Else GetField = Mid(sRawField, iStart + 1, (iEnd - iStart - 1)) End If End If iStart = iEnd + 1 Wend End Function DON’T EVEN TRY TO READ THIS. JUST GRAB THE POWERPOINT FILE FROM SUPPORTWEB AND COPY AND PASTE FROM IT TO YOUR MODULE.
  • 22. vs. AND HERE’S GETFIELDALL Function GetFieldAll(marcrec As String, DTag As String, Optional SubFlds As String = "", Optional Sep As String = " ") As String Dim sField As String Dim iWhich As Long iWhich = 1 sField = Trim(GetField(marcrec, DTag, iWhich, SubFlds, Sep)) While Len(sField) > 0 GetFieldAll = GetFieldAll & sField & vbCrLf iWhich = iWhich + 1 sField = Trim(GetField(marcrec, DTag, iWhich, SubFlds, Sep)) Wend Dim iLength As Integer iLength = Len(GetFieldAll) If iLength > 2 Then GetFieldAll = Left(GetFieldAll, (iLength - 2)) End If End Function JUST COPY AND PASTE!
  • 23. vs. REALLY USING THE FUNCTIONS USING THE FUNCTIONS TO THEIR FULLEST POTENTIAL REQUIRES SOME PROGRAMMING Function GetRecsToPrt() Do RecNum = bibnums![BIB_ID] marcrec = getmarcrec(RecNum) ' Get the MARC record and the call number Set callnoqdf = imcdb.CreateQueryDef("", "select display_call_no from mfhd_master…) Set callnorst = callnoqdf.OpenRecordset(dbOpenForwardOnly) Title = "" currfld = GetFld(marcrec, "245", 1) If (currfld <> "") Then strval = GetSubFld(currfld, "a", 1) If (Mid(currfld, 5, 1) <> "0") Then skipbytes = Val(Mid(currfld, 5, 1)) sort_title = UCase(Mid(strval, skipbytes + 2)) ‘Strip off non-filing chars Else sort_title = UCase(Mid(strval, 2)) End If Title = Mid(strval, 2) ‘ Add the 245 as is End If strval = "" Do strval = strval & " " & callnorst![DISPLAY_CALL_NO] ‘Concatenate call numbers callnorst.MoveNext Loop While Not callnorst.EOF call_number = strval Loop While Not bibnums.EOF End Function THIS CODE IS MISSING VITAL PIECES!
  • 24. vs. THE HARD FACTS • GETTING DATA FROM THE BLOBS IS IMPORTANT • GETTING DATA FROM THE BLOBS IS DIFFICULT • THE BLOB FUNCTIONS MAKE GETTING DATA FROM THE BLOBS EASIER • NOTHING WILL MAKE GETTING DATA FROM THE BLOBS REALLY EASY