Deleting data in a IMS Universal DL/I driver application
Use the delete method in the PCB interface to delete existing segments in the database.
Procedure
IMS Universal DL/I driver delete examples
The following code fragment illustrates how delete all segments in a
Path. Calling the delete method with no arguments removes all
PATIENT segments and its dependent segments (ILLNESS, TREATMNT, DOCTOR, BILLING) where the patient
name is ANDREA SMITH
, the ward name is SURG
, the hospital name is ALEXANDRIA
,
and the patient number is PatientNo7
.
SSAList ssaList = pcb.getSSAList("HOSPITAL","ILLNESS");
ssaList.addInitialQualification("HOSPITAL","HOSPNAME",SSAList.EQUALS,"ALEXANDRIA");
ssaList.addInitialQualification("WARD","WARDNAME",SSAList.EQUALS,"SURG");
ssaList.addInitialQualification("PATIENT","PATNAME",SSAList.EQUALS,"ANDREA SMITH");
ssaList.addCommandCode("PATIENT", SSAList.CC_D);
Path path = ssaList.getPathForRetrieveReplace();
if (pcb.getUnique(path, ssaList, true)) {
if (path.getString("PATIENT", "PATNUM").equals("PatientNo7")) {
pcb.delete();
}
}
while (pcb.getNext(path, ssaList, true)) {
if (path.getString("PATIENT", "PATNUM").equals("PatientNo7")) {
pcb.delete();
}
}
The following code fragment illustrates how to use delete with an unqualified
SSAList. Calling the delete method with an unqualified SSAList
removes all ILLNESS segments and its dependent segments (TREATMNT, DOCTOR) where the patient name is
ANDREA SMITH
, the ward name is SURGICAL
, the hospital name is ALEXANDRIA
, and
the patient number is PatientNo7
.
SSAList ssaList = pcb.getSSAList("HOSPITAL","ILLNESS");
ssaList.addInitialQualification("HOSPITAL","HOSPNAME",SSAList.EQUALS,"ALEXANDRIA");
ssaList.addInitialQualification("WARD","WARDNAME",SSAList.EQUALS,"SURGICAL");
ssaList.addInitialQualification("PATIENT","PATNAME",SSAList.EQUALS,"ANDREA SMITH");
ssaList.markAllFieldsForRetrieval("PATIENT", true);
Path path = ssaList.getPathForRetrieveReplace();
SSAList illnessSSAList = pcb.getSSAList("ILLNESS");
if (pcb.getUnique(path, ssaList, true)) {
if (path.getString("PATIENT", "PATNUM").equals("PatientNo7")) {
pcb.delete(illnessSSAList);
}
}
while (pcb.getNext(path, ssaList, true)) {
if (path.getString("PATIENT", "PATNUM").equals("PatientNo7")) {
pcb.delete(illnessSSAList);
}
}