Access source Codes for GMS Setup

From ICISWiki

Jump to: navigation, search

Contents

Check Local Database integrity

Check GNPGS for derivatives

SELECT GERMPLSM.GID, GERMPLSM.METHN, METHODS1.MTYPE AS Expr1, GERMPLSM.GNPGS, GERMPLSM.GRPLCE
FROM GERMPLSM, METHODS1
WHERE (((GERMPLSM.GNPGS)<>-1) AND (([METHODS1].[MTYPE])="DER"));

Check GNPGS for generatives

SELECT GERMPLSM.GID, GERMPLSM.METHN, METHODS1.MTYPE AS Expr1, GERMPLSM.GNPGS, GERMPLSM.GRPLCE
FROM GERMPLSM, METHODS1
WHERE (((GERMPLSM.GNPGS)<0) AND (([METHODS1].[MTYPE])="GEN"));

Check GPID1 <> GID for any record

SELECT GERMPLSM.GID
FROM GERMPLSM
WHERE (((GERMPLSM.GID)=[GERMPLSM].[GPID1]));

Check GPID2 <> GID for any record

SELECT GERMPLSM.GID
FROM GERMPLSM
WHERE (((GERMPLSM.GID)=[GERMPLSM].[GPID2]));

Check that all derivatives with known source (GPID2 <> 0) have known group (GPID1 <>0)

SELECT GERMPLSM.GID, GERMPLSM.GNPGS, GERMPLSM.GPID1, GERMPLSM.GPID2
FROM GERMPLSM
WHERE (((GERMPLSM.GNPGS)=-1) AND ((GERMPLSM.GPID1)=0) AND ((GERMPLSM.GPID2)<>0));
SELECT GERMPLSM.GID, GERMPLSM.GPID1, GERMPLSM.GPID2
FROM GERMPLSM
WHERE (((GERMPLSM.GNPGS)=-1) AND ((GERMPLSM.GRPLCE)=0));
SELECT CHKL01F1.GID, GERMPLSM.GID, GERMPLSM.GPID1, GERMPLSM.GPID2
FROM CHKL01F1 
INNER JOIN GERMPLSM ON CHKL01F1.GPID2 = GERMPLSM.GID
WHERE (((CHKL01F1.GID)=[GERMPLSM].[GID]));
SELECT CHKL01F1.GID, GERMPLSM.GID, GERMPLSM.GPID1, GERMPLSM.GPID2
FROM CHKL01F1 
INNER JOIN GERMPLSM ON CHKL01F1.GPID2 = GERMPLSM.GID;
SELECT CHKL01F3.CHKL01F1.GID, GERMPLSM.GID, GERMPLSM.GPID1, GERMPLSM.GPID2
FROM CHKL01F3 
INNER JOIN GERMPLSM ON CHKL01F3.GPID2 = GERMPLSM.GID
WHERE (((CHKL01F3.CHKL01F1.GID)=[GERMPLSM].[GID]));

Check no replaced central GID should be referenced in the local GMS

SELECT GERMPLSM.GID, GERMPLSM1.GID, GERMPLSM1.GRPLCE
FROM GERMPLSM 
INNER JOIN GERMPLSM1 ON GERMPLSM.GPID1 = GERMPLSM1.GID
WHERE (((GERMPLSM1.GRPLCE)<>0));

Check no replaced central GID should be referenced in the local GMS

SELECT GERMPLSM.GID, GERMPLSM1.GID, GERMPLSM1.GRPLCE
FROM GERMPLSM 
INNER JOIN GERMPLSM1 ON GERMPLSM.GPID2 = GERMPLSM1.GID
WHERE (((GERMPLSM1.GRPLCE)<>0));

Check that no replacements in the CHANGES table have already been replaced or deleted in the central database

SELECT CHANGES.CTABLE, CHANGES.CFIELD, GERMPLSM1.GRPLCE, CHANGES.CTO, CHANGES.CSTATUS
FROM CHANGES 
INNER JOIN GERMPLSM1 ON CHANGES.CRECORD = GERMPLSM1.GID
WHERE (((CHANGES.CTABLE)="GERMPLSM") AND ((CHANGES.CFIELD)="GID") 
AND ((GERMPLSM1.GRPLCE)<>0) AND ((CHANGES.CSTATUS)=0));
SELECT CHANGES.CTABLE, CHANGES.CFIELD, CHANGES.CTO, CHANGES.CSTATUS
FROM CHANGES 
INNER JOIN GERMPLSM ON CHANGES.CRECORD = GERMPLSM.GID
WHERE (((CHANGES.CTABLE)="GERMPLASM") AND ((CHANGES.CFIELD)="GID") 
AND ((CHANGES.CTO)<>[GERMPLSM].[GRPLCE]) AND ((CHANGES.CSTATUS)=0));
SELECT CHANGES.CTABLE, CHANGES.CFIELD, CHANGES.CTO, CHANGES.CSTATUS
FROM CHANGES 
INNER JOIN GERMPLSM ON CHANGES.CRECORD = GERMPLSM.GID
WHERE (((CHANGES.CTABLE)="GERMPLSM") AND ((CHANGES.CFIELD)="GPID1") 
AND ((CHANGES.CTO)<>[GERMPLSM].[GPID1]) AND ((CHANGES.CSTATUS)=0));
SELECT CHANGES.CTABLE, CHANGES.CFIELD, CHANGES.CTO, CHANGES.CSTATUS
FROM CHANGES 
INNER JOIN GERMPLSM ON CHANGES.CRECORD = GERMPLSM.GID
WHERE (((CHANGES.CTABLE)="GERMPLSM") AND ((CHANGES.CFIELD)="GPID2") 
AND ((CHANGES.CTO)<>[GERMPLSM].[GPID2]) AND ((CHANGES.CSTATUS)=0));
SELECT CHANGES.CTABLE, CHANGES.CFIELD, CHANGES.CTO, CHANGES.CSTATUS
FROM CHANGES 
INNER JOIN GERMPLSM ON CHANGES.CRECORD = GERMPLSM.GID
WHERE (((CHANGES.CTABLE)="GERMPLSM") AND ((CHANGES.CFIELD)="GDATE") 
AND ((CHANGES.CTO)<>[GERMPLSM].[GDATE]) AND ((CHANGES.CSTATUS)=0));
SELECT CHANGES.CTABLE, CHANGES.CFIELD, CHANGES.CTO, CHANGES.CSTATUS
FROM CHANGES 
INNER JOIN GERMPLSM ON CHANGES.CRECORD = GERMPLSM.GID
WHERE (((CHANGES.CTABLE)="GERMPLSM") AND ((CHANGES.CFIELD)="GLOCN") 
AND ((CHANGES.CTO)<>[GERMPLSM].[GLOCN]) AND ((CHANGES.CSTATUS)=0));
SELECT CHANGES.CTABLE, CHANGES.CFIELD, CHANGES.CTO, CHANGES.CSTATUS
FROM CHANGES 
INNER JOIN GERMPLSM ON CHANGES.CRECORD = GERMPLSM.GID
WHERE (((CHANGES.CTABLE)="GERMPLSM") AND ((CHANGES.CFIELD)="METHN") 
AND ((CHANGES.CTO)<>[GERMPLSM].[METHN]) AND ((CHANGES.CSTATUS)=0));
SELECT CHANGES.CTABLE, CHANGES.CFIELD, CHANGES.CTO, CHANGES.CSTATUS
FROM CHANGES 
INNER JOIN GERMPLSM ON CHANGES.CRECORD = GERMPLSM.GID
WHERE (((CHANGES.CTABLE)="GERMPLSM") AND ((CHANGES.CFIELD)="GNPGS") 
AND ((CHANGES.CTO)<>[GERMPLSM].[GNPGS]) AND ((CHANGES.CSTATUS)=0));
SELECT CHANGES.CTABLE, CHANGES.CFIELD, CHANGES.CTO, CHANGES.CSTATUS
FROM CHANGES 
INNER JOIN GERMPLSM ON CHANGES.CRECORD = GERMPLSM.GID
WHERE (((CHANGES.CTABLE)="GERMPLSM") AND ((CHANGES.CFIELD)="GREF") 
AND ((CHANGES.CTO)<>[GERMPLSM].[GREF]) AND ((CHANGES.CSTATUS)=0));
SELECT GERMPLSM.GID, GERMPLSM.GPID1 AS GPID1, GERMPLSM.MGID, 
GERMPLSM1.GPID1 AS MGPID1, GERMPLSM1.GRPLCE AS Expr1 
FROM GERMPLSM, GERMPLSM1 
WHERE (((GERMPLSM.GPID1)<>[GERMPLSM1].[GPID1]) AND ((GERMPLSM.GRPLCE)=0) 
AND (([GERMPLSM1].[GPID1])<>0) AND (([GERMPLSM1].[GNPGS])=-1));
SELECT GERMPLSM.GID, GERMPLSM.GPID1 AS GPID1, GERMPLSM.MGID, 
GERMPLSM1.GPID1 AS MGPID1, GERMPLSM1.GRPLCE AS Expr1 
FROM GERMPLSM, GERMPLSM1 
WHERE (((GERMPLSM.GPID1)<>[GERMPLSM1].[GID]) AND ((GERMPLSM.GRPLCE)=0) 
AND (([GERMPLSM1].[GPID1])=0) AND (([GERMPLSM1].[GNPGS])=-1)); 
SELECT GERMPLSM.GID, GERMPLSM.GPID1 AS GPID1, GERMPLSM.MGID, 
GERMPLSM1.GNPGS AS Expr1, GERMPLSM1.GRPLCE AS Expr2 
FROM GERMPLSM, GERMPLSM1 
WHERE (((GERMPLSM.GPID1)<>[GERMPLSM1].[GID]) AND ((GERMPLSM.GRPLCE)=0) 
AND (([GERMPLSM1].[GNPGS])>0));

Prepare local update environment

Set GERMPLSM.LGID = GERMPLSM.GID

UPDATE GERMPLSM SET GERMPLSM.LGID = [germplsm].[gid];

Create Table MAXTABLE

CREATE TABLE MAXTABLE (MAXID LONG,GID LONG, NID LONG,  
LOCID LONG, AID LONG, CID LONG, LDID LONG, LISTID LONG, 
INSTALID LONG, UID LONG, ADMIN LONG, REFID LONG, 
LRECID LONG, FLDNO LONG);
INSERT INTO MAXTABLE VALUES (1,0,0,0,0,0,0,0,0,0,0,0,0,0);

Set Max GID

UPDATE MAXTABLE 
SET MAXTABLE.GID = (Select MAX(GERMPLSM1.GID) FROM GERMPLSM1) 
WHERE MAXID=1;

Set Max NID

UPDATE MAXTABLE 
SET MAXTABLE.NID = (Select MAX(NAMES1.NID) FROM NAMES1) 
WHERE MAXID=1;

Set Max LOCID

UPDATE MAXTABLE 
SET MAXTABLE.LOCID = (Select MAX(LOCATION1.LOCID) FROM LOCATION1) 
WHERE MAXID=1;

Set Max AID

UPDATE MAXTABLE 
SET MAXTABLE.AID = (Select MAX(ATRIBUTS1.AID) FROM ATRIBUTS1) 
WHERE MAXID=1;

Set Max CID

UPDATE MAXTABLE 
SET MAXTABLE.CID = (Select MAX(CHANGES1.CID) FROM CHANGES1) 
WHERE MAXID=1;

Set Max LDID

UPDATE MAXTABLE 
SET MAXTABLE.LDID = (Select MAX(LOCDES1.LDID) FROM LOCDES1) 
WHERE MAXID=1;

Set Max LISTID

UPDATE MAXTABLE 
SET MAXTABLE. LISTID = (SELECT MAX(LISTNMS1.LISTID) AS MAXLISTID FROM LISTNMS1) 
WHERE MAXID=1;

Set Max INSTALID

UPDATE MAXTABLE 
SET MAXTABLE. instalid= (SELECT MAX(instln1.instalid) AS MAXinstalid FROM instln1) 
WHERE MAXID=1;

Set Max UID

UPDATE MAXTABLE 
SET MAXTABLE. UID = (SELECT MAX(users1.userid) AS MAXuserid FROM users1) 
WHERE MAXID=1;

Set Max ADMIN

UPDATE MAXTABLE 
SET MAXTABLE. admin= (SELECT MAX(instln1.admin) AS MAXadmin FROM instln1) 
WHERE MAXID=1;

Set Max REFERENCE ID

UPDATE MAXTABLE 
SET MAXTABLE. refid= (SELECT MAX(bibrefs1.refid) AS MAXrefid FROM bibrefs1) 
WHERE MAXID=1;

Set Max LRECID

UPDATE MAXTABLE 
SET MAXTABLE. lrecid=(SELECT MAX(listdata1.lrecid) AS MAXlrecid FROM listdata1) 
WHERE MAXID=1;

Set Max FLDNO

UPDATE MAXTABLE 
SET MAXTABLE.FLDNO=(SELECT MAX(udflds1.fldno) AS MAXfldno FROM udflds1) 
WHERE MAXID=1;

Create New Table UPDATEGID

Create Table [UPDATEGID] (GID Long, LGID Long)

Populate Table UPDATEGID

INSERT INTO [UPDATEGID] ( GID, LGID )
SELECT MaxTable.GID, MaxTable.GID
FROM MaxTable

Create New Table UpdateLOC

CREATE TABLE UpdateLOC (LOCID LONG, LLOCID LONG)

Populate Table UpdateLOC

INSERT INTO UpdateLOC ( LOCID, LLOCID )
SELECT MaxTable.LOCID, MaxTable.LOCID
FROM MaxTable

Create New Table UpdCHNG

Create Table [UPDCHNG] (CID Counter, LCID Long);

Populate Table UpdCHNG

INSERT INTO UPDCHNG (CID, LCID)
SELECT MAXTABLE.CID, MAXTABLE.CID
FROM MAXTABLE;

Create New Table UpdNAME

Create Table [UPDNAME] (NID Long, LNID Long);

Populate Table UpdNAME

INSERT INTO UPDNAME (NID, LNID)
SELECT MAXTABLE.NID, MAXTABLE.NID
FROM MAXTABLE;

Create New Table UpdATRIBUTS

Create Table [UPDATRIBUTS]  (AID Long, LAID Long);

Populate Table UpdATRIBUTS

INSERT INTO UPDATRIBUTS (AID, LAID)
SELECT MAXTABLE.AID, MAXTABLE.AID
FROM MAXTABLE;

Create New Table UPDLISTNMS

Create Table [UPDLISTNMS] (LISTID Counter primary key, LLISTID Long);

Populate Table UPDLISTNMS

INSERT INTO UPDLISTNMS ( LISTID, LLISTID ) 
SELECT MAXTABLE.LISTID, MAXTABLE.LISTID FROM MAXTABLE; 

Create New Table UPDinstln

Create Table [UPDinstln] (instalid Counter primary key, Linstalid Long); 

Populate Table UPDinstln

INSERT INTO UPDinstln ( instalid, Linstalid ) 
SELECT MAXTABLE.instalid, MAXTABLE.instalid FROM MAXTABLE;

Create New Table UPDusers

Create Table [UPDusers] (userid Counter primary key, Luserid Long); 

Populate Table UPDusers

INSERT INTO UPDusers ( userid, Luserid ) 
SELECT MAXTABLE.uid, MAXTABLE.uid FROM MAXTABLE; 

Create New Table UPDadmin

Create Table [UPDadmin] (admin Counter primary key, Ladmin Long);

Populate Table UPDadmin

INSERT INTO UPDadmin (admin, Ladmin) 
SELECT MAXTABLE.admin, MAXTABLE.admin FROM MAXTABLE; 

Create New Table UPDbibref

Create Table [UPDbibref] (refid Counter primary key, Lrefid Long); 

Populate Table UPDbibref

INSERT INTO UPDbibref ( refid, Lrefid ) 
SELECT MAXTABLE.refid, MAXTABLE.refid FROM MAXTABLE; 

Create New Table UPDlistdata

Create Table [UPDlistdata] (lrecid Counter primary key, Llrecid Long);

Populate Table UPDlistdata

INSERT INTO UPDlistdata ( lrecid, Llrecid ) 
SELECT MAXTABLE.lrecid, MAXTABLE.lrecid FROM MAXTABLE; 

Create New Table UPDudflds

Create Table [UPDudflds] (fldno Counter primary key, Lfldno Long);

Populate Table UPDudflds

INSERT INTO UPDudflds ( fldno, Lfldno ) 
SELECT MAXTABLE.fldno, MAXTABLE.fldno FROM MAXTABLE;

Update Locations

Get location IDs from local to central

INSERT INTO UpdateLOC ( LLOCID )
SELECT LOCATION.LOCID AS Expr1
FROM LOCATION;

Transfer new positive LOCID back to LOCATION table

UPDATE LOCATION, UpdateLOC SET LOCATION.LOCID = [UpdateLOC].[LOCID]
WHERE (((LOCATION.LOCID)=[UpdateLOC].[LLOCID]));

Transfer new positive LOCID back to LOCDES table

UPDATE UpdateLOC, LOCDES SET LOCDES.LOCID = [UpdateLOC].[LOCID]
WHERE (((LOCDES.LOCID)=[UpdateLOC].[LLOCID]));

Transfer new positive LOCID back to GERMPLSM table

UPDATE UpdateLOC, GERMPLSM SET GERMPLSM.GLOCN = [UpdateLOC].[LOCID]
WHERE (((GERMPLSM.GLOCN)=[UpdateLOC].[LLOCID]));

Transfer new positive LOCID back to NAMES table

UPDATE UpdateLOC, [NAMES] SET [NAMES].NLOCN = [UpdateLOC].[LOCID]
WHERE (((NAMES.NLOCN)=[UpdateLOC].[LLOCID]));

Transfer new positive LOCID back to ATRIBUTS table

UPDATE UpdateLOC, ATRIBUTS SET ATRIBUTS.ALOCN = [UpdateLOC].[LOCID]
WHERE (((ATRIBUTS.ALOCN)=[UpdateLOC].[LLOCID]));

Transfer new positive LOCID back to LOCATION table for field SNL3ID

UPDATE LOCATION, UpdateLOC SET LOCATION.SNL3ID = [updateloc].[locid]
WHERE (((LOCATION.SNL3ID)=[updateloc].[llocid]));

Transfer new positive LOCID back to LOCATION table for field SNL2ID

UPDATE LOCATION, UpdateLOC SET LOCATION.SNL2ID = [updateloc].[locid]
WHERE (((LOCATION.SNL2ID)=[updateloc].[llocid]));

Transfer new positive LOCID back to LOCATION table for field SNL1ID

UPDATE LOCATION, UpdateLOC SET LOCATION.SNL1ID = [updateloc].[locid]
WHERE (((LOCATION.SNL1ID)=[updateloc].[llocid]));
INSERT INTO UPDLISTNMS ( LLISTID ) 
SELECT LISTNMS.LISTID FROM LISTNMS 
WHERE LISTNMS.LISTID < 0;
UPDATE LISTNMS, UPDLISTNMS 
SET LISTNMS.LISTID = UPDLISTNMS.LISTID 
WHERE LISTNMS.LISTID = UPDLISTNMS.LLISTID;
UPDATE LISTDATA, UPDLISTNMS 
SET LISTDATA.LISTID = UPDLISTNMS.LISTID 
WHERE LISTDATA.LISTID = UPDLISTNMS.LLISTID;
INSERT INTO UPDUSERS (LUSERID) 
SELECT USERS.USERID FROM USERS WHERE USERS.USERID < 0;
UPDATE USERS, UPDUSERS 
SET USERS.USERID = UPDUSERS.USERID 
WHERE USERS.USERID = UPDUSERS.LUSERID; 
UPDATE LISTNMS, UPDUSERS 
SET LISTNMS.LISTUID = UPDUSERS.USERID 
WHERE LISTNMS.LISTUID = UPDUSERS.LUSERID;

Extract all local germplasm without local references

Generate positive GIDs for GERMPLSM table into table UPDATEGID

INSERT INTO [UPDATEGID] (LGID)
SELECT GERMPLSM.GID
FROM GERMPLSM
WHERE (((GERMPLSM.GID)<0) AND ((GERMPLSM.GPID1)>=0) AND ((GERMPLSM.GPID2)>=0) 
AND ((GERMPLSM.GRPLCE)=0));

Put positive GIDs in GERMPLSM table according to UPDATEGID table

UPDATE GERMPLSM, [UPDATEGID] SET GERMPLSM.GID = [updategid].[gid]
WHERE (((GERMPLSM.GID)=[updategid].[lgid]));

Put positive GIDs in PROGNTRS table according to UPDATEGID table

UPDATE [UPDATEGID], PROGNTRS SET PROGNTRS.GID = [updategid].[gid]
WHERE (((PROGNTRS.GID)=[updategid].[lgid]));

Put positive GIDs in GERMPLSM table for GPID1s according to UPDATEGID table

UPDATE GERMPLSM, [UPDATEGID] SET GERMPLSM.GPID1 = [updategid].[gid]
WHERE (((GERMPLSM.GPID1)=[updategid].[lgid]));

Put positive GIDs in GERMPLSM table for GPID2s according to UPDATEGID table:

UPDATE GERMPLSM, [UPDATEGID] SET GERMPLSM.GPID2 = [updategid].[gid]
WHERE (((GERMPLSM.GPID2)=[updategid].[lgid]));


Note that first query of "Extract all local germplasm without local references" *must* be run again after running the second to last query


Put positive GIDs in GERMPLSM table for GPID2s according to UPDATEGID table

UPDATE [UPDATEGID], PROGNTRS 
SET PROGNTRS.PID = [updategid].[gid]
WHERE (((PROGNTRS.PID)=[updategid].[lgid]));

Update all remaining local germplasm references

Update GIDs in NAMES according to UPDATEGID table

UPDATE [NAMES], [UPDATEGID] 
SET [NAMES].GID = [updategid].[gid]
WHERE (((NAMES.GID)=[updategid].[lgid]));

Update GIDs in ATRIBUTS according to UPDATEGID table

UPDATE [UPDATEGID], ATRIBUTS 
SET ATRIBUTS.GID = [updategid].[gid]
WHERE (((ATRIBUTS.GID)=[updategid].[lgid]) AND ((ATRIBUTS.ATYPE)<>101 Or (ATRIBUTS.ATYPE)<>102));

Update GIDs in LISTDATA according to UPDATEGID table

UPDATE LISTDATA, [UPDATEGID] SET LISTDATA.GID = [updategid].[gid]
WHERE (((LISTDATA.GID)=[updategid].[lgid]));
INSERT INTO UPDNAMES (lnid) 
SELECT names.nid FROM [names] WHERE names.nid<0;
UPDATE [names], UPDNAMES 
SET [names].NID = [UPDNAMES].[nid] 
WHERE (((names.NID)=[UPDNAMES].[lnid]));
INSERT INTO UPDATRIB (laid) 
SELECT atributs.aid FROM atributs WHERE atributs.aid<0;
UPDATE atributs, UPDATRIB 
SET atributs.aid = UPDATRIB.aid WHERE atributs.aid = UPDATRIB.laid;
INSERT INTO UPDinstln (linstalid) 
SELECT instln.instalid FROM instln WHERE instln.instalid<0;
UPDATE instln, UPDinstln 
SET instln.instalid = UPDinstln.instalid WHERE instln.instalid = UPDinstln.linstalid;
UPDATE users, UPDinstln 
SET users.instalid = UPDinstln.instalid WHERE users.instalid = UPDinstln.linstalid;
INSERT INTO UPDadmin (ladmin) 
SELECT instln.admin FROM instln WHERE instln.admin<0;
UPDATE instln, UPDadmin 
SET instln.admin = UPDadmin.admin WHERE instln.admin = UPDadmin.ladmin;

Check update

Check if all these 3 requirements are fulfilled (all 3 must return 0 records). There should be no records in GERMPLSM with negative GIDs and GRPLCE = 0.

Select * From GERMPLSM Where GRPLCE=0 And GID < 0

The only negative GIDs in the NAMES and ATRIBUTS table should belong to replaced or deleted records.

Select * From NAMES a Where GID < 0 And NSTAT <> 9 And Not Exists
(Select * From GERMPLSM b Where a.GID = b.GID and b.GRPLCE<>0)
Select * From ATRIBUTS a Where a.GID < 0 And Not Exists
(Select * From GERMPLSM b Where a.GID = b.GID and b.GRPLCE<>0)

All GIDs and PIDs in PROGENITORS table should be positive.

Select * From PROGNTRS Where (GID < 0 Or PID < 0)

Execute central changes and restore the local database

Insert locations into Access after local field LOCID has been changed to central LOCID

INSERT INTO LOCATION1 (LOCID, LTYPE, NLLP, LNAME, LABBR, SNL3ID, SNL2ID, SNL1ID, CNTRYID, LRPLCE)
SELECT LOCATION.LOCID, LOCATION.LTYPE, LOCATION.NLLP, LOCATION.LNAME, LOCATION.LABBR, 
LOCATION.SNL3ID, LOCATION.SNL2ID, LOCATION.SNL1ID, LOCATION.CNTRYID, LOCATION.LRPLCE
FROM LOCATION
WHERE (((LOCATION.LOCID)>0));

Insert LOCDES1 locations into Access after local field LOCID has been changed to central LOCID

INSERT INTO LOCDES1 (LOCID, DTYPE, DUID, DVAL, DDATE, DREF)
SELECT LOCDES.LOCID, LOCDES.DTYPE, LOCDES.DUID, LOCDES.DVAL, LOCDES.DDATE, LOCDES.DREF
FROM LOCDES;

Insert NAMES1 names using the autonumeric quality of the central NID

INSERT INTO NAMES1 (GID, NTYPE, NSTAT, NUID, NVAL, NLOCN, NDATE, NREF)
SELECT NAMES.GID, NAMES.NTYPE, NAMES.NSTAT, NAMES.NUID, NAMES.NVAL, 
NAMES.NLOCN, NAMES.NDATE,  NAMES.NREF
FROM [NAMES]
WHERE (((NAMES.GID)>0));

Insert ATRIBUTS1 attributes using the autonumeric quality of the central AID

INSERT INTO ATRIBUTS1 (GID, ATYPE, AUID, AVAL, ALOCN, AREF, ADATE)
SELECT ATRIBUTS.GID, ATRIBUTS.ATYPE, ATRIBUTS.AUID, ATRIBUTS.AVAL, 
ATRIBUTS.ALOCN, ATRIBUTS.AREF, ATRIBUTS.ADATE
FROM ATRIBUTS
WHERE (((ATRIBUTS.GID)>0) AND ((ATRIBUTS.ATYPE)<>101 And (ATRIBUTS.ATYPE)<>102))
ORDER BY ATRIBUTS.AID DESC;

Insert GERMPLSM1 records after the local field GID has been changed to central GID

INSERT INTO GERMPLSM1 (GID, METHN, GNPGS, GPID1, GPID2, GERMUID, LGID, GLOCN, GDATE, GREF, GRPLCE)
SELECT GERMPLSM.GID, GERMPLSM.METHN, GERMPLSM.GNPGS, GERMPLSM.GPID1, 
GERMPLSM.GPID2, GERMPLSM.GERMUID AS Expr1, GERMPLSM.LGID, 
GERMPLSM.GLOCN, GERMPLSM.GDATE, GERMPLSM.GREF, GERMPLSM.GRPLCE
FROM GERMPLSM
WHERE (((GERMPLSM.GID)>0) AND ((GERMPLSM.GRPLCE)=0));

Insert PROGNTRS1 records after the local fields GID and PID have been changed to central equivalents

INSERT INTO PROGNTRS1 (GID, PNO, PID)
SELECT PROGNTRS.GID, PROGNTRS.PNO, PROGNTRS.PID
FROM PROGNTRS
WHERE (((PROGNTRS.GID)>0) AND ((PROGNTRS.PID)>0));
INSERT INTO LISTDATA1 (LISTID, GID, ENTRYID, ENTRYCD, SOURCE, DESIG, GRPNAME, LRECID, LRSTATUS)
SELECT DISTINCT LISTID, GID, ENTRYID, ENTRYCD, SOURCE, DESIG, GRPNAME, LRECID, LRSTATUS
FROM LISTDATA WHERE GID>0;
INSERT INTO LISTNMS1 (LISTID, LISTNAME, LISTDATE, LISTTYPE, listuid, LISTDESC, 
LHIERARCHY, LISTSTATUS)
SELECT DISTINCT LISTID, LISTNAME, LISTDATE, LISTTYPE, listuid, LISTDESC, LHIERARCHY, LISTSTATUS
FROM LISTNMS WHERE LISTID>0;
INSERT INTO instln1 (INSTALID, ADMIN, UDATE, UGID, ULOCN, UCID, UNID, UAID, ULDID, 
umethn, ufldno, UREFNO, UPID, ULISTID, ULRECID, IDESC, DMS_STATUS)
SELECT DISTINCT INSTALID, ADMIN, UDATE, UGID, ULOCN, UCID, UNID, UAID, ULDID, umethn, 
ufldno, UREFNO, UPID, ULISTID, ULRECID, IDESC, DMS_STATUS
FROM instln
WHERE instalid>0; 
INSERT INTO USERS1 (userid, instalid, ustatus, uaccess, utype, UNAME, UPSWD, PERSONID, 
ADATE, CDATE)
SELECT DISTINCT userid, instalid, ustatus, uaccess, utype, UNAME, UPSWD, PERSONID, ADATE, CDATE
FROM USERS
WHERE userid>0;

Change all references to GIDs in the Changes table (GID,GPID1,GPID2,PID) to their positive equivalents

UPDATE CHANGES, [UPDATE] 
SET CHANGES.CTO = [UPDATE].[GID]
WHERE (((CHANGES.CTO)=[UPDATE].[LGID]) 
AND ((CHANGES.CFIELD)="GID" Or (CHANGES.CFIELD)="GPID1" 
Or (CHANGES.CFIELD)="GPID2" Or (CHANGES.CFIELD)="PID") 
AND ((CHANGES.CRECORD)>0) AND ((CHANGES.CSTATUS)=0));

Change all GRPLCE fields for central GERMPLSM records replaced by other germplasm

UPDATE CHANGES 
INNER JOIN GERMPLSM1 ON CHANGES.CRECORD = GERMPLSM1.GID 
SET GERMPLSM1.GRPLCE = [CHANGES].[CTO], CHANGES.CSTATUS = 2
WHERE (((GERMPLSM1.GRPLCE)=0) AND ((CHANGES.CTABLE)="GERMPLSM") 
AND ((CHANGES.CFIELD)="GID") AND ((CHANGES.CTO)>0));

Change all GRPLCE fields for central GERMPLSM records deleted by themselves

UPDATE CHANGES 
INNER JOIN GERMPLSM1 ON CHANGES.CRECORD = GERMPLSM1.GID 
SET GERMPLSM1.GRPLCE = [CHANGES].[CRECORD], CHANGES.CSTATUS = 2
WHERE (((GERMPLSM1.GRPLCE)=0) AND ((CHANGES.CTABLE)="GERMPLSM") 
AND ((CHANGES.CFIELD)="GID") AND ((CHANGES.CTO)=0));

GPID1

UPDATE CHANGES 
INNER JOIN GERMPLSM1 ON CHANGES.CRECORD = GERMPLSM1.GID 
SET GERMPLSM1.GPID1 = [CHANGES].[CTO], CHANGES.CSTATUS = 2
WHERE (((GERMPLSM1.GPID1)=[CHANGES].[CFROM]) AND ((CHANGES.CSTATUS)=0) 
AND ((CHANGES.CTABLE)="GERMPLSM") AND ((CHANGES.CFIELD)="GPID1") 
AND ((CHANGES.CTO)>=0));

GPID2

UPDATE CHANGES 
INNER JOIN GERMPLSM1 ON CHANGES.CRECORD = GERMPLSM1.GID 
SET GERMPLSM1.GPID2 = [CHANGES].[CTO], CHANGES.CSTATUS = 2
WHERE (((GERMPLSM1.GPID2)=[CHANGES].[CFROM]) AND ((CHANGES.CSTATUS)=0) 
AND ((CHANGES.CTABLE)="GERMPLSM") AND ((CHANGES.CFIELD)="GPID2") 
AND ((CHANGES.CTO)>=0));

GDATE

UPDATE CHANGES 
INNER JOIN GERMPLSM1 ON CHANGES.CRECORD = GERMPLSM1.GID 
SET GERMPLSM1.GDATE = [CHANGES].[CTO], CHANGES.CSTATUS = 2
WHERE (((GERMPLSM1.GDATE)=[CHANGES].[CFROM]) AND ((CHANGES.CSTATUS)=0) 
AND ((CHANGES.CTABLE)="GERMPLSM") AND ((CHANGES.CFIELD)="GDATE") 
AND ((CHANGES.CTO)>=0));

GLOCN

UPDATE CHANGES 
INNER JOIN GERMPLSM1 ON CHANGES.CRECORD = GERMPLSM1.GID 
SET GERMPLSM1.GLOCN = [CHANGES].[CTO], CHANGES.CSTATUS = 2
WHERE (((GERMPLSM1.GLOCN)=[CHANGES].[CFROM]) AND ((CHANGES.CSTATUS)=0) 
AND ((CHANGES.CTABLE)="GERMPLSM") AND ((CHANGES.CFIELD)="GLOCN") 
AND ((CHANGES.CTO)>=0));

METHN

UPDATE CHANGES 
INNER JOIN GERMPLSM1 ON CHANGES.CRECORD = GERMPLSM1.GID 
SET GERMPLSM1.METHN = [CHANGES].[CTO], CHANGES.CSTATUS = 2
WHERE (((GERMPLSM1.METHN)=[CHANGES].[CFROM]) AND ((CHANGES.CSTATUS)=0) 
AND ((CHANGES.CTABLE)="GERMPLSM") AND ((CHANGES.CFIELD)="METHN") 
AND ((CHANGES.CTO)>=0));

GNPGS

UPDATE CHANGES 
INNER JOIN GERMPLSM1 ON CHANGES.CRECORD = GERMPLSM1.GID 
SET GERMPLSM1.GNPGS = [CHANGES].[CTO], CHANGES.CSTATUS = 2
WHERE (((GERMPLSM1.GNPGS)=[CHANGES].[CFROM]) AND ((CHANGES.CSTATUS)=0) 
AND ((CHANGES.CTABLE)="GERMPLSM") AND ((CHANGES.CFIELD)="GNPGS") 
AND ((CHANGES.CTO)>=-1));

NSTAT

UPDATE CHANGES 
INNER JOIN NAMES1 ON CHANGES.CRECORD = NAMES1.NID 
SET NAMES1.NSTAT = [CHANGES].[CTO], CHANGES.CSTATUS = 2
WHERE (((NAMES1.NSTAT)=[CHANGES].[CFROM]) AND ((CHANGES.CSTATUS)=0) 
AND ((CHANGES.CTABLE)="NAMES") AND ((CHANGES.CFIELD)="NSTAT") 
AND ((CHANGES.CTO)>=0));

NDATE

UPDATE CHANGES 
INNER JOIN NAMES1 ON CHANGES.CRECORD = NAMES1.NID 
SET NAMES1.NDATE = [CHANGES].[CTO], CHANGES.CSTATUS = 2
WHERE (((NAMES1.NDATE)=[CHANGES].[CFROM]) AND ((CHANGES.CSTATUS)=0) 
AND ((CHANGES.CTABLE)="NAMES") AND ((CHANGES.CFIELD)="NDATE"));

NLOCN

UPDATE CHANGES 
INNER JOIN NAMES1 ON CHANGES.CRECORD = NAMES1.NID 
SET NAMES1.NLOCN = [CHANGES].[CTO], CHANGES.CSTATUS = 2
WHERE (((NAMES1.NLOCN)=[CHANGES].[CFROM]) AND ((CHANGES.CSTATUS)=0) 
AND ((CHANGES.CTABLE)="NAMES") AND ((CHANGES.CFIELD)="NLOCN") AND ((CHANGES.CTO)>=0));

NTYPE

UPDATE CHANGES 
INNER JOIN NAMES1 ON CHANGES.CRECORD = NAMES1.NID 
SET NAMES1.NTYPE = [CHANGES].[CTO], CHANGES.CSTATUS = 2
WHERE (((NAMES1.NDATE)=[CHANGES].[CFROM]) AND ((CHANGES.CSTATUS)=0) 
AND ((CHANGES.CTABLE)="NAMES") AND ((CHANGES.CFIELD)="NTYPE"));
UPDATE CHANGES 
INNER JOIN ATRIBUTS1 ON CHANGES.CRECORD = ATRIBUTS1.AID 
SET ATRIBUTS1.ATYPE = [changes].[cto], CHANGES.CSTATUS = 2
WHERE (((CHANGES.CSTATUS)=0) AND ((CHANGES.CTABLE)="atributs") 
AND ((CHANGES.CFIELD)="atype") AND ((CHANGES.CTO)>=0));
UPDATE CHANGES 
INNER JOIN ATRIBUTS1 ON CHANGES.CRECORD = ATRIBUTS1.AID 
SET ATRIBUTS1.ALOCN = [CHANGES].[CTO], CHANGES.CSTATUS = 2
WHERE (((ATRIBUTS1.ALOCN)=[CHANGES].[CFROM]) AND ((CHANGES.CSTATUS)=0) 
AND ((CHANGES.CTABLE)="ATRIBUTS") AND ((CHANGES.CFIELD)="ALOCN"));
INSERT INTO UPDCHNG (LCID)
SELECT CHANGES.CID
FROM CHANGES
WHERE (((CHANGES.CSTATUS)=2) AND ((CHANGES.CRECORD)>0))
ORDER BY CHANGES.CID DESC;
UPDATE CHANGES 
INNER JOIN UPDCHNG ON CHANGES.CID = UPDCHNG.LCID 
SET CHANGES.CID = [UPDCHNG].[CID], CHANGES.CSTATUS = [UPDCHNG].[LCID];
INSERT INTO CHANGES1 (CID, CTABLE, CFIELD, CRECORD, CFROM, CTO, CDATE, CTIME, 
CGROUP, CREF, CSTATUS, CDESC)
SELECT CHANGES.CID, CHANGES.CTABLE, CHANGES.CFIELD, CHANGES.CRECORD, 
CHANGES.CFROM, CHANGES.CTO, CHANGES.CDATE, CHANGES.CTIME, CHANGES.CGROUP, 
CHANGES.CREF, CHANGES.CSTATUS, CHANGES.CDESC
FROM CHANGES
WHERE (((CHANGES.CID)>0));
Personal tools