Source on IFS & Local Development
This commit is contained in:
parent
57c4efd0aa
commit
a2d8f9c33c
9
5250_Subfile/CRTDTAARA.clle
Normal file
9
5250_Subfile/CRTDTAARA.clle
Normal file
@ -0,0 +1,9 @@
|
||||
/* Convenience pgm that creates CUSTNEXT data area in *CUURLIB */
|
||||
/* This is a really high number that I don't expect in test data */
|
||||
/* Strictly it should be set to CUSTMAST COUNT(*) + 1 */
|
||||
PGM
|
||||
DLTDTAARA DTAARA(CUSTNEXT)
|
||||
MONMSG MSGID(CPF0000)
|
||||
CRTDTAARA DTAARA(CUSTNEXT) TYPE(*CHAR) LEN(4) +
|
||||
VALUE('EEEE') TEXT('Next alpha-numeric customer number')
|
||||
ENDPGM
|
||||
@ -1,8 +1,13 @@
|
||||
PGM
|
||||
DLTMSGF MSGF(LENNONS1/CUSTMSGF)
|
||||
/* === Set your target library here ================ */
|
||||
DCL VAR(&TGT_LIB) TYPE(*CHAR) LEN(10) +
|
||||
VALUE('LENNONS1')
|
||||
/* ================================================= */
|
||||
|
||||
DLTMSGF MSGF(&TGT_LIB/CUSTMSGF)
|
||||
MONMSG MSGID(CPF0000)
|
||||
|
||||
CRTMSGF MSGF(LENNONS1/CUSTMSGF) TEXT('Customer +
|
||||
CRTMSGF MSGF(&TGT_LIB/CUSTMSGF) TEXT('Customer +
|
||||
Related Messages')
|
||||
ADDMSGD MSGID(DEM0000) MSGF(CUSTMSGF) MSG('Press Enter to +
|
||||
update. F12 to Cancel.')
|
||||
|
||||
@ -1,323 +1,329 @@
|
||||
|
||||
set schema lennons1;
|
||||
-- Create CUSTMAST & Indexs and load 300 records -----------
|
||||
-- Program LOADCUST submits this to batch.
|
||||
|
||||
-- 02/2024 Change CustID to char to allow alpha/numeric keys
|
||||
|
||||
set schema lennons1; -- <<<<< Change to your library <<<<<<
|
||||
DROP TABLE custmast;
|
||||
|
||||
CREATE TABLE custmast (
|
||||
CustID numeric(4,0) not NULL,
|
||||
Name char(40) not null,
|
||||
Addr char(40) not NULL,
|
||||
City char(20) not null,
|
||||
State char(2) not NULL,
|
||||
Zip char(10) not NULL,
|
||||
CorpPhone char (20) default ' ',
|
||||
AcctMgr char(40) default ' ',
|
||||
AcctPhone char(20) default ' ',
|
||||
Active char(1) default 'Y',
|
||||
PRIMARY KEY (Custid)
|
||||
)
|
||||
RCDFMT CUSTMASTF;
|
||||
-- 02/2024 Change CUSTID to char to allow alpha-numeric key
|
||||
|
||||
CREATE TABLE custmast (
|
||||
CustID CHAR(4) NOT NULL
|
||||
,Name CHAR(40) NOT NULL
|
||||
,Addr CHAR(40) NOT NULL
|
||||
,City CHAR(20) NOT NULL
|
||||
,State CHAR(2) NOT NULL
|
||||
,Zip CHAR(10) NOT NULL
|
||||
,CorpPhone CHAR(20) DEFAULT ' '
|
||||
,AcctMgr CHAR(40) DEFAULT ' '
|
||||
,AcctPhone CHAR(20) DEFAULT ' '
|
||||
,Active CHAR(1) DEFAULT 'Y'
|
||||
,PRIMARY KEY (Custid)
|
||||
)
|
||||
RCDFMT CUSTMASTF;
|
||||
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (1,'Aliquet Nec Imperdiet Limited','Ap #766-3317 Penatibus St.','Des Moines','IA','90911-1234','(925)276-2778','Simon, Gannon D.','(118)850-9146','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (2,'Nam Porttitor LLP','802-7392 Elit, Rd.','Rockville','MD','60342-2222','(734)960-9274','Kirk, Hamish U.','(435)357-0265','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (3,'Nibh Dolor Company','P.O. Box 103, 9218 Vivamus Avenue','Auburn','ME','15762-0001','(714)825-5082','Norman, Abbot R.','(757)158-0941','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (4,'Blandit At Nisi Industries','P.O. Box 956, 3682 Vehicula Rd.','Nampa','ID','59290','(461)556-6373','Hobbs, Benedict E.','(431)716-6353','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (5,'Tincidunt Neque PC','694-2001 Pede Av.','Tulsa','OK','59509','(846)992-8625','Rollins, Adria O.','(385)989-8252','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (6,'Urna Nunc Company','Ap #424-1044 A Road','Pittsburgh','PA','18268','(766)830-5390','Buck, Wallace L.','(633)641-9522','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (7,'Orci In Industries','Ap #881-3390 Libero Street','Los Angeles','CA','91019','(886)780-7872','Bray, Kirk F.','(514)471-2753','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (8,'Consequat Enim Diam Consulting','216-1528 Donec Street','Springdale','AR','72663','(839)285-0215','Lynn, Cameron S.','(747)288-2822','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (9,'Feugiat Tellus LLC','9523 Mi Street','Lakewood','CO','62383','(111)938-1994','Ortega, Hamilton M.','(465)109-1390','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (10,'Aliquet Inc.','P.O. Box 571, 7610 Luctus Av.','Cedar Rapids','IA','45367','(216)472-9463','Ward, Lana C.','(872)946-7521','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (11,'Molestie Sed LLP','1674 Sollicitudin Av.','Hilo','HI','68029','(574)121-7503','Potter, Elvis E.','(673)782-6467','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (12,'Magna Phasellus Dolor Industries','450-4449 Tristique Street','Bloomington','MN','94856','(361)342-3673','Jackson, Abdul P.','(192)658-9848','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (13,'Lobortis Ultrices Vivamus Corporation','P.O. Box 768, 3596 Ultrices St.','Joliet','IL','77259','(343)312-1834','Rosales, Igor Y.','(794)353-6679','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (14,'Ornare Libero Limited','Ap #606-6238 Nascetur Street','South Bend','IN','95819','(131)941-6075','Evans, Amos Q.','(932)772-2967','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (15,'Facilisis Non LLC','4546 Nonummy. Avenue','Tucson','AZ','86022','(205)541-6051','Kent, Idola E.','(128)579-5713','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (16,'Sed Sem Associates','P.O. Box 348, 4344 Ut Avenue','Evansville','IN','89459','(776)548-5799','Hendricks, Ima G.','(732)704-7588','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (17,'Velit Eu Sem LLP','3906 Fringilla Street','Newport News','VA','55708','(340)991-5817','Floyd, Blythe S.','(936)846-3564','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (18,'Lobortis Quam Incorporated','5326 Adipiscing St.','Jackson','MS','48255','(631)752-8094','Case, Miriam X.','(864)985-5070','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (19,'Purus Corporation','1854 Congue Avenue','Montgomery','AL','35900','(370)304-5277','Short, Ainsley L.','(827)735-8081','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (20,'Phasellus Nulla Foundation','2286 Netus Av.','Kenosha','WI','56417','(787)658-6996','Blackburn, Silas A.','(183)692-6381','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (21,'Ut PC','Ap #213-8564 In Street','Gary','IN','75450','(141)583-4347','Perry, Jacob V.','(108)231-4465','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (22,'Facilisis Associates','6618 Fermentum Avenue','Biloxi','MS','12944','(913)664-0530','Cobb, Brooke I.','(264)132-0926','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (23,'Aliquam Ornare Libero Associates','Ap #954-6676 Nec, St.','Lexington','KY','75787','(204)867-3398','Medina, Chava X.','(995)553-9545','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (24,'Auctor Limited','P.O. Box 933, 7675 Donec Avenue','Gillette','WY','91423','(497)527-1165','Chan, Wanda E.','(614)703-5620','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (25,'Massa Incorporated','P.O. Box 235, 5477 Integer Ave','Clarksville','TN','47955','(798)950-4857','Conner, Hector R.','(705)926-0634','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (26,'Mi Tempor Lorem Incorporated','677-2048 Sed St.','Sacramento','CA','93423','(497)626-5152','Logan, Mohammad W.','(829)256-1335','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (27,'Ornare Placerat Institute','235-4908 Tellus, Rd.','Madison','WI','56718','(811)498-7067','Waters, Gretchen Y.','(308)910-9423','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (28,'Interdum Company','802-5717 Phasellus Street','Saint Louis','MO','17666','(133)564-5900','Morrison, Phillip V.','(907)524-5571','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (29,'Orci Tincidunt Industries','Ap #847-7654 Enim. Rd.','Athens','GA','92897','(881)380-5393','Carter, Michael I.','(275)480-9667','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (30,'Vehicula Aliquet Libero LLP','P.O. Box 578, 5008 Cum Road','Jacksonville','FL','81238','(542)153-0544','Tillman, Peter N.','(867)376-6599','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (31,'Nulla Integer Urna Industries','912-5887 Nullam Street','Nashville','TN','77059','(332)224-6669','Burnett, Felix U.','(434)629-6488','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (32,'Nec Quam Corporation','P.O. Box 154, 3604 Et, Av.','Huntsville','AL','35819','(826)307-4616','Sargent, Cade J.','(561)224-4962','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (33,'Nunc PC','9999 Enim. St.','Gillette','WY','82506','(944)972-3972','Church, Nelle U.','(904)869-4140','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (34,'Sem Vitae Aliquam Corp.','Ap #420-8986 Malesuada Rd.','Butte','MT','79755','(270)167-4832','Mcgowan, Quincy N.','(779)341-1591','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (35,'Orci In Consequat LLP','740-7126 Felis, St.','Fort Collins','CO','68676','(778)891-4101','Small, Ruth U.','(921)657-3934','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (36,'Dolor Corp.','Ap #801-6511 Aliquet Ave','Kansas City','KS','64411','(892)390-5296','Kane, Frances W.','(834)431-8658','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (37,'Magna A Corp.','Ap #284-9461 Aliquam Ave','Lakewood','CO','81047','(910)312-7289','Dalton, Shelley R.','(595)444-9009','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (38,'Adipiscing PC','820-1203 Sed St.','Mesa','AZ','86170','(451)221-0789','Pennington, Benjamin C.','(786)462-1623','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (39,'Ac Consulting','Ap #383-9621 Purus. Avenue','Idaho Falls','ID','49889','(794)126-7807','Baldwin, Lars N.','(569)859-5215','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (40,'Tristique Incorporated','Ap #827-3553 Donec Ave','Sterling Heights','MI','42600','(167)667-4284','Rowland, Jasper B.','(463)358-6987','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (41,'Erat Vivamus Nisi Incorporated','P.O. Box 278, 9160 Lectus Rd.','Reno','NV','33080','(318)799-8771','Harris, Cleo D.','(492)880-1820','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (42,'Donec Luctus LLP','P.O. Box 169, 6532 Sodales St.','Des Moines','IA','38021','(271)876-5512','Preston, Gannon M.','(370)225-2071','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (43,'Vestibulum Massa Institute','307-9060 Sagittis. Avenue','Montpelier','VT','54916','(474)850-1435','Clarke, Nehru J.','(894)717-1606','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (44,'Sodales Purus In LLC','1743 Nec Ave','College','AK','99892','(193)148-4612','Mcbride, Uriel Y.','(182)602-9115','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (45,'Amet Consulting','4202 Tincidunt. Street','Gaithersburg','MD','44268','(220)252-6945','Lucas, Edward Y.','(689)169-5086','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (46,'Suscipit Associates','276-1737 Per Street','Nampa','ID','96620','(789)274-9584','Curry, Chloe C.','(445)741-4363','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (47,'Ultrices Foundation','Ap #625-5761 Et, Rd.','Springfield','MA','87864','(941)174-3922','Chambers, Elizabeth J.','(316)971-9800','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (48,'Enim Nisl Corporation','733-9998 Vulputate, Av.','Athens','GA','67774','(151)196-0295','Booker, Abel X.','(248)637-6665','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (49,'Lorem Donec Associates','P.O. Box 623, 1978 Nisi. Ave','Kansas City','MO','10931','(711)195-6562','Burton, Venus U.','(123)268-3429','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (50,'At Institute','4577 Ipsum. Rd.','Waterbury','CT','89504','(375)827-8303','Holt, Chloe W.','(864)417-0798','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (51,'Enim Diam LLP','984 In Street','Richmond','VA','55278','(664)928-0976','Bray, Lenore O.','(126)138-7218','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (52,'Cras Company','P.O. Box 965, 9458 Ac Av.','Juneau','AK','99810','(912)380-4143','Melton, Moses E.','(793)731-4692','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (53,'Lobortis Mauris Inc.','Ap #103-6408 Interdum. St.','Hartford','CT','37494','(527)710-7494','Knight, Jolie G.','(687)144-8097','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (54,'Aliquam Foundation','803-640 Ullamcorper Av.','San Antonio','TX','84021','(708)422-9634','Montgomery, Jenette P.','(303)230-6496','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (55,'Ut Lacus LLP','Ap #169-5989 Dui, Rd.','Rutland','VT','76521','(487)139-0144','Newton, Donna X.','(247)709-0096','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (56,'Elementum Purus Incorporated','763-9249 Libero Road','Augusta','GA','40707','(677)521-1866','Parker, Preston O.','(187)588-2854','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (57,'Eu Tellus LLP','5764 Tortor, Rd.','Columbia','MO','71597','(823)237-6689','Knowles, Ferdinand Y.','(440)288-0230','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (58,'Eget Inc.','800-2292 Egestas Ave','Kearney','NE','27988','(828)632-1089','Dejesus, Caldwell W.','(829)302-9680','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (59,'Vivamus Rhoncus Donec Foundation','7089 Dui. Rd.','Jonesboro','AR','72522','(236)150-9211','Daugherty, Ivory C.','(665)592-5887','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (60,'Dui Augue Incorporated','1087 Tellus Road','Columbus','OH','92462','(358)652-0880','Newton, Elton J.','(591)175-8431','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (61,'Diam Corp.','P.O. Box 784, 5928 Lorem Avenue','Idaho Falls','ID','24162','(910)427-3400','Bender, Nerea R.','(329)534-8794','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (62,'Maecenas Inc.','732-3321 Sit Ave','Tulsa','OK','88620','(622)767-7354','Gould, Moana E.','(841)345-0376','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (63,'Sed Diam Lorem Inc.','P.O. Box 191, 9623 Adipiscing, Rd.','Duluth','MN','64179','(425)243-8098','Dale, Ignacia J.','(446)235-8560','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (64,'Sem Ltd','P.O. Box 301, 7736 Ipsum Rd.','Cincinnati','OH','96209','(947)164-4166','Morin, Vivian G.','(380)269-4005','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (65,'Adipiscing Fringilla LLC','697-2933 Erat St.','Kapolei','HI','23922','(831)469-0202','Riggs, Gray N.','(270)295-3417','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (66,'Commodo Ipsum Suspendisse Incorporated','Ap #675-6496 Dignissim Avenue','Mesa','AZ','85400','(224)677-3922','Pena, Ulla G.','(125)332-7814','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (67,'Lectus Ante Corporation','8259 Nec Avenue','Kenosha','WI','77147','(463)300-2197','Avila, Flavia Y.','(307)983-7353','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (68,'Mauris Aliquam Eu Inc.','1422 Vivamus Av.','Biloxi','MS','62112','(682)196-8281','Ramos, Tana K.','(782)728-1972','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (69,'Dui In Institute','P.O. Box 281, 524 Nulla Street','Colorado Springs','CO','16114','(813)302-6231','Mcdaniel, Mannix X.','(238)425-9332','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (70,'Luctus Et Ultrices LLP','3676 Iaculis, Ave','Virginia Beach','VA','76138','(129)734-4598','Flores, Clinton L.','(856)967-8906','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (71,'A Auctor LLP','6344 Blandit Rd.','Bowling Green','KY','18191','(203)165-0264','Downs, Shaine M.','(596)572-4415','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (72,'Dictum Augue Malesuada LLC','1436 Blandit Rd.','Shreveport','LA','95603','(245)283-5552','Molina, Melvin R.','(942)580-0025','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (73,'Id Limited','Ap #691-3422 Mauris Rd.','Auburn','ME','43458','(411)996-6586','Harrington, Keefe L.','(656)389-4273','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (74,'Eu Foundation','946-6649 Nec Avenue','Minneapolis','MN','28063','(256)934-0083','Parks, Ursula Y.','(427)642-1213','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (75,'Quis LLP','Ap #469-873 Est. Rd.','Springfield','IL','28974','(177)660-1848','Chaney, Kellie J.','(839)710-0234','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (76,'Aliquet Vel Vulputate LLP','6687 Mollis Street','Salem','OR','49406','(549)647-1416','Weber, Lucas K.','(530)834-3535','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (77,'Cum Sociis Natoque PC','706-2627 Aliquam Ave','Little Rock','AR','72919','(732)308-7421','Munoz, Lila I.','(414)942-6852','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (78,'Nisi Corp.','857-210 Scelerisque St.','Fort Wayne','IN','30700','(550)719-2129','Sampson, Lila V.','(546)255-5460','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (79,'Sollicitudin Consulting','P.O. Box 767, 8107 Risus Street','Milwaukee','WI','80790','(629)715-7709','Barron, Moses V.','(953)824-9879','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (80,'Sed Et Libero Industries','4803 Erat. St.','Lowell','MA','92447','(398)277-8633','Mason, Daquan W.','(115)823-3780','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (81,'Et Pede Consulting','8587 In, St.','Bridgeport','CT','20663','(348)172-9066','Wooten, Charles H.','(703)224-8589','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (82,'Interdum Industries','P.O. Box 822, 3622 Sagittis. Street','Las Vegas','NV','87351','(499)148-7138','Mckinney, Isaiah E.','(664)996-7807','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (83,'Mattis Semper Dui Associates','143-9739 Adipiscing Rd.','Sacramento','CA','96232','(178)387-5669','Vang, Uriel A.','(736)990-3748','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (84,'Dignissim Tempor Incorporated','8461 Accumsan Rd.','Lowell','MA','58962','(801)723-1899','Ayers, Brooke Y.','(925)648-7509','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (85,'Pharetra Company','534-971 Nec Street','Nampa','ID','91485','(579)358-0490','Anderson, August O.','(648)515-3342','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (86,'Mus Proin Vel Incorporated','Ap #410-5491 Consequat Ave','Pittsburgh','PA','46132','(825)519-0285','Jennings, Xaviera D.','(202)900-0477','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (87,'Lectus Ante Consulting','9382 Scelerisque Rd.','Birmingham','AL','35709','(879)932-6152','Morse, Dorothy C.','(829)682-3042','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (88,'Maecenas LLP','845-4064 Quis Rd.','Overland Park','KS','31455','(192)744-3961','King, Emerson L.','(938)567-3760','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (89,'Felis Nulla Tempor Corporation','649-1749 Nullam Street','Butte','MT','51573','(822)708-8770','Santos, Colby Y.','(998)646-8174','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (90,'Nec Corp.','9010 Lacus. Road','New Orleans','LA','51577','(519)525-8678','Jacobson, Omar V.','(261)443-5734','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (91,'Ornare In Inc.','P.O. Box 828, 4838 A Road','Burlington','VT','70182','(517)750-6237','Griffin, Yen U.','(292)416-9604','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (92,'Suspendisse Aliquet Molestie Company','4906 Interdum Rd.','Clarksville','TN','52118','(894)576-2753','Mcmahon, TaShya I.','(293)619-6883','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (93,'Donec Non Justo Institute','6330 Elit. Road','Portland','ME','19083','(393)203-5985','Woods, Talon G.','(338)533-6921','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (94,'Consequat Industries','P.O. Box 984, 254 Montes, Avenue','North Las Vegas','NV','81669','(995)797-1775','Alexander, Aline Q.','(102)436-3985','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (95,'A Auctor Consulting','P.O. Box 345, 1518 Ut Rd.','Sandy','UT','29191','(884)429-5810','Huber, Nasim F.','(637)968-5840','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (96,'Nunc Nulla Vulputate Consulting','2025 Cursus Road','Wilmington','DE','13072','(458)200-4542','Edwards, Xaviera U.','(530)642-7571','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (97,'Euismod Est Corporation','9905 Sit St.','Provo','UT','36569','(714)558-5777','Merritt, Dale L.','(415)495-9597','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (98,'Convallis Consulting','6399 Pede, Av.','Saint Paul','MN','72082','(111)781-5460','Weaver, Kareem R.','(340)113-3522','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (99,'Enim Consequat Industries','746-4143 Sagittis Rd.','Chandler','AZ','85187','(789)431-3481','Carney, Louis P.','(910)586-5007','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (100,'Laoreet Libero Et Institute','1431 Malesuada Avenue','Honolulu','HI','72115','(795)484-9310','Morales, Mariko D.','(853)953-7948','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (101,'Imperdiet Ornare In LLP','P.O. Box 838, 7754 Magna Av.','Georgia','GA','14521','(771)589-4720','Silva, Pamela I.','(200)804-7934','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (102,'Mattis Company','Ap #856-6885 Semper Av.','Mesa','AZ','85483','(707)983-5718','Lloyd, Myles Z.','(443)739-2241','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (103,'Felis Eget LLP','P.O. Box 151, 3164 Parturient Rd.','Portland','ME','13765','(332)561-2277','Chase, Mary B.','(615)378-7088','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (104,'Consectetuer Rhoncus Foundation','Ap #485-5344 Non, Road','Nashville','TN','22693','(440)286-5260','Flynn, Cailin Q.','(774)393-2884','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (105,'Elit Ltd','Ap #893-6915 Metus. Avenue','Carson City','NV','88564','(405)120-8194','Lewis, Emi I.','(623)213-4073','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (106,'Magna Cras Convallis Corporation','P.O. Box 528, 2234 Fringilla Rd.','Omaha','NE','56542','(598)474-5967','Riley, Harding V.','(355)774-4036','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (107,'Vitae Aliquet LLP','Ap #845-2007 Nunc Av.','Bridgeport','CT','79694','(150)940-6738','Rosario, Prescott S.','(554)515-4604','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (108,'Tellus Aenean Egestas Institute','P.O. Box 507, 4955 Est. St.','Las Vegas','NV','42127','(711)780-6093','Acevedo, Dora A.','(475)466-4735','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (109,'Nam Associates','P.O. Box 189, 3552 Dapibus Avenue','Anchorage','AK','99894','(897)130-4544','Herman, Maia L.','(400)632-9245','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (110,'Molestie PC','P.O. Box 505, 7005 Eu Rd.','Tampa','FL','66575','(563)853-2807','Ortiz, Vincent E.','(338)225-0970','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (111,'Vel Mauris Company','3251 Arcu. St.','Columbus','OH','63114','(654)293-6055','Holt, Nina Y.','(564)242-1361','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (112,'Tristique LLP','P.O. Box 106, 7632 Donec Av.','Racine','WI','52309','(994)177-2058','Cannon, Rama F.','(197)958-6279','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (113,'Mauris Nulla Inc.','Ap #966-3335 Integer St.','Fayetteville','AR','72681','(278)821-9348','Hines, Joan P.','(679)273-2175','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (114,'Et Netus Inc.','507-9356 Vel Road','Anchorage','AK','99604','(324)173-1555','Fuentes, Hayes O.','(374)445-0506','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (115,'Erat Eget Tincidunt Company','P.O. Box 596, 1796 Tincidunt Street','Knoxville','TN','32419','(682)268-2586','Long, Emmanuel C.','(480)992-7184','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (116,'Mus Corporation','Ap #325-7921 Diam. Ave','Grand Island','NE','21855','(284)624-2406','Banks, Tashya L.','(359)569-3891','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (117,'Donec Porttitor Company','602-3484 Nec, St.','Hattiesburg','MS','89599','(473)600-0652','Wynn, Kaye G.','(156)569-5145','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (118,'Dictum Magna Consulting','Ap #193-4892 Orci. St.','Saint Paul','MN','89986','(197)240-4759','Mcleod, Nissim Z.','(755)396-0403','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (119,'Metus Foundation','537-9955 Lacinia St.','Annapolis','MD','34866','(427)359-5386','Fernandez, Alma N.','(588)115-2932','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (120,'Proin Velit Sed Corp.','448-9121 Metus. Road','Birmingham','AL','35442','(990)708-0478','Miller, Brandon X.','(910)625-8603','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (121,'Interdum Feugiat Sed Corporation','7381 Ut Av.','Reading','PA','59333','(441)743-2634','Bowers, Abdul M.','(381)594-9530','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (122,'Aliquam Associates','Ap #805-6511 Mauris Avenue','Cedar Rapids','IA','12846','(684)937-9298','Griffin, Silas H.','(125)409-4408','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (123,'Mi Lacinia Foundation','454 Nulla. Rd.','Boston','MA','26090','(635)598-6705','Porter, Arsenio D.','(824)286-8189','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (124,'Eget Incorporated','242-3202 Ornare Road','Essex','VT','98287','(386)880-6757','Chavez, Kareem T.','(642)181-7398','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (125,'Sed Industries','P.O. Box 732, 1800 Ante Rd.','Juneau','AK','99890','(532)898-2380','Mcpherson, Hanae Z.','(354)828-7313','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (126,'Sem Inc.','P.O. Box 750, 6847 Euismod Street','Minneapolis','MN','59901','(311)961-3556','Mccormick, Hayes Q.','(555)983-8395','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (127,'Sagittis Nullam Associates','Ap #572-1936 Tempor Avenue','Spokane','WA','49125','(445)466-1946','Adkins, Harding V.','(146)476-9036','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (128,'Dui Fusce Institute','205 Elit, Road','Wilmington','DE','88256','(468)349-8174','Nelson, Kellie W.','(590)763-5771','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (129,'Mauris LLP','808-5414 Lectus St.','Biloxi','MS','72054','(512)485-8466','Sampson, Burke Q.','(590)425-1503','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (130,'Risus Donec Nibh Inc.','168-2505 Nisl Rd.','Richmond','VA','72452','(907)401-1599','Fleming, Hamilton G.','(221)775-2129','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (131,'Semper Corporation','140-596 In Road','Springdale','AR','71122','(608)777-5021','Ferrell, Dora X.','(138)228-7339','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (132,'Ac Orci Ut Corporation','P.O. Box 385, 8733 Eros. Road','Laramie','WY','92001','(666)793-5300','Norris, Otto I.','(604)540-2624','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (133,'Tortor LLP','Ap #178-3290 Aenean Av.','Kailua','HI','36949','(315)333-2573','Austin, Raya B.','(755)372-0264','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (134,'A Associates','P.O. Box 545, 1199 Dis Ave','Jackson','MS','12240','(791)307-3975','Henson, Craig A.','(939)161-2981','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (135,'Pede Company','328-4391 Accumsan St.','Fort Worth','TX','27629','(317)578-0359','Andrews, Lila F.','(964)261-7545','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (136,'Etiam Gravida Company','159-1861 Adipiscing St.','Lansing','MI','90363','(121)509-2147','Mcpherson, Graiden W.','(762)301-3507','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (137,'Faucibus Orci Luctus Associates','P.O. Box 820, 6086 Aliquam Ave','Toledo','OH','85239','(391)396-4357','Mann, Yvonne S.','(674)165-6922','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (138,'Non Sapien Inc.','3269 Orci Road','Mobile','AL','36206','(131)346-9945','Dyer, Griffith D.','(151)404-0426','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (139,'Eget Ipsum LLC','P.O. Box 812, 6506 Risus Avenue','Broken Arrow','OK','79969','(388)488-1173','Henson, Isadora L.','(778)819-3648','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (140,'Aliquet Odio Foundation','Ap #691-5598 Consectetuer, Ave','Las Vegas','NV','40368','(492)514-5400','Carey, Tate E.','(716)472-6179','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (141,'Pellentesque Habitant Morbi Company','8324 Euismod Rd.','Lafayette','LA','91856','(858)552-7859','Nixon, Warren Z.','(891)850-8414','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (142,'Sapien Aenean Inc.','P.O. Box 129, 6025 Malesuada Rd.','Reno','NV','33941','(325)414-0928','Orr, Flavia Q.','(317)602-1138','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (143,'Lorem Vehicula Et PC','2269 Diam. Rd.','South Portland','ME','21659','(511)398-7766','Kirkland, Elmo I.','(427)353-8643','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (144,'Risus Morbi Metus Foundation','3806 Elementum Rd.','Billings','MT','61550','(254)100-2316','Flowers, Cassidy Y.','(366)371-9769','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (145,'Et Netus Ltd','P.O. Box 556, 8206 Sagittis. Rd.','Fort Worth','TX','19162','(284)674-3905','Barnett, Lacota J.','(662)408-1448','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (146,'Egestas Company','638-7842 Eget, St.','Virginia Beach','VA','91518','(292)241-3306','Silva, Alden B.','(932)684-5433','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (147,'Justo Proin Non Inc.','5398 Id Rd.','Augusta','GA','76949','(830)631-8667','Daniel, Robert R.','(938)847-5962','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (148,'Laoreet Lectus Associates','P.O. Box 256, 5195 Sit St.','Chicago','IL','40921','(236)904-2447','Oliver, Adam A.','(549)194-7265','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (149,'Eget Laoreet Posuere Industries','799-8638 Dictum Ave','Reading','PA','23363','(999)830-2513','Ball, Anika H.','(225)124-5253','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (150,'Nec LLC','2191 Torquent Av.','Bozeman','MT','89644','(838)581-2356','Santiago, Orlando C.','(470)739-1319','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (151,'Et Netus Incorporated','747-5057 Pede Rd.','San Francisco','CA','90805','(502)317-8726','Wall, Caleb C.','(615)236-7299','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (152,'Mauris Vel Corporation','570-2157 Ultrices Ave','Clarksville','TN','64172','(594)102-8884','Dunn, Theodore L.','(510)417-6370','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (153,'Morbi Metus Consulting','P.O. Box 107, 1051 Mollis Avenue','Eugene','OR','20377','(629)855-1144','Knowles, Eleanor S.','(333)641-9633','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (154,'Auctor LLC','P.O. Box 477, 2203 Ultrices Av.','Columbia','MO','34984','(604)506-4010','Williamson, Erich U.','(355)313-8292','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (155,'Cursus Et Magna Incorporated','965-3083 Tortor. St.','Colchester','VT','65108','(715)802-0961','Newman, Clinton W.','(650)910-3950','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (156,'Pede Cras Vulputate Ltd','P.O. Box 795, 1972 Id, Rd.','Huntsville','AL','36963','(627)485-2177','Velazquez, Maile H.','(184)165-2969','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (157,'Dui Nec Tempus Institute','P.O. Box 931, 429 Lacinia Road','Savannah','GA','51160','(654)597-7299','Waller, Hilda Z.','(954)716-1139','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (158,'Et Rutrum Eu Corporation','P.O. Box 565, 320 Libero. Rd.','Casper','WY','46701','(661)427-3191','Knowles, Baker M.','(235)930-3094','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (159,'Ligula Inc.','9487 Nisi Ave','Auburn','ME','90649','(869)347-7933','Crosby, Kerry B.','(874)332-5137','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (160,'Justo Ltd','482-5249 Malesuada Rd.','Grand Island','NE','39183','(153)556-1950','Anderson, Holmes A.','(896)262-1002','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (161,'Morbi Tristique Company','611-7373 Cras Rd.','Denver','CO','65945','(670)456-7310','Drake, Zahir R.','(962)512-0603','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (162,'Interdum Nunc LLP','6668 Egestas Rd.','Fairbanks','AK','99963','(454)745-8539','Richardson, Nicholas J.','(326)196-3971','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (163,'Ut LLC','753-5466 Amet, Avenue','Bellevue','WA','35942','(975)349-9517','Battle, Maryam D.','(659)275-3577','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (164,'In Faucibus Morbi Incorporated','979-8192 Pede Av.','Cheyenne','WY','96529','(694)405-8811','Carlson, Uriel B.','(832)318-0014','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (165,'Mauris Non Industries','381-6525 Ridiculus Av.','St. Petersburg','FL','97919','(647)921-9794','White, Rudyard Y.','(247)186-1199','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (166,'Molestie Pharetra Corporation','888 Odio Avenue','Chandler','AZ','86331','(682)682-1312','Duke, Raymond G.','(269)260-0709','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (167,'Vel Convallis Industries','P.O. Box 174, 3799 Eget, Ave','Jacksonville','FL','47558','(455)959-8444','Rich, Hunter V.','(467)881-9844','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (168,'Sit Associates','P.O. Box 618, 9116 Morbi Street','Lansing','MI','53445','(466)297-0513','Stanton, Danielle A.','(908)581-1290','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (169,'Suscipit Est Ac LLC','Ap #132-5340 Nullam Street','Clarksville','TN','62649','(762)344-3316','Crane, Aaron I.','(620)129-9897','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (170,'Ipsum Primis Associates','5167 Vel Av.','Boston','MA','50751','(662)576-2165','Fisher, Colorado N.','(969)713-5842','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (171,'Cursus Corporation','8631 Auctor Rd.','Kansas City','KS','96503','(741)776-0556','Briggs, Basia O.','(464)515-2594','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (172,'Libero Et Limited','P.O. Box 944, 5778 A, Street','Tulsa','OK','46568','(999)330-6322','Hahn, Kylynn K.','(321)656-9794','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (173,'Libero Donec Consectetuer Limited','303-1395 Odio Rd.','Little Rock','AR','71216','(226)518-4993','Benton, Willow R.','(553)537-0682','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (174,'Lorem Eget Mollis Inc.','6158 At St.','Baltimore','MD','66694','(220)846-3993','Reynolds, Sonia H.','(652)109-6720','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (175,'Morbi Metus Vivamus Inc.','7565 Sem. Rd.','New Orleans','LA','76209','(734)800-7375','Harris, Neville L.','(763)986-5046','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (176,'Sed Diam Lorem LLC','P.O. Box 700, 3266 Dui Avenue','Sandy','UT','89176','(412)757-8821','Anthony, Shaine A.','(356)609-9207','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (177,'Egestas Duis Ac Incorporated','P.O. Box 251, 2364 Interdum. Road','Idaho Falls','ID','38815','(809)761-0235','Burke, Duncan G.','(786)421-2693','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (178,'Sed Pede Inc.','969-2393 Et Street','Wichita','KS','89877','(986)493-3431','Hahn, Nero D.','(587)654-6034','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (179,'Fusce Fermentum Fermentum Company','P.O. Box 413, 4895 Dictum Ave','Henderson','NV','89573','(220)954-5105','Sykes, Maxine B.','(972)524-5393','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (180,'Eu Ultrices Consulting','Ap #366-895 Egestas. Rd.','Racine','WI','15478','(836)554-2542','Cardenas, Inez Z.','(988)104-1784','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (181,'Natoque Penatibus Corporation','Ap #330-3017 Commodo Ave','San Francisco','CA','90484','(245)593-6074','Koch, Sage X.','(951)842-0697','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (182,'Ornare Industries','5066 Sapien St.','Gary','IN','70145','(830)682-1664','Peck, Ori J.','(473)298-9873','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (183,'Id Risus Quis Incorporated','1308 Nascetur Av.','Kailua','HI','24794','(252)565-2390','Clarke, Ebony E.','(243)983-3156','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (184,'Ridiculus Company','Ap #563-2727 Nibh. Rd.','Paradise','NV','31320','(724)210-6377','Cohen, Upton R.','(207)359-4067','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (185,'Sed Corporation','P.O. Box 383, 1112 Eu Rd.','Kearney','NE','48314','(347)763-2737','Johnston, Willa U.','(755)673-6079','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (186,'Pulvinar Corporation','P.O. Box 242, 2276 Pede, Rd.','Rockford','IL','20417','(467)582-7021','Wood, Stewart V.','(178)703-1420','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (187,'Leo Industries','8037 Ac Rd.','Sacramento','CA','90291','(653)933-9975','Baldwin, Nicole J.','(754)859-2252','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (188,'Eget Foundation','Ap #859-8065 Eu Av.','San Francisco','CA','91208','(473)357-5030','Brady, Tate T.','(212)909-0506','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (189,'Tristique Pharetra Foundation','1793 Facilisis, Avenue','Boise','ID','73356','(102)681-0397','Chambers, Medge D.','(608)265-9788','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (190,'Sed Consulting','Ap #894-108 Purus St.','Columbus','GA','70316','(749)788-2000','Wilkerson, Lavinia W.','(852)337-4345','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (191,'Pede Praesent Incorporated','296-8280 Sed Road','San Francisco','CA','94009','(631)864-3427','Fitzgerald, Lillian M.','(502)710-2662','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (192,'Sem Eget Limited','Ap #679-7736 Est, St.','Green Bay','WI','51374','(342)500-1013','Hubbard, Alice R.','(761)347-2969','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (193,'Phasellus Nulla Consulting','P.O. Box 861, 6930 Phasellus Avenue','Kailua','HI','62868','(319)352-7825','Haney, Kennan W.','(864)132-8013','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (194,'Nunc Lectus Institute','Ap #416-825 Feugiat St.','Bangor','ME','56012','(492)710-2154','Berry, Bree B.','(515)564-3467','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (195,'Pellentesque Corp.','1776 Nec Rd.','Madison','WI','25576','(991)408-2687','Schmidt, Vivien W.','(646)176-5184','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (196,'Lacus Ltd','953-2568 Quis Av.','Denver','CO','41641','(866)143-0079','Carson, Brandon F.','(334)222-6123','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (197,'Pede Sagittis Corp.','Ap #972-6685 Ac, Rd.','Omaha','NE','10196','(825)875-6121','Hunt, Rhoda K.','(494)515-6034','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (198,'Morbi Accumsan Laoreet Associates','577-2907 Volutpat. Ave','Salt Lake City','UT','72014','(922)918-8476','Avery, Dean E.','(964)259-1894','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (199,'Ligula Aenean Gravida Foundation','Ap #252-4814 Cursus Road','Worcester','MA','68742','(196)804-6451','West, Chandler Z.','(563)161-2522','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (200,'Sagittis Semper Nam Associates','Ap #603-6104 Posuere Ave','St. Petersburg','FL','59853','(596)635-7646','Hartman, Frances E.','(489)871-0773','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (201,'Mi Ltd','Ap #387-3987 Sem Rd.','Bowling Green','KY','28246','(446)402-6087','Murphy, Constance H.','(225)712-6424','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (202,'Dui Company','474-2951 Sem, St.','Detroit','MI','39375','(659)501-7169','Huffman, Emerald T.','(273)356-6992','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (203,'Et Ultrices Posuere Company','Ap #819-3194 Tempor Rd.','Springdale','AR','71785','(865)161-7444','Phelps, Ivana K.','(800)355-7079','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (204,'Nec Foundation','P.O. Box 632, 8345 Ante Rd.','Gresham','OR','91228','(744)274-5873','Mitchell, Dorian Q.','(993)498-8657','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (205,'Eget Institute','484-5038 Erat, Av.','West Jordan','UT','37755','(555)731-7409','Day, Evan M.','(829)540-1642','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (206,'Mi Aliquam Foundation','Ap #939-7581 Amet St.','Nashville','TN','55350','(169)506-9280','Vinson, Alexander E.','(701)110-8885','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (207,'Et Magnis Dis Corporation','8969 Adipiscing Avenue','Columbus','OH','67166','(124)387-5465','Morris, Adam W.','(788)870-1912','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (208,'Quis Arcu Vel Foundation','537-5600 Magnis Ave','Philadelphia','PA','70409','(799)717-4319','Roach, Rashad W.','(572)872-7390','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (209,'Vel Ltd','P.O. Box 860, 3062 Luctus Road','Kansas City','MO','62831','(926)585-8215','Mcdonald, Daphne Q.','(512)606-5812','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (210,'Enim Mi Tempor Associates','362-5077 Erat Street','Toledo','OH','89083','(826)291-4917','Fry, Talon R.','(670)242-4035','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (211,'Pretium Corp.','7180 Vivamus Av.','Des Moines','IA','13157','(306)585-2049','Stark, Lester Y.','(567)457-4733','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (212,'Egestas Institute','Ap #580-4494 Natoque Rd.','Orlando','FL','15809','(903)322-3649','Sutton, Dolan Z.','(841)885-8058','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (213,'Lacus Foundation','258-6439 Metus Street','Ketchikan','AK','99852','(954)538-4219','Rodriguez, Elton G.','(633)170-0432','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (214,'Risus Foundation','2863 Sagittis. Rd.','Carson City','NV','79165','(943)828-3321','Howe, Lacey X.','(728)999-1323','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (215,'Ligula Nullam Enim Corporation','8099 Molestie Street','Madison','WI','23153','(263)146-8486','Harrell, Hermione L.','(623)478-7226','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (216,'Odio Auctor Company','9378 Non Ave','San Diego','CA','93058','(307)834-9829','Anderson, Hayden G.','(680)986-8633','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (217,'Lacus Foundation','Ap #846-8930 Velit. Av.','Laramie','WY','13394','(834)985-7476','Morales, Jessica R.','(987)951-6357','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (218,'Magna Lorem PC','241-2697 Mus. St.','Lansing','MI','28804','(825)634-9427','Clayton, Anne Z.','(758)810-1392','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (219,'Risus Odio Auctor Foundation','P.O. Box 118, 9500 Pede Rd.','Topeka','KS','65484','(701)421-8747','Duran, Nero U.','(173)775-2579','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (220,'Nisl Elementum Purus Inc.','912-6365 Consectetuer Rd.','Eugene','OR','30466','(238)344-8795','Price, Lael F.','(689)903-1708','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (221,'Vestibulum Massa Rutrum PC','Ap #438-2243 Sed, Av.','Shreveport','LA','74969','(290)431-7021','Farley, Emmanuel B.','(187)441-5551','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (222,'Ultricies Limited','P.O. Box 131, 2003 Sem, Road','West Valley City','UT','33492','(837)366-0202','Ramos, Abel W.','(938)355-7175','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (223,'Non Leo Institute','275-6601 Nulla Ave','Georgia','GA','51114','(166)659-8513','Benton, Colby P.','(797)442-5274','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (224,'Eu Erat Semper Inc.','P.O. Box 655, 9749 Duis Rd.','Baton Rouge','LA','74481','(746)134-6015','Bruce, Ezra X.','(928)596-4078','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (225,'Risus Quisque Libero Limited','P.O. Box 820, 9054 Euismod St.','Tacoma','WA','94868','(281)595-1789','Pittman, Erin U.','(697)558-2698','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (226,'Mi Felis Adipiscing LLP','Ap #898-6415 Euismod Rd.','Juneau','AK','99952','(361)749-7609','Gray, Leandra V.','(932)173-0357','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (227,'Blandit Mattis Cras Foundation','236-6401 Enim, Ave','Duluth','MN','43955','(258)885-5451','Butler, Heidi T.','(892)476-6870','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (228,'Aliquet Associates','1232 In Street','Reno','NV','94810','(824)632-9322','Black, Kiayada D.','(867)354-4452','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (229,'Massa Corporation','P.O. Box 528, 7810 A Street','Frederick','MD','50871','(751)153-6979','Frederick, Idona K.','(903)397-0933','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (230,'Mauris Blandit Consulting','P.O. Box 474, 2527 Interdum. Road','Nampa','ID','57082','(925)271-0743','Lester, Dominic R.','(686)816-0429','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (231,'Quam A Corp.','454-2938 At, Ave','Paradise','NV','45032','(463)940-8678','Ballard, Sandra M.','(574)394-4940','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (232,'Sollicitudin LLC','2570 Neque Rd.','Grand Rapids','MI','80949','(824)765-8279','Alford, Leo L.','(433)460-4057','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (233,'Eget Consulting','P.O. Box 109, 5218 Nulla Av.','Cambridge','MA','66667','(905)420-5244','Dillon, Farrah N.','(331)791-5436','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (234,'Massa Quisque Corp.','5478 Proin Avenue','Bridgeport','CT','81580','(972)740-8045','Fischer, Hayden S.','(169)631-2551','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (235,'Ligula Consectetuer Corporation','P.O. Box 154, 6680 Aliquam Avenue','Wichita','KS','39014','(224)471-6405','Mcmahon, Willow M.','(945)350-8495','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (236,'Sagittis Consulting','9899 Placerat St.','Boston','MA','85091','(403)678-3396','Oneal, Jordan U.','(878)622-7396','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (237,'Praesent Interdum Ligula Limited','2492 Nec Av.','Salt Lake City','UT','17072','(671)139-5626','Underwood, Eden I.','(670)363-3619','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (238,'Non Magna Industries','6435 Volutpat Ave','Fayetteville','AR','72847','(174)834-0508','Savage, Kieran T.','(965)946-1072','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (239,'Vel Faucibus Id Associates','P.O. Box 340, 3245 Dictum Av.','Tucson','AZ','86634','(397)873-9429','Stevens, Sopoline K.','(814)402-3838','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (240,'Metus Eu Erat Inc.','202-8768 Risus Street','Erie','PA','94805','(385)453-4675','Mack, Jeanette X.','(652)253-9375','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (241,'Morbi Tristique PC','7718 Urna St.','Madison','WI','14924','(652)941-7232','Abbott, Jocelyn E.','(400)275-4860','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (242,'Volutpat Nunc Sit Foundation','8781 Donec Avenue','Bellevue','NE','31351','(974)942-1757','Benjamin, Jaime M.','(806)977-0646','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (243,'Arcu Sed Corp.','215-7533 Dictum Av.','Springfield','MO','15096','(971)385-2933','Bright, Josiah B.','(848)197-9401','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (244,'Ut LLC','P.O. Box 848, 3323 Tempor Rd.','Grand Island','NE','40950','(919)814-3330','Mcclure, Alexa I.','(996)186-7385','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (245,'Sem Magna Limited','Ap #760-6041 Auctor Road','Billings','MT','93390','(850)682-5802','Hernandez, Lesley Z.','(886)977-5666','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (246,'Nulla Foundation','837-9458 Fringilla Rd.','Green Bay','WI','62163','(757)955-0914','Lancaster, Autumn P.','(285)509-9698','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (247,'Quam Ltd','P.O. Box 974, 3051 Aliquam Rd.','Nampa','ID','33848','(289)979-2935','Justice, Reagan U.','(538)313-0988','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (248,'Malesuada Fames LLC','6948 Vel, Rd.','Biloxi','MS','74911','(614)324-4123','Blake, Arsenio L.','(496)533-5754','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (249,'Leo LLP','7640 Enim. Rd.','Helena','MT','66668','(686)108-6447','Wilcox, James F.','(144)146-2614','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (250,'Eros Associates','P.O. Box 427, 1052 Amet Av.','Miami','FL','39722','(158)436-1671','Frost, Brian Y.','(441)553-4857','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (251,'Aliquam Erat Inc.','724-6961 Sem, Road','Memphis','TN','70700','(549)399-6508','Herrera, Ramona D.','(654)516-3248','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (252,'Diam Lorem Auctor Corporation','P.O. Box 360, 8976 Aliquet Road','Bozeman','MT','78386','(717)302-2018','Jimenez, Martina P.','(989)389-1517','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (253,'Convallis Ligula Institute','P.O. Box 808, 5970 Neque Av.','Virginia Beach','VA','31992','(626)879-6335','Roberts, Octavius M.','(858)359-6327','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (254,'Nullam LLC','541-6401 Sodales Ave','Wilmington','DE','36308','(974)761-2893','Castillo, Allegra V.','(454)480-2461','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (255,'Non Lacinia PC','2331 Ullamcorper Ave','Lawton','OK','27767','(741)751-5632','Massey, Ursa I.','(281)712-1251','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (256,'Sagittis Ltd','Ap #441-2692 Pellentesque Av.','Billings','MT','77890','(796)596-8116','Clements, Caryn I.','(724)725-4452','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (257,'Sed Auctor Odio Consulting','Ap #186-7353 Velit. St.','Billings','MT','72660','(896)221-8300','Hicks, Raymond S.','(792)474-5349','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (258,'Arcu Institute','P.O. Box 163, 4049 Fringilla Road','South Bend','IN','13760','(646)160-7401','Vinson, Nissim G.','(651)695-2642','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (259,'Est Mauris Consulting','Ap #331-2038 Egestas Av.','Huntsville','AL','36196','(183)763-8627','Griffin, Igor B.','(376)181-7685','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (260,'Pede Suspendisse Inc.','156-4575 Vitae St.','Sacramento','CA','90123','(539)113-4350','Roberts, Harding Q.','(892)283-6601','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (261,'Enim Ltd','718-8251 Sit St.','Lawton','OK','49535','(821)833-2101','Dudley, Gary A.','(937)153-1147','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (262,'Integer Mollis Associates','967-417 Accumsan Av.','Sandy','UT','83745','(601)585-1828','Sheppard, Bianca M.','(847)465-2020','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (263,'Lorem Luctus Ut Foundation','4795 Aliquet St.','New Orleans','LA','68047','(947)642-1284','Scott, Timon N.','(606)147-7812','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (264,'Quis Turpis Vitae LLC','Ap #696-5531 Arcu Street','Oklahoma City','OK','53290','(888)590-0531','Hester, Perry Z.','(372)880-6592','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (265,'Enim Non Nisi Consulting','Ap #565-8134 Cursus Avenue','Wichita','KS','79201','(451)195-1020','Mullen, Halee J.','(623)343-4733','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (266,'Id Ante Dictum Company','Ap #703-1718 Curabitur Rd.','Akron','OH','34971','(924)671-6865','Moore, Rae F.','(633)729-8445','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (267,'Consectetuer Cursus Et Corp.','967-5395 Donec Av.','Dover','DE','55267','(206)694-4703','Wade, Madeson E.','(678)413-6350','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (268,'Tincidunt Company','539-2208 Nisi. St.','Henderson','NV','91053','(198)956-5657','Powell, Joshua T.','(117)385-8167','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (269,'Arcu Ltd','P.O. Box 736, 2278 Faucibus Avenue','Broken Arrow','OK','87836','(778)918-4948','Huber, Whilemina K.','(909)882-9219','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (270,'Nec Industries','944-7672 Arcu St.','Atlanta','GA','69235','(674)775-3383','Quinn, Abra Z.','(587)252-5237','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (271,'Pede Malesuada Vel Company','Ap #242-3984 Lectus St.','Casper','WY','87487','(974)473-4881','Pitts, Rooney B.','(541)908-2059','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (272,'Nostra Per Inc.','426-5760 Arcu. St.','Idaho Falls','ID','69412','(468)834-4001','Vaughan, Colette K.','(709)359-6462','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (273,'Turpis Corporation','P.O. Box 741, 2348 Vivamus Street','Fayetteville','AR','71372','(112)489-8928','Hansen, Aimee Q.','(561)947-0265','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (274,'Orci Phasellus Associates','Ap #426-2874 Eleifend Rd.','Worcester','MA','21006','(162)329-0796','Lynn, Allen Y.','(798)591-9467','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (275,'Eu Tellus LLP','Ap #638-2926 Nulla. Ave','Spokane','WA','43355','(925)654-8183','Joyce, Kermit X.','(164)603-6363','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (276,'Vitae Odio Sagittis Institute','253-5259 Urna, Ave','Aurora','CO','37368','(450)110-2000','Ramirez, Ashton P.','(337)299-5027','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (277,'Quisque Varius Nam Corp.','P.O. Box 942, 4952 Vivamus Street','Cambridge','MA','66490','(880)458-4604','Butler, Simon U.','(923)405-7441','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (278,'Arcu PC','4006 Non Rd.','Lexington','KY','56241','(793)940-2336','Pickett, Driscoll G.','(187)267-4592','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (279,'Viverra Maecenas Iaculis PC','183-8417 Ut, Av.','Clarksville','TN','86245','(634)614-5379','Quinn, Reese T.','(116)753-1526','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (280,'Diam Pellentesque Habitant LLC','227-7589 Consectetuer St.','Richmond','VA','68704','(138)159-6080','Bush, Ifeoma S.','(624)213-9543','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (281,'Cursus Ltd','P.O. Box 285, 3018 Scelerisque Road','Orlando','FL','31283','(554)139-1205','Duncan, Laura R.','(677)112-7762','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (282,'Cursus PC','Ap #391-7529 Aliquam Av.','Newark','DE','50049','(422)535-0635','Michael, Orlando T.','(320)721-0991','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (283,'Magna A Company','P.O. Box 906, 5195 Nulla St.','Olympia','WA','45866','(985)146-2343','Galloway, Shana R.','(251)590-1618','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (284,'Ut PC','154-4065 Scelerisque Rd.','Montgomery','AL','35970','(242)112-8979','Ortiz, Florence G.','(818)454-6372','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (285,'Dapibus Company','Ap #971-6413 Mi Rd.','San Diego','CA','91298','(839)998-7117','Keith, Maia O.','(377)247-7516','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (286,'Nulla Integer Industries','Ap #487-1971 A St.','Fort Wayne','IN','66230','(326)607-3399','Russell, Damon T.','(422)698-5145','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (287,'Ut Company','P.O. Box 462, 8287 Lacinia St.','Independence','MO','74574','(382)998-0994','Carrillo, Caldwell H.','(231)758-2576','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (288,'Et Risus Quisque LLC','4781 Donec Road','Newport News','VA','24983','(568)214-7332','Burt, Curran J.','(383)473-6983','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (289,'Vulputate Associates','660-1608 Et Road','Lafayette','LA','34292','(427)793-9452','Johns, Melissa S.','(313)937-1047','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (290,'Proin Company','Ap #707-2758 Sed Street','San Antonio','TX','16246','(980)991-0765','Blackwell, Cruz Z.','(792)183-6616','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (291,'Urna Justo Faucibus PC','Ap #528-1397 Quis Street','Phoenix','AZ','85055','(954)553-9077','Bowen, Hayden O.','(434)272-3693','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (292,'Egestas Company','P.O. Box 272, 4499 Ultricies Av.','Racine','WI','11463','(896)546-5538','Albert, Pandora J.','(189)353-9594','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (293,'Etiam Imperdiet Dictum Associates','2342 Magna. Street','Hilo','HI','71080','(168)311-6959','Barnett, Stewart B.','(632)747-3298','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (294,'Sollicitudin Adipiscing Ligula Corp.','P.O. Box 696, 5425 Ante Road','Newark','DE','80082','(169)792-2088','Solomon, Belle C.','(105)719-0833','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (295,'Tempor Lorem LLP','681-1059 Semper Road','Hartford','CT','35109','(164)213-3093','Austin, Alec W.','(408)259-1560','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (296,'Fringilla Inc.','5498 Ullamcorper Rd.','Denver','CO','89766','(604)255-1688','Mcdowell, Whoopi F.','(677)260-7708','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (297,'Venenatis Vel Faucibus Company','P.O. Box 106, 855 Sagittis Rd.','Davenport','IA','38449','(825)199-6854','Gomez, Francis X.','(657)220-5514','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (298,'Magna Corp.','6758 Pretium Av.','Chicago','IL','44316','(598)947-8242','Watts, Duncan N.','(996)180-2587','N');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (299,'Consectetuer Consulting','Ap #296-4606 Nunc Av.','Akron','OH','22565','(250)712-7248','Henson, Laurel O.','(754)131-8168','Y');
|
||||
INSERT INTO custmast (CustID,Name,Addr,City,State,Zip,CorpPhone,AcctMgr,AcctPhone,Active) VALUES (300,'Eu Nibh LLP','212-1734 Pellentesque. Street','Madison','WI','52631','(993)144-3391','Walsh, Kiona L.','(346)159-2488','N');
|
||||
-- Insert some data --
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (1, 'Aliquet Nec Imperdiet Limited', 'Ap #766-3317 Penatibus St.', 'Des Moines', 'IA', '90911-1234', '(925)276-2778', 'Simon, Gannon D.', '(118)850-9146', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (2, 'Nam Porttitor LLP', '802-7392 Elit, Rd.', 'Rockville', 'MD', '60342-2222', '(734)960-9274', 'Kirk, Hamish U.', '(435)357-0265', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (3, 'Nibh Dolor Company', 'P.O. Box 103, 9218 Vivamus Avenue', 'Auburn', 'ME', '15762-0001', '(714)825-5082', 'Norman, Abbot R.', '(757)158-0941', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (4, 'Blandit At Nisi Industries', 'P.O. Box 956, 3682 Vehicula Rd.', 'Nampa', 'ID', '59290', '(461)556-6373', 'Hobbs, Benedict E.', '(431)716-6353', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (5, 'Tincidunt Neque PC', '694-2001 Pede Av.', 'Tulsa', 'OK', '59509', '(846)992-8625', 'Rollins, Adria O.', '(385)989-8252', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (6, 'Urna Nunc Company', 'Ap #424-1044 A Road', 'Pittsburgh', 'PA', '18268', '(766)830-5390', 'Buck, Wallace L.', '(633)641-9522', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (7, 'Orci In Industries', 'Ap #881-3390 Libero Street', 'Los Angeles', 'CA', '91019', '(886)780-7872', 'Bray, Kirk F.', '(514)471-2753', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (8, 'Consequat Enim Diam Consulting', '216-1528 Donec Street', 'Springdale', 'AR', '72663', '(839)285-0215', 'Lynn, Cameron S.', '(747)288-2822', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (9, 'Feugiat Tellus LLC', '9523 Mi Street', 'Lakewood', 'CO', '62383', '(111)938-1994', 'Ortega, Hamilton M.', '(465)109-1390', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (10, 'Aliquet Inc.', 'P.O. Box 571, 7610 Luctus Av.', 'Cedar Rapids', 'IA', '45367', '(216)472-9463', 'Ward, Lana C.', '(872)946-7521', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (11, 'Molestie Sed LLP', '1674 Sollicitudin Av.', 'Hilo', 'HI', '68029', '(574)121-7503', 'Potter, Elvis E.', '(673)782-6467', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (12, 'Magna Phasellus Dolor Industries', '450-4449 Tristique Street', 'Bloomington', 'MN', '94856', '(361)342-3673', 'Jackson, Abdul P.', '(192)658-9848', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (13, 'Lobortis Ultrices Vivamus Corporation', 'P.O. Box 768, 3596 Ultrices St.', 'Joliet', 'IL', '77259', '(343)312-1834', 'Rosales, Igor Y.', '(794)353-6679', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (14, 'Ornare Libero Limited', 'Ap #606-6238 Nascetur Street', 'South Bend', 'IN', '95819', '(131)941-6075', 'Evans, Amos Q.', '(932)772-2967', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (15, 'Facilisis Non LLC', '4546 Nonummy. Avenue', 'Tucson', 'AZ', '86022', '(205)541-6051', 'Kent, Idola E.', '(128)579-5713', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (16, 'Sed Sem Associates', 'P.O. Box 348, 4344 Ut Avenue', 'Evansville', 'IN', '89459', '(776)548-5799', 'Hendricks, Ima G.', '(732)704-7588', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (17, 'Velit Eu Sem LLP', '3906 Fringilla Street', 'Newport News', 'VA', '55708', '(340)991-5817', 'Floyd, Blythe S.', '(936)846-3564', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (18, 'Lobortis Quam Incorporated', '5326 Adipiscing St.', 'Jackson', 'MS', '48255', '(631)752-8094', 'Case, Miriam X.', '(864)985-5070', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (19, 'Purus Corporation', '1854 Congue Avenue', 'Montgomery', 'AL', '35900', '(370)304-5277', 'Short, Ainsley L.', '(827)735-8081', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (20, 'Phasellus Nulla Foundation', '2286 Netus Av.', 'Kenosha', 'WI', '56417', '(787)658-6996', 'Blackburn, Silas A.', '(183)692-6381', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (21, 'Ut PC', 'Ap #213-8564 In Street', 'Gary', 'IN', '75450', '(141)583-4347', 'Perry, Jacob V.', '(108)231-4465', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (22, 'Facilisis Associates', '6618 Fermentum Avenue', 'Biloxi', 'MS', '12944', '(913)664-0530', 'Cobb, Brooke I.', '(264)132-0926', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (23, 'Aliquam Ornare Libero Associates', 'Ap #954-6676 Nec, St.', 'Lexington', 'KY', '75787', '(204)867-3398', 'Medina, Chava X.', '(995)553-9545', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (24, 'Auctor Limited', 'P.O. Box 933, 7675 Donec Avenue', 'Gillette', 'WY', '91423', '(497)527-1165', 'Chan, Wanda E.', '(614)703-5620', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (25, 'Massa Incorporated', 'P.O. Box 235, 5477 Integer Ave', 'Clarksville', 'TN', '47955', '(798)950-4857', 'Conner, Hector R.', '(705)926-0634', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (26, 'Mi Tempor Lorem Incorporated', '677-2048 Sed St.', 'Sacramento', 'CA', '93423', '(497)626-5152', 'Logan, Mohammad W.', '(829)256-1335', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (27, 'Ornare Placerat Institute', '235-4908 Tellus, Rd.', 'Madison', 'WI', '56718', '(811)498-7067', 'Waters, Gretchen Y.', '(308)910-9423', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (28, 'Interdum Company', '802-5717 Phasellus Street', 'Saint Louis', 'MO', '17666', '(133)564-5900', 'Morrison, Phillip V.', '(907)524-5571', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (29, 'Orci Tincidunt Industries', 'Ap #847-7654 Enim. Rd.', 'Athens', 'GA', '92897', '(881)380-5393', 'Carter, Michael I.', '(275)480-9667', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (30, 'Vehicula Aliquet Libero LLP', 'P.O. Box 578, 5008 Cum Road', 'Jacksonville', 'FL', '81238', '(542)153-0544', 'Tillman, Peter N.', '(867)376-6599', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (31, 'Nulla Integer Urna Industries', '912-5887 Nullam Street', 'Nashville', 'TN', '77059', '(332)224-6669', 'Burnett, Felix U.', '(434)629-6488', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (32, 'Nec Quam Corporation', 'P.O. Box 154, 3604 Et, Av.', 'Huntsville', 'AL', '35819', '(826)307-4616', 'Sargent, Cade J.', '(561)224-4962', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (33, 'Nunc PC', '9999 Enim. St.', 'Gillette', 'WY', '82506', '(944)972-3972', 'Church, Nelle U.', '(904)869-4140', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (34, 'Sem Vitae Aliquam Corp.', 'Ap #420-8986 Malesuada Rd.', 'Butte', 'MT', '79755', '(270)167-4832', 'Mcgowan, Quincy N.', '(779)341-1591', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (35, 'Orci In Consequat LLP', '740-7126 Felis, St.', 'Fort Collins', 'CO', '68676', '(778)891-4101', 'Small, Ruth U.', '(921)657-3934', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (36, 'Dolor Corp.', 'Ap #801-6511 Aliquet Ave', 'Kansas City', 'KS', '64411', '(892)390-5296', 'Kane, Frances W.', '(834)431-8658', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (37, 'Magna A Corp.', 'Ap #284-9461 Aliquam Ave', 'Lakewood', 'CO', '81047', '(910)312-7289', 'Dalton, Shelley R.', '(595)444-9009', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (38, 'Adipiscing PC', '820-1203 Sed St.', 'Mesa', 'AZ', '86170', '(451)221-0789', 'Pennington, Benjamin C.', '(786)462-1623', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (39, 'Ac Consulting', 'Ap #383-9621 Purus. Avenue', 'Idaho Falls', 'ID', '49889', '(794)126-7807', 'Baldwin, Lars N.', '(569)859-5215', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (40, 'Tristique Incorporated', 'Ap #827-3553 Donec Ave', 'Sterling Heights', 'MI', '42600', '(167)667-4284', 'Rowland, Jasper B.', '(463)358-6987', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (41, 'Erat Vivamus Nisi Incorporated', 'P.O. Box 278, 9160 Lectus Rd.', 'Reno', 'NV', '33080', '(318)799-8771', 'Harris, Cleo D.', '(492)880-1820', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (42, 'Donec Luctus LLP', 'P.O. Box 169, 6532 Sodales St.', 'Des Moines', 'IA', '38021', '(271)876-5512', 'Preston, Gannon M.', '(370)225-2071', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (43, 'Vestibulum Massa Institute', '307-9060 Sagittis. Avenue', 'Montpelier', 'VT', '54916', '(474)850-1435', 'Clarke, Nehru J.', '(894)717-1606', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (44, 'Sodales Purus In LLC', '1743 Nec Ave', 'College', 'AK', '99892', '(193)148-4612', 'Mcbride, Uriel Y.', '(182)602-9115', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (45, 'Amet Consulting', '4202 Tincidunt. Street', 'Gaithersburg', 'MD', '44268', '(220)252-6945', 'Lucas, Edward Y.', '(689)169-5086', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (46, 'Suscipit Associates', '276-1737 Per Street', 'Nampa', 'ID', '96620', '(789)274-9584', 'Curry, Chloe C.', '(445)741-4363', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (47, 'Ultrices Foundation', 'Ap #625-5761 Et, Rd.', 'Springfield', 'MA', '87864', '(941)174-3922', 'Chambers, Elizabeth J.', '(316)971-9800', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (48, 'Enim Nisl Corporation', '733-9998 Vulputate, Av.', 'Athens', 'GA', '67774', '(151)196-0295', 'Booker, Abel X.', '(248)637-6665', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (49, 'Lorem Donec Associates', 'P.O. Box 623, 1978 Nisi. Ave', 'Kansas City', 'MO', '10931', '(711)195-6562', 'Burton, Venus U.', '(123)268-3429', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (50, 'At Institute', '4577 Ipsum. Rd.', 'Waterbury', 'CT', '89504', '(375)827-8303', 'Holt, Chloe W.', '(864)417-0798', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (51, 'Enim Diam LLP', '984 In Street', 'Richmond', 'VA', '55278', '(664)928-0976', 'Bray, Lenore O.', '(126)138-7218', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (52, 'Cras Company', 'P.O. Box 965, 9458 Ac Av.', 'Juneau', 'AK', '99810', '(912)380-4143', 'Melton, Moses E.', '(793)731-4692', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (53, 'Lobortis Mauris Inc.', 'Ap #103-6408 Interdum. St.', 'Hartford', 'CT', '37494', '(527)710-7494', 'Knight, Jolie G.', '(687)144-8097', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (54, 'Aliquam Foundation', '803-640 Ullamcorper Av.', 'San Antonio', 'TX', '84021', '(708)422-9634', 'Montgomery, Jenette P.', '(303)230-6496', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (55, 'Ut Lacus LLP', 'Ap #169-5989 Dui, Rd.', 'Rutland', 'VT', '76521', '(487)139-0144', 'Newton, Donna X.', '(247)709-0096', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (56, 'Elementum Purus Incorporated', '763-9249 Libero Road', 'Augusta', 'GA', '40707', '(677)521-1866', 'Parker, Preston O.', '(187)588-2854', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (57, 'Eu Tellus LLP', '5764 Tortor, Rd.', 'Columbia', 'MO', '71597', '(823)237-6689', 'Knowles, Ferdinand Y.', '(440)288-0230', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (58, 'Eget Inc.', '800-2292 Egestas Ave', 'Kearney', 'NE', '27988', '(828)632-1089', 'Dejesus, Caldwell W.', '(829)302-9680', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (59, 'Vivamus Rhoncus Donec Foundation', '7089 Dui. Rd.', 'Jonesboro', 'AR', '72522', '(236)150-9211', 'Daugherty, Ivory C.', '(665)592-5887', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (60, 'Dui Augue Incorporated', '1087 Tellus Road', 'Columbus', 'OH', '92462', '(358)652-0880', 'Newton, Elton J.', '(591)175-8431', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (61, 'Diam Corp.', 'P.O. Box 784, 5928 Lorem Avenue', 'Idaho Falls', 'ID', '24162', '(910)427-3400', 'Bender, Nerea R.', '(329)534-8794', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (62, 'Maecenas Inc.', '732-3321 Sit Ave', 'Tulsa', 'OK', '88620', '(622)767-7354', 'Gould, Moana E.', '(841)345-0376', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (63, 'Sed Diam Lorem Inc.', 'P.O. Box 191, 9623 Adipiscing, Rd.', 'Duluth', 'MN', '64179', '(425)243-8098', 'Dale, Ignacia J.', '(446)235-8560', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (64, 'Sem Ltd', 'P.O. Box 301, 7736 Ipsum Rd.', 'Cincinnati', 'OH', '96209', '(947)164-4166', 'Morin, Vivian G.', '(380)269-4005', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (65, 'Adipiscing Fringilla LLC', '697-2933 Erat St.', 'Kapolei', 'HI', '23922', '(831)469-0202', 'Riggs, Gray N.', '(270)295-3417', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (66, 'Commodo Ipsum Suspendisse Incorporated', 'Ap #675-6496 Dignissim Avenue', 'Mesa', 'AZ', '85400', '(224)677-3922', 'Pena, Ulla G.', '(125)332-7814', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (67, 'Lectus Ante Corporation', '8259 Nec Avenue', 'Kenosha', 'WI', '77147', '(463)300-2197', 'Avila, Flavia Y.', '(307)983-7353', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (68, 'Mauris Aliquam Eu Inc.', '1422 Vivamus Av.', 'Biloxi', 'MS', '62112', '(682)196-8281', 'Ramos, Tana K.', '(782)728-1972', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (69, 'Dui In Institute', 'P.O. Box 281, 524 Nulla Street', 'Colorado Springs', 'CO', '16114', '(813)302-6231', 'Mcdaniel, Mannix X.', '(238)425-9332', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (70, 'Luctus Et Ultrices LLP', '3676 Iaculis, Ave', 'Virginia Beach', 'VA', '76138', '(129)734-4598', 'Flores, Clinton L.', '(856)967-8906', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (71, 'A Auctor LLP', '6344 Blandit Rd.', 'Bowling Green', 'KY', '18191', '(203)165-0264', 'Downs, Shaine M.', '(596)572-4415', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (72, 'Dictum Augue Malesuada LLC', '1436 Blandit Rd.', 'Shreveport', 'LA', '95603', '(245)283-5552', 'Molina, Melvin R.', '(942)580-0025', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (73, 'Id Limited', 'Ap #691-3422 Mauris Rd.', 'Auburn', 'ME', '43458', '(411)996-6586', 'Harrington, Keefe L.', '(656)389-4273', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (74, 'Eu Foundation', '946-6649 Nec Avenue', 'Minneapolis', 'MN', '28063', '(256)934-0083', 'Parks, Ursula Y.', '(427)642-1213', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (75, 'Quis LLP', 'Ap #469-873 Est. Rd.', 'Springfield', 'IL', '28974', '(177)660-1848', 'Chaney, Kellie J.', '(839)710-0234', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (76, 'Aliquet Vel Vulputate LLP', '6687 Mollis Street', 'Salem', 'OR', '49406', '(549)647-1416', 'Weber, Lucas K.', '(530)834-3535', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (77, 'Cum Sociis Natoque PC', '706-2627 Aliquam Ave', 'Little Rock', 'AR', '72919', '(732)308-7421', 'Munoz, Lila I.', '(414)942-6852', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (78, 'Nisi Corp.', '857-210 Scelerisque St.', 'Fort Wayne', 'IN', '30700', '(550)719-2129', 'Sampson, Lila V.', '(546)255-5460', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (79, 'Sollicitudin Consulting', 'P.O. Box 767, 8107 Risus Street', 'Milwaukee', 'WI', '80790', '(629)715-7709', 'Barron, Moses V.', '(953)824-9879', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (80, 'Sed Et Libero Industries', '4803 Erat. St.', 'Lowell', 'MA', '92447', '(398)277-8633', 'Mason, Daquan W.', '(115)823-3780', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (81, 'Et Pede Consulting', '8587 In, St.', 'Bridgeport', 'CT', '20663', '(348)172-9066', 'Wooten, Charles H.', '(703)224-8589', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (82, 'Interdum Industries', 'P.O. Box 822, 3622 Sagittis. Street', 'Las Vegas', 'NV', '87351', '(499)148-7138', 'Mckinney, Isaiah E.', '(664)996-7807', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (83, 'Mattis Semper Dui Associates', '143-9739 Adipiscing Rd.', 'Sacramento', 'CA', '96232', '(178)387-5669', 'Vang, Uriel A.', '(736)990-3748', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (84, 'Dignissim Tempor Incorporated', '8461 Accumsan Rd.', 'Lowell', 'MA', '58962', '(801)723-1899', 'Ayers, Brooke Y.', '(925)648-7509', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (85, 'Pharetra Company', '534-971 Nec Street', 'Nampa', 'ID', '91485', '(579)358-0490', 'Anderson, August O.', '(648)515-3342', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (86, 'Mus Proin Vel Incorporated', 'Ap #410-5491 Consequat Ave', 'Pittsburgh', 'PA', '46132', '(825)519-0285', 'Jennings, Xaviera D.', '(202)900-0477', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (87, 'Lectus Ante Consulting', '9382 Scelerisque Rd.', 'Birmingham', 'AL', '35709', '(879)932-6152', 'Morse, Dorothy C.', '(829)682-3042', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (88, 'Maecenas LLP', '845-4064 Quis Rd.', 'Overland Park', 'KS', '31455', '(192)744-3961', 'King, Emerson L.', '(938)567-3760', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (89, 'Felis Nulla Tempor Corporation', '649-1749 Nullam Street', 'Butte', 'MT', '51573', '(822)708-8770', 'Santos, Colby Y.', '(998)646-8174', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (90, 'Nec Corp.', '9010 Lacus. Road', 'New Orleans', 'LA', '51577', '(519)525-8678', 'Jacobson, Omar V.', '(261)443-5734', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (91, 'Ornare In Inc.', 'P.O. Box 828, 4838 A Road', 'Burlington', 'VT', '70182', '(517)750-6237', 'Griffin, Yen U.', '(292)416-9604', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (92, 'Suspendisse Aliquet Molestie Company', '4906 Interdum Rd.', 'Clarksville', 'TN', '52118', '(894)576-2753', 'Mcmahon, TaShya I.', '(293)619-6883', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (93, 'Donec Non Justo Institute', '6330 Elit. Road', 'Portland', 'ME', '19083', '(393)203-5985', 'Woods, Talon G.', '(338)533-6921', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (94, 'Consequat Industries', 'P.O. Box 984, 254 Montes, Avenue', 'North Las Vegas', 'NV', '81669', '(995)797-1775', 'Alexander, Aline Q.', '(102)436-3985', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (95, 'A Auctor Consulting', 'P.O. Box 345, 1518 Ut Rd.', 'Sandy', 'UT', '29191', '(884)429-5810', 'Huber, Nasim F.', '(637)968-5840', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (96, 'Nunc Nulla Vulputate Consulting', '2025 Cursus Road', 'Wilmington', 'DE', '13072', '(458)200-4542', 'Edwards, Xaviera U.', '(530)642-7571', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (97, 'Euismod Est Corporation', '9905 Sit St.', 'Provo', 'UT', '36569', '(714)558-5777', 'Merritt, Dale L.', '(415)495-9597', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (98, 'Convallis Consulting', '6399 Pede, Av.', 'Saint Paul', 'MN', '72082', '(111)781-5460', 'Weaver, Kareem R.', '(340)113-3522', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (99, 'Enim Consequat Industries', '746-4143 Sagittis Rd.', 'Chandler', 'AZ', '85187', '(789)431-3481', 'Carney, Louis P.', '(910)586-5007', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (100, 'Laoreet Libero Et Institute', '1431 Malesuada Avenue', 'Honolulu', 'HI', '72115', '(795)484-9310', 'Morales, Mariko D.', '(853)953-7948', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (101, 'Imperdiet Ornare In LLP', 'P.O. Box 838, 7754 Magna Av.', 'Georgia', 'GA', '14521', '(771)589-4720', 'Silva, Pamela I.', '(200)804-7934', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (102, 'Mattis Company', 'Ap #856-6885 Semper Av.', 'Mesa', 'AZ', '85483', '(707)983-5718', 'Lloyd, Myles Z.', '(443)739-2241', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (103, 'Felis Eget LLP', 'P.O. Box 151, 3164 Parturient Rd.', 'Portland', 'ME', '13765', '(332)561-2277', 'Chase, Mary B.', '(615)378-7088', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (104, 'Consectetuer Rhoncus Foundation', 'Ap #485-5344 Non, Road', 'Nashville', 'TN', '22693', '(440)286-5260', 'Flynn, Cailin Q.', '(774)393-2884', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (105, 'Elit Ltd', 'Ap #893-6915 Metus. Avenue', 'Carson City', 'NV', '88564', '(405)120-8194', 'Lewis, Emi I.', '(623)213-4073', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (106, 'Magna Cras Convallis Corporation', 'P.O. Box 528, 2234 Fringilla Rd.', 'Omaha', 'NE', '56542', '(598)474-5967', 'Riley, Harding V.', '(355)774-4036', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (107, 'Vitae Aliquet LLP', 'Ap #845-2007 Nunc Av.', 'Bridgeport', 'CT', '79694', '(150)940-6738', 'Rosario, Prescott S.', '(554)515-4604', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (108, 'Tellus Aenean Egestas Institute', 'P.O. Box 507, 4955 Est. St.', 'Las Vegas', 'NV', '42127', '(711)780-6093', 'Acevedo, Dora A.', '(475)466-4735', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (109, 'Nam Associates', 'P.O. Box 189, 3552 Dapibus Avenue', 'Anchorage', 'AK', '99894', '(897)130-4544', 'Herman, Maia L.', '(400)632-9245', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (110, 'Molestie PC', 'P.O. Box 505, 7005 Eu Rd.', 'Tampa', 'FL', '66575', '(563)853-2807', 'Ortiz, Vincent E.', '(338)225-0970', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (111, 'Vel Mauris Company', '3251 Arcu. St.', 'Columbus', 'OH', '63114', '(654)293-6055', 'Holt, Nina Y.', '(564)242-1361', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (112, 'Tristique LLP', 'P.O. Box 106, 7632 Donec Av.', 'Racine', 'WI', '52309', '(994)177-2058', 'Cannon, Rama F.', '(197)958-6279', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (113, 'Mauris Nulla Inc.', 'Ap #966-3335 Integer St.', 'Fayetteville', 'AR', '72681', '(278)821-9348', 'Hines, Joan P.', '(679)273-2175', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (114, 'Et Netus Inc.', '507-9356 Vel Road', 'Anchorage', 'AK', '99604', '(324)173-1555', 'Fuentes, Hayes O.', '(374)445-0506', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (115, 'Erat Eget Tincidunt Company', 'P.O. Box 596, 1796 Tincidunt Street', 'Knoxville', 'TN', '32419', '(682)268-2586', 'Long, Emmanuel C.', '(480)992-7184', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (116, 'Mus Corporation', 'Ap #325-7921 Diam. Ave', 'Grand Island', 'NE', '21855', '(284)624-2406', 'Banks, Tashya L.', '(359)569-3891', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (117, 'Donec Porttitor Company', '602-3484 Nec, St.', 'Hattiesburg', 'MS', '89599', '(473)600-0652', 'Wynn, Kaye G.', '(156)569-5145', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (118, 'Dictum Magna Consulting', 'Ap #193-4892 Orci. St.', 'Saint Paul', 'MN', '89986', '(197)240-4759', 'Mcleod, Nissim Z.', '(755)396-0403', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (119, 'Metus Foundation', '537-9955 Lacinia St.', 'Annapolis', 'MD', '34866', '(427)359-5386', 'Fernandez, Alma N.', '(588)115-2932', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (120, 'Proin Velit Sed Corp.', '448-9121 Metus. Road', 'Birmingham', 'AL', '35442', '(990)708-0478', 'Miller, Brandon X.', '(910)625-8603', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (121, 'Interdum Feugiat Sed Corporation', '7381 Ut Av.', 'Reading', 'PA', '59333', '(441)743-2634', 'Bowers, Abdul M.', '(381)594-9530', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (122, 'Aliquam Associates', 'Ap #805-6511 Mauris Avenue', 'Cedar Rapids', 'IA', '12846', '(684)937-9298', 'Griffin, Silas H.', '(125)409-4408', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (123, 'Mi Lacinia Foundation', '454 Nulla. Rd.', 'Boston', 'MA', '26090', '(635)598-6705', 'Porter, Arsenio D.', '(824)286-8189', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (124, 'Eget Incorporated', '242-3202 Ornare Road', 'Essex', 'VT', '98287', '(386)880-6757', 'Chavez, Kareem T.', '(642)181-7398', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (125, 'Sed Industries', 'P.O. Box 732, 1800 Ante Rd.', 'Juneau', 'AK', '99890', '(532)898-2380', 'Mcpherson, Hanae Z.', '(354)828-7313', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (126, 'Sem Inc.', 'P.O. Box 750, 6847 Euismod Street', 'Minneapolis', 'MN', '59901', '(311)961-3556', 'Mccormick, Hayes Q.', '(555)983-8395', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (127, 'Sagittis Nullam Associates', 'Ap #572-1936 Tempor Avenue', 'Spokane', 'WA', '49125', '(445)466-1946', 'Adkins, Harding V.', '(146)476-9036', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (128, 'Dui Fusce Institute', '205 Elit, Road', 'Wilmington', 'DE', '88256', '(468)349-8174', 'Nelson, Kellie W.', '(590)763-5771', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (129, 'Mauris LLP', '808-5414 Lectus St.', 'Biloxi', 'MS', '72054', '(512)485-8466', 'Sampson, Burke Q.', '(590)425-1503', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (130, 'Risus Donec Nibh Inc.', '168-2505 Nisl Rd.', 'Richmond', 'VA', '72452', '(907)401-1599', 'Fleming, Hamilton G.', '(221)775-2129', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (131, 'Semper Corporation', '140-596 In Road', 'Springdale', 'AR', '71122', '(608)777-5021', 'Ferrell, Dora X.', '(138)228-7339', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (132, 'Ac Orci Ut Corporation', 'P.O. Box 385, 8733 Eros. Road', 'Laramie', 'WY', '92001', '(666)793-5300', 'Norris, Otto I.', '(604)540-2624', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (133, 'Tortor LLP', 'Ap #178-3290 Aenean Av.', 'Kailua', 'HI', '36949', '(315)333-2573', 'Austin, Raya B.', '(755)372-0264', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (134, 'A Associates', 'P.O. Box 545, 1199 Dis Ave', 'Jackson', 'MS', '12240', '(791)307-3975', 'Henson, Craig A.', '(939)161-2981', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (135, 'Pede Company', '328-4391 Accumsan St.', 'Fort Worth', 'TX', '27629', '(317)578-0359', 'Andrews, Lila F.', '(964)261-7545', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (136, 'Etiam Gravida Company', '159-1861 Adipiscing St.', 'Lansing', 'MI', '90363', '(121)509-2147', 'Mcpherson, Graiden W.', '(762)301-3507', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (137, 'Faucibus Orci Luctus Associates', 'P.O. Box 820, 6086 Aliquam Ave', 'Toledo', 'OH', '85239', '(391)396-4357', 'Mann, Yvonne S.', '(674)165-6922', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (138, 'Non Sapien Inc.', '3269 Orci Road', 'Mobile', 'AL', '36206', '(131)346-9945', 'Dyer, Griffith D.', '(151)404-0426', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (139, 'Eget Ipsum LLC', 'P.O. Box 812, 6506 Risus Avenue', 'Broken Arrow', 'OK', '79969', '(388)488-1173', 'Henson, Isadora L.', '(778)819-3648', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (140, 'Aliquet Odio Foundation', 'Ap #691-5598 Consectetuer, Ave', 'Las Vegas', 'NV', '40368', '(492)514-5400', 'Carey, Tate E.', '(716)472-6179', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (141, 'Pellentesque Habitant Morbi Company', '8324 Euismod Rd.', 'Lafayette', 'LA', '91856', '(858)552-7859', 'Nixon, Warren Z.', '(891)850-8414', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (142, 'Sapien Aenean Inc.', 'P.O. Box 129, 6025 Malesuada Rd.', 'Reno', 'NV', '33941', '(325)414-0928', 'Orr, Flavia Q.', '(317)602-1138', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (143, 'Lorem Vehicula Et PC', '2269 Diam. Rd.', 'South Portland', 'ME', '21659', '(511)398-7766', 'Kirkland, Elmo I.', '(427)353-8643', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (144, 'Risus Morbi Metus Foundation', '3806 Elementum Rd.', 'Billings', 'MT', '61550', '(254)100-2316', 'Flowers, Cassidy Y.', '(366)371-9769', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (145, 'Et Netus Ltd', 'P.O. Box 556, 8206 Sagittis. Rd.', 'Fort Worth', 'TX', '19162', '(284)674-3905', 'Barnett, Lacota J.', '(662)408-1448', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (146, 'Egestas Company', '638-7842 Eget, St.', 'Virginia Beach', 'VA', '91518', '(292)241-3306', 'Silva, Alden B.', '(932)684-5433', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (147, 'Justo Proin Non Inc.', '5398 Id Rd.', 'Augusta', 'GA', '76949', '(830)631-8667', 'Daniel, Robert R.', '(938)847-5962', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (148, 'Laoreet Lectus Associates', 'P.O. Box 256, 5195 Sit St.', 'Chicago', 'IL', '40921', '(236)904-2447', 'Oliver, Adam A.', '(549)194-7265', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (149, 'Eget Laoreet Posuere Industries', '799-8638 Dictum Ave', 'Reading', 'PA', '23363', '(999)830-2513', 'Ball, Anika H.', '(225)124-5253', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (150, 'Nec LLC', '2191 Torquent Av.', 'Bozeman', 'MT', '89644', '(838)581-2356', 'Santiago, Orlando C.', '(470)739-1319', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (151, 'Et Netus Incorporated', '747-5057 Pede Rd.', 'San Francisco', 'CA', '90805', '(502)317-8726', 'Wall, Caleb C.', '(615)236-7299', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (152, 'Mauris Vel Corporation', '570-2157 Ultrices Ave', 'Clarksville', 'TN', '64172', '(594)102-8884', 'Dunn, Theodore L.', '(510)417-6370', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (153, 'Morbi Metus Consulting', 'P.O. Box 107, 1051 Mollis Avenue', 'Eugene', 'OR', '20377', '(629)855-1144', 'Knowles, Eleanor S.', '(333)641-9633', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (154, 'Auctor LLC', 'P.O. Box 477, 2203 Ultrices Av.', 'Columbia', 'MO', '34984', '(604)506-4010', 'Williamson, Erich U.', '(355)313-8292', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (155, 'Cursus Et Magna Incorporated', '965-3083 Tortor. St.', 'Colchester', 'VT', '65108', '(715)802-0961', 'Newman, Clinton W.', '(650)910-3950', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (156, 'Pede Cras Vulputate Ltd', 'P.O. Box 795, 1972 Id, Rd.', 'Huntsville', 'AL', '36963', '(627)485-2177', 'Velazquez, Maile H.', '(184)165-2969', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (157, 'Dui Nec Tempus Institute', 'P.O. Box 931, 429 Lacinia Road', 'Savannah', 'GA', '51160', '(654)597-7299', 'Waller, Hilda Z.', '(954)716-1139', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (158, 'Et Rutrum Eu Corporation', 'P.O. Box 565, 320 Libero. Rd.', 'Casper', 'WY', '46701', '(661)427-3191', 'Knowles, Baker M.', '(235)930-3094', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (159, 'Ligula Inc.', '9487 Nisi Ave', 'Auburn', 'ME', '90649', '(869)347-7933', 'Crosby, Kerry B.', '(874)332-5137', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (160, 'Justo Ltd', '482-5249 Malesuada Rd.', 'Grand Island', 'NE', '39183', '(153)556-1950', 'Anderson, Holmes A.', '(896)262-1002', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (161, 'Morbi Tristique Company', '611-7373 Cras Rd.', 'Denver', 'CO', '65945', '(670)456-7310', 'Drake, Zahir R.', '(962)512-0603', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (162, 'Interdum Nunc LLP', '6668 Egestas Rd.', 'Fairbanks', 'AK', '99963', '(454)745-8539', 'Richardson, Nicholas J.', '(326)196-3971', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (163, 'Ut LLC', '753-5466 Amet, Avenue', 'Bellevue', 'WA', '35942', '(975)349-9517', 'Battle, Maryam D.', '(659)275-3577', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (164, 'In Faucibus Morbi Incorporated', '979-8192 Pede Av.', 'Cheyenne', 'WY', '96529', '(694)405-8811', 'Carlson, Uriel B.', '(832)318-0014', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (165, 'Mauris Non Industries', '381-6525 Ridiculus Av.', 'St. Petersburg', 'FL', '97919', '(647)921-9794', 'White, Rudyard Y.', '(247)186-1199', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (166, 'Molestie Pharetra Corporation', '888 Odio Avenue', 'Chandler', 'AZ', '86331', '(682)682-1312', 'Duke, Raymond G.', '(269)260-0709', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (167, 'Vel Convallis Industries', 'P.O. Box 174, 3799 Eget, Ave', 'Jacksonville', 'FL', '47558', '(455)959-8444', 'Rich, Hunter V.', '(467)881-9844', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (168, 'Sit Associates', 'P.O. Box 618, 9116 Morbi Street', 'Lansing', 'MI', '53445', '(466)297-0513', 'Stanton, Danielle A.', '(908)581-1290', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (169, 'Suscipit Est Ac LLC', 'Ap #132-5340 Nullam Street', 'Clarksville', 'TN', '62649', '(762)344-3316', 'Crane, Aaron I.', '(620)129-9897', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (170, 'Ipsum Primis Associates', '5167 Vel Av.', 'Boston', 'MA', '50751', '(662)576-2165', 'Fisher, Colorado N.', '(969)713-5842', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (171, 'Cursus Corporation', '8631 Auctor Rd.', 'Kansas City', 'KS', '96503', '(741)776-0556', 'Briggs, Basia O.', '(464)515-2594', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (172, 'Libero Et Limited', 'P.O. Box 944, 5778 A, Street', 'Tulsa', 'OK', '46568', '(999)330-6322', 'Hahn, Kylynn K.', '(321)656-9794', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (173, 'Libero Donec Consectetuer Limited', '303-1395 Odio Rd.', 'Little Rock', 'AR', '71216', '(226)518-4993', 'Benton, Willow R.', '(553)537-0682', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (174, 'Lorem Eget Mollis Inc.', '6158 At St.', 'Baltimore', 'MD', '66694', '(220)846-3993', 'Reynolds, Sonia H.', '(652)109-6720', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (175, 'Morbi Metus Vivamus Inc.', '7565 Sem. Rd.', 'New Orleans', 'LA', '76209', '(734)800-7375', 'Harris, Neville L.', '(763)986-5046', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (176, 'Sed Diam Lorem LLC', 'P.O. Box 700, 3266 Dui Avenue', 'Sandy', 'UT', '89176', '(412)757-8821', 'Anthony, Shaine A.', '(356)609-9207', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (177, 'Egestas Duis Ac Incorporated', 'P.O. Box 251, 2364 Interdum. Road', 'Idaho Falls', 'ID', '38815', '(809)761-0235', 'Burke, Duncan G.', '(786)421-2693', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (178, 'Sed Pede Inc.', '969-2393 Et Street', 'Wichita', 'KS', '89877', '(986)493-3431', 'Hahn, Nero D.', '(587)654-6034', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (179, 'Fusce Fermentum Fermentum Company', 'P.O. Box 413, 4895 Dictum Ave', 'Henderson', 'NV', '89573', '(220)954-5105', 'Sykes, Maxine B.', '(972)524-5393', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (180, 'Eu Ultrices Consulting', 'Ap #366-895 Egestas. Rd.', 'Racine', 'WI', '15478', '(836)554-2542', 'Cardenas, Inez Z.', '(988)104-1784', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (181, 'Natoque Penatibus Corporation', 'Ap #330-3017 Commodo Ave', 'San Francisco', 'CA', '90484', '(245)593-6074', 'Koch, Sage X.', '(951)842-0697', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (182, 'Ornare Industries', '5066 Sapien St.', 'Gary', 'IN', '70145', '(830)682-1664', 'Peck, Ori J.', '(473)298-9873', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (183, 'Id Risus Quis Incorporated', '1308 Nascetur Av.', 'Kailua', 'HI', '24794', '(252)565-2390', 'Clarke, Ebony E.', '(243)983-3156', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (184, 'Ridiculus Company', 'Ap #563-2727 Nibh. Rd.', 'Paradise', 'NV', '31320', '(724)210-6377', 'Cohen, Upton R.', '(207)359-4067', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (185, 'Sed Corporation', 'P.O. Box 383, 1112 Eu Rd.', 'Kearney', 'NE', '48314', '(347)763-2737', 'Johnston, Willa U.', '(755)673-6079', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (186, 'Pulvinar Corporation', 'P.O. Box 242, 2276 Pede, Rd.', 'Rockford', 'IL', '20417', '(467)582-7021', 'Wood, Stewart V.', '(178)703-1420', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (187, 'Leo Industries', '8037 Ac Rd.', 'Sacramento', 'CA', '90291', '(653)933-9975', 'Baldwin, Nicole J.', '(754)859-2252', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (188, 'Eget Foundation', 'Ap #859-8065 Eu Av.', 'San Francisco', 'CA', '91208', '(473)357-5030', 'Brady, Tate T.', '(212)909-0506', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (189, 'Tristique Pharetra Foundation', '1793 Facilisis, Avenue', 'Boise', 'ID', '73356', '(102)681-0397', 'Chambers, Medge D.', '(608)265-9788', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (190, 'Sed Consulting', 'Ap #894-108 Purus St.', 'Columbus', 'GA', '70316', '(749)788-2000', 'Wilkerson, Lavinia W.', '(852)337-4345', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (191, 'Pede Praesent Incorporated', '296-8280 Sed Road', 'San Francisco', 'CA', '94009', '(631)864-3427', 'Fitzgerald, Lillian M.', '(502)710-2662', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (192, 'Sem Eget Limited', 'Ap #679-7736 Est, St.', 'Green Bay', 'WI', '51374', '(342)500-1013', 'Hubbard, Alice R.', '(761)347-2969', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (193, 'Phasellus Nulla Consulting', 'P.O. Box 861, 6930 Phasellus Avenue', 'Kailua', 'HI', '62868', '(319)352-7825', 'Haney, Kennan W.', '(864)132-8013', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (194, 'Nunc Lectus Institute', 'Ap #416-825 Feugiat St.', 'Bangor', 'ME', '56012', '(492)710-2154', 'Berry, Bree B.', '(515)564-3467', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (195, 'Pellentesque Corp.', '1776 Nec Rd.', 'Madison', 'WI', '25576', '(991)408-2687', 'Schmidt, Vivien W.', '(646)176-5184', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (196, 'Lacus Ltd', '953-2568 Quis Av.', 'Denver', 'CO', '41641', '(866)143-0079', 'Carson, Brandon F.', '(334)222-6123', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (197, 'Pede Sagittis Corp.', 'Ap #972-6685 Ac, Rd.', 'Omaha', 'NE', '10196', '(825)875-6121', 'Hunt, Rhoda K.', '(494)515-6034', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (198, 'Morbi Accumsan Laoreet Associates', '577-2907 Volutpat. Ave', 'Salt Lake City', 'UT', '72014', '(922)918-8476', 'Avery, Dean E.', '(964)259-1894', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (199, 'Ligula Aenean Gravida Foundation', 'Ap #252-4814 Cursus Road', 'Worcester', 'MA', '68742', '(196)804-6451', 'West, Chandler Z.', '(563)161-2522', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (200, 'Sagittis Semper Nam Associates', 'Ap #603-6104 Posuere Ave', 'St. Petersburg', 'FL', '59853', '(596)635-7646', 'Hartman, Frances E.', '(489)871-0773', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (201, 'Mi Ltd', 'Ap #387-3987 Sem Rd.', 'Bowling Green', 'KY', '28246', '(446)402-6087', 'Murphy, Constance H.', '(225)712-6424', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (202, 'Dui Company', '474-2951 Sem, St.', 'Detroit', 'MI', '39375', '(659)501-7169', 'Huffman, Emerald T.', '(273)356-6992', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (203, 'Et Ultrices Posuere Company', 'Ap #819-3194 Tempor Rd.', 'Springdale', 'AR', '71785', '(865)161-7444', 'Phelps, Ivana K.', '(800)355-7079', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (204, 'Nec Foundation', 'P.O. Box 632, 8345 Ante Rd.', 'Gresham', 'OR', '91228', '(744)274-5873', 'Mitchell, Dorian Q.', '(993)498-8657', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (205, 'Eget Institute', '484-5038 Erat, Av.', 'West Jordan', 'UT', '37755', '(555)731-7409', 'Day, Evan M.', '(829)540-1642', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (206, 'Mi Aliquam Foundation', 'Ap #939-7581 Amet St.', 'Nashville', 'TN', '55350', '(169)506-9280', 'Vinson, Alexander E.', '(701)110-8885', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (207, 'Et Magnis Dis Corporation', '8969 Adipiscing Avenue', 'Columbus', 'OH', '67166', '(124)387-5465', 'Morris, Adam W.', '(788)870-1912', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (208, 'Quis Arcu Vel Foundation', '537-5600 Magnis Ave', 'Philadelphia', 'PA', '70409', '(799)717-4319', 'Roach, Rashad W.', '(572)872-7390', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (209, 'Vel Ltd', 'P.O. Box 860, 3062 Luctus Road', 'Kansas City', 'MO', '62831', '(926)585-8215', 'Mcdonald, Daphne Q.', '(512)606-5812', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (210, 'Enim Mi Tempor Associates', '362-5077 Erat Street', 'Toledo', 'OH', '89083', '(826)291-4917', 'Fry, Talon R.', '(670)242-4035', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (211, 'Pretium Corp.', '7180 Vivamus Av.', 'Des Moines', 'IA', '13157', '(306)585-2049', 'Stark, Lester Y.', '(567)457-4733', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (212, 'Egestas Institute', 'Ap #580-4494 Natoque Rd.', 'Orlando', 'FL', '15809', '(903)322-3649', 'Sutton, Dolan Z.', '(841)885-8058', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (213, 'Lacus Foundation', '258-6439 Metus Street', 'Ketchikan', 'AK', '99852', '(954)538-4219', 'Rodriguez, Elton G.', '(633)170-0432', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (214, 'Risus Foundation', '2863 Sagittis. Rd.', 'Carson City', 'NV', '79165', '(943)828-3321', 'Howe, Lacey X.', '(728)999-1323', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (215, 'Ligula Nullam Enim Corporation', '8099 Molestie Street', 'Madison', 'WI', '23153', '(263)146-8486', 'Harrell, Hermione L.', '(623)478-7226', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (216, 'Odio Auctor Company', '9378 Non Ave', 'San Diego', 'CA', '93058', '(307)834-9829', 'Anderson, Hayden G.', '(680)986-8633', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (217, 'Lacus Foundation', 'Ap #846-8930 Velit. Av.', 'Laramie', 'WY', '13394', '(834)985-7476', 'Morales, Jessica R.', '(987)951-6357', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (218, 'Magna Lorem PC', '241-2697 Mus. St.', 'Lansing', 'MI', '28804', '(825)634-9427', 'Clayton, Anne Z.', '(758)810-1392', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (219, 'Risus Odio Auctor Foundation', 'P.O. Box 118, 9500 Pede Rd.', 'Topeka', 'KS', '65484', '(701)421-8747', 'Duran, Nero U.', '(173)775-2579', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (220, 'Nisl Elementum Purus Inc.', '912-6365 Consectetuer Rd.', 'Eugene', 'OR', '30466', '(238)344-8795', 'Price, Lael F.', '(689)903-1708', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (221, 'Vestibulum Massa Rutrum PC', 'Ap #438-2243 Sed, Av.', 'Shreveport', 'LA', '74969', '(290)431-7021', 'Farley, Emmanuel B.', '(187)441-5551', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (222, 'Ultricies Limited', 'P.O. Box 131, 2003 Sem, Road', 'West Valley City', 'UT', '33492', '(837)366-0202', 'Ramos, Abel W.', '(938)355-7175', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (223, 'Non Leo Institute', '275-6601 Nulla Ave', 'Georgia', 'GA', '51114', '(166)659-8513', 'Benton, Colby P.', '(797)442-5274', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (224, 'Eu Erat Semper Inc.', 'P.O. Box 655, 9749 Duis Rd.', 'Baton Rouge', 'LA', '74481', '(746)134-6015', 'Bruce, Ezra X.', '(928)596-4078', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (225, 'Risus Quisque Libero Limited', 'P.O. Box 820, 9054 Euismod St.', 'Tacoma', 'WA', '94868', '(281)595-1789', 'Pittman, Erin U.', '(697)558-2698', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (226, 'Mi Felis Adipiscing LLP', 'Ap #898-6415 Euismod Rd.', 'Juneau', 'AK', '99952', '(361)749-7609', 'Gray, Leandra V.', '(932)173-0357', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (227, 'Blandit Mattis Cras Foundation', '236-6401 Enim, Ave', 'Duluth', 'MN', '43955', '(258)885-5451', 'Butler, Heidi T.', '(892)476-6870', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (228, 'Aliquet Associates', '1232 In Street', 'Reno', 'NV', '94810', '(824)632-9322', 'Black, Kiayada D.', '(867)354-4452', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (229, 'Massa Corporation', 'P.O. Box 528, 7810 A Street', 'Frederick', 'MD', '50871', '(751)153-6979', 'Frederick, Idona K.', '(903)397-0933', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (230, 'Mauris Blandit Consulting', 'P.O. Box 474, 2527 Interdum. Road', 'Nampa', 'ID', '57082', '(925)271-0743', 'Lester, Dominic R.', '(686)816-0429', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (231, 'Quam A Corp.', '454-2938 At, Ave', 'Paradise', 'NV', '45032', '(463)940-8678', 'Ballard, Sandra M.', '(574)394-4940', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (232, 'Sollicitudin LLC', '2570 Neque Rd.', 'Grand Rapids', 'MI', '80949', '(824)765-8279', 'Alford, Leo L.', '(433)460-4057', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (233, 'Eget Consulting', 'P.O. Box 109, 5218 Nulla Av.', 'Cambridge', 'MA', '66667', '(905)420-5244', 'Dillon, Farrah N.', '(331)791-5436', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (234, 'Massa Quisque Corp.', '5478 Proin Avenue', 'Bridgeport', 'CT', '81580', '(972)740-8045', 'Fischer, Hayden S.', '(169)631-2551', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (235, 'Ligula Consectetuer Corporation', 'P.O. Box 154, 6680 Aliquam Avenue', 'Wichita', 'KS', '39014', '(224)471-6405', 'Mcmahon, Willow M.', '(945)350-8495', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (236, 'Sagittis Consulting', '9899 Placerat St.', 'Boston', 'MA', '85091', '(403)678-3396', 'Oneal, Jordan U.', '(878)622-7396', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (237, 'Praesent Interdum Ligula Limited', '2492 Nec Av.', 'Salt Lake City', 'UT', '17072', '(671)139-5626', 'Underwood, Eden I.', '(670)363-3619', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (238, 'Non Magna Industries', '6435 Volutpat Ave', 'Fayetteville', 'AR', '72847', '(174)834-0508', 'Savage, Kieran T.', '(965)946-1072', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (239, 'Vel Faucibus Id Associates', 'P.O. Box 340, 3245 Dictum Av.', 'Tucson', 'AZ', '86634', '(397)873-9429', 'Stevens, Sopoline K.', '(814)402-3838', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (240, 'Metus Eu Erat Inc.', '202-8768 Risus Street', 'Erie', 'PA', '94805', '(385)453-4675', 'Mack, Jeanette X.', '(652)253-9375', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (241, 'Morbi Tristique PC', '7718 Urna St.', 'Madison', 'WI', '14924', '(652)941-7232', 'Abbott, Jocelyn E.', '(400)275-4860', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (242, 'Volutpat Nunc Sit Foundation', '8781 Donec Avenue', 'Bellevue', 'NE', '31351', '(974)942-1757', 'Benjamin, Jaime M.', '(806)977-0646', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (243, 'Arcu Sed Corp.', '215-7533 Dictum Av.', 'Springfield', 'MO', '15096', '(971)385-2933', 'Bright, Josiah B.', '(848)197-9401', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (244, 'Ut LLC', 'P.O. Box 848, 3323 Tempor Rd.', 'Grand Island', 'NE', '40950', '(919)814-3330', 'Mcclure, Alexa I.', '(996)186-7385', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (245, 'Sem Magna Limited', 'Ap #760-6041 Auctor Road', 'Billings', 'MT', '93390', '(850)682-5802', 'Hernandez, Lesley Z.', '(886)977-5666', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (246, 'Nulla Foundation', '837-9458 Fringilla Rd.', 'Green Bay', 'WI', '62163', '(757)955-0914', 'Lancaster, Autumn P.', '(285)509-9698', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (247, 'Quam Ltd', 'P.O. Box 974, 3051 Aliquam Rd.', 'Nampa', 'ID', '33848', '(289)979-2935', 'Justice, Reagan U.', '(538)313-0988', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (248, 'Malesuada Fames LLC', '6948 Vel, Rd.', 'Biloxi', 'MS', '74911', '(614)324-4123', 'Blake, Arsenio L.', '(496)533-5754', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (249, 'Leo LLP', '7640 Enim. Rd.', 'Helena', 'MT', '66668', '(686)108-6447', 'Wilcox, James F.', '(144)146-2614', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (250, 'Eros Associates', 'P.O. Box 427, 1052 Amet Av.', 'Miami', 'FL', '39722', '(158)436-1671', 'Frost, Brian Y.', '(441)553-4857', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (251, 'Aliquam Erat Inc.', '724-6961 Sem, Road', 'Memphis', 'TN', '70700', '(549)399-6508', 'Herrera, Ramona D.', '(654)516-3248', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (252, 'Diam Lorem Auctor Corporation', 'P.O. Box 360, 8976 Aliquet Road', 'Bozeman', 'MT', '78386', '(717)302-2018', 'Jimenez, Martina P.', '(989)389-1517', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (253, 'Convallis Ligula Institute', 'P.O. Box 808, 5970 Neque Av.', 'Virginia Beach', 'VA', '31992', '(626)879-6335', 'Roberts, Octavius M.', '(858)359-6327', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (254, 'Nullam LLC', '541-6401 Sodales Ave', 'Wilmington', 'DE', '36308', '(974)761-2893', 'Castillo, Allegra V.', '(454)480-2461', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (255, 'Non Lacinia PC', '2331 Ullamcorper Ave', 'Lawton', 'OK', '27767', '(741)751-5632', 'Massey, Ursa I.', '(281)712-1251', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (256, 'Sagittis Ltd', 'Ap #441-2692 Pellentesque Av.', 'Billings', 'MT', '77890', '(796)596-8116', 'Clements, Caryn I.', '(724)725-4452', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (257, 'Sed Auctor Odio Consulting', 'Ap #186-7353 Velit. St.', 'Billings', 'MT', '72660', '(896)221-8300', 'Hicks, Raymond S.', '(792)474-5349', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (258, 'Arcu Institute', 'P.O. Box 163, 4049 Fringilla Road', 'South Bend', 'IN', '13760', '(646)160-7401', 'Vinson, Nissim G.', '(651)695-2642', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (259, 'Est Mauris Consulting', 'Ap #331-2038 Egestas Av.', 'Huntsville', 'AL', '36196', '(183)763-8627', 'Griffin, Igor B.', '(376)181-7685', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (260, 'Pede Suspendisse Inc.', '156-4575 Vitae St.', 'Sacramento', 'CA', '90123', '(539)113-4350', 'Roberts, Harding Q.', '(892)283-6601', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (261, 'Enim Ltd', '718-8251 Sit St.', 'Lawton', 'OK', '49535', '(821)833-2101', 'Dudley, Gary A.', '(937)153-1147', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (262, 'Integer Mollis Associates', '967-417 Accumsan Av.', 'Sandy', 'UT', '83745', '(601)585-1828', 'Sheppard, Bianca M.', '(847)465-2020', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (263, 'Lorem Luctus Ut Foundation', '4795 Aliquet St.', 'New Orleans', 'LA', '68047', '(947)642-1284', 'Scott, Timon N.', '(606)147-7812', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (264, 'Quis Turpis Vitae LLC', 'Ap #696-5531 Arcu Street', 'Oklahoma City', 'OK', '53290', '(888)590-0531', 'Hester, Perry Z.', '(372)880-6592', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (265, 'Enim Non Nisi Consulting', 'Ap #565-8134 Cursus Avenue', 'Wichita', 'KS', '79201', '(451)195-1020', 'Mullen, Halee J.', '(623)343-4733', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (266, 'Id Ante Dictum Company', 'Ap #703-1718 Curabitur Rd.', 'Akron', 'OH', '34971', '(924)671-6865', 'Moore, Rae F.', '(633)729-8445', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (267, 'Consectetuer Cursus Et Corp.', '967-5395 Donec Av.', 'Dover', 'DE', '55267', '(206)694-4703', 'Wade, Madeson E.', '(678)413-6350', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (268, 'Tincidunt Company', '539-2208 Nisi. St.', 'Henderson', 'NV', '91053', '(198)956-5657', 'Powell, Joshua T.', '(117)385-8167', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (269, 'Arcu Ltd', 'P.O. Box 736, 2278 Faucibus Avenue', 'Broken Arrow', 'OK', '87836', '(778)918-4948', 'Huber, Whilemina K.', '(909)882-9219', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (270, 'Nec Industries', '944-7672 Arcu St.', 'Atlanta', 'GA', '69235', '(674)775-3383', 'Quinn, Abra Z.', '(587)252-5237', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (271, 'Pede Malesuada Vel Company', 'Ap #242-3984 Lectus St.', 'Casper', 'WY', '87487', '(974)473-4881', 'Pitts, Rooney B.', '(541)908-2059', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (272, 'Nostra Per Inc.', '426-5760 Arcu. St.', 'Idaho Falls', 'ID', '69412', '(468)834-4001', 'Vaughan, Colette K.', '(709)359-6462', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (273, 'Turpis Corporation', 'P.O. Box 741, 2348 Vivamus Street', 'Fayetteville', 'AR', '71372', '(112)489-8928', 'Hansen, Aimee Q.', '(561)947-0265', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (274, 'Orci Phasellus Associates', 'Ap #426-2874 Eleifend Rd.', 'Worcester', 'MA', '21006', '(162)329-0796', 'Lynn, Allen Y.', '(798)591-9467', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (275, 'Eu Tellus LLP', 'Ap #638-2926 Nulla. Ave', 'Spokane', 'WA', '43355', '(925)654-8183', 'Joyce, Kermit X.', '(164)603-6363', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (276, 'Vitae Odio Sagittis Institute', '253-5259 Urna, Ave', 'Aurora', 'CO', '37368', '(450)110-2000', 'Ramirez, Ashton P.', '(337)299-5027', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (277, 'Quisque Varius Nam Corp.', 'P.O. Box 942, 4952 Vivamus Street', 'Cambridge', 'MA', '66490', '(880)458-4604', 'Butler, Simon U.', '(923)405-7441', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (278, 'Arcu PC', '4006 Non Rd.', 'Lexington', 'KY', '56241', '(793)940-2336', 'Pickett, Driscoll G.', '(187)267-4592', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (279, 'Viverra Maecenas Iaculis PC', '183-8417 Ut, Av.', 'Clarksville', 'TN', '86245', '(634)614-5379', 'Quinn, Reese T.', '(116)753-1526', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (280, 'Diam Pellentesque Habitant LLC', '227-7589 Consectetuer St.', 'Richmond', 'VA', '68704', '(138)159-6080', 'Bush, Ifeoma S.', '(624)213-9543', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (281, 'Cursus Ltd', 'P.O. Box 285, 3018 Scelerisque Road', 'Orlando', 'FL', '31283', '(554)139-1205', 'Duncan, Laura R.', '(677)112-7762', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (282, 'Cursus PC', 'Ap #391-7529 Aliquam Av.', 'Newark', 'DE', '50049', '(422)535-0635', 'Michael, Orlando T.', '(320)721-0991', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (283, 'Magna A Company', 'P.O. Box 906, 5195 Nulla St.', 'Olympia', 'WA', '45866', '(985)146-2343', 'Galloway, Shana R.', '(251)590-1618', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (284, 'Ut PC', '154-4065 Scelerisque Rd.', 'Montgomery', 'AL', '35970', '(242)112-8979', 'Ortiz, Florence G.', '(818)454-6372', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (285, 'Dapibus Company', 'Ap #971-6413 Mi Rd.', 'San Diego', 'CA', '91298', '(839)998-7117', 'Keith, Maia O.', '(377)247-7516', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (286, 'Nulla Integer Industries', 'Ap #487-1971 A St.', 'Fort Wayne', 'IN', '66230', '(326)607-3399', 'Russell, Damon T.', '(422)698-5145', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (287, 'Ut Company', 'P.O. Box 462, 8287 Lacinia St.', 'Independence', 'MO', '74574', '(382)998-0994', 'Carrillo, Caldwell H.', '(231)758-2576', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (288, 'Et Risus Quisque LLC', '4781 Donec Road', 'Newport News', 'VA', '24983', '(568)214-7332', 'Burt, Curran J.', '(383)473-6983', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (289, 'Vulputate Associates', '660-1608 Et Road', 'Lafayette', 'LA', '34292', '(427)793-9452', 'Johns, Melissa S.', '(313)937-1047', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (290, 'Proin Company', 'Ap #707-2758 Sed Street', 'San Antonio', 'TX', '16246', '(980)991-0765', 'Blackwell, Cruz Z.', '(792)183-6616', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (291, 'Urna Justo Faucibus PC', 'Ap #528-1397 Quis Street', 'Phoenix', 'AZ', '85055', '(954)553-9077', 'Bowen, Hayden O.', '(434)272-3693', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (292, 'Egestas Company', 'P.O. Box 272, 4499 Ultricies Av.', 'Racine', 'WI', '11463', '(896)546-5538', 'Albert, Pandora J.', '(189)353-9594', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (293, 'Etiam Imperdiet Dictum Associates', '2342 Magna. Street', 'Hilo', 'HI', '71080', '(168)311-6959', 'Barnett, Stewart B.', '(632)747-3298', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (294, 'Sollicitudin Adipiscing Ligula Corp.', 'P.O. Box 696, 5425 Ante Road', 'Newark', 'DE', '80082', '(169)792-2088', 'Solomon, Belle C.', '(105)719-0833', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (295, 'Tempor Lorem LLP', '681-1059 Semper Road', 'Hartford', 'CT', '35109', '(164)213-3093', 'Austin, Alec W.', '(408)259-1560', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (296, 'Fringilla Inc.', '5498 Ullamcorper Rd.', 'Denver', 'CO', '89766', '(604)255-1688', 'Mcdowell, Whoopi F.', '(677)260-7708', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (297, 'Venenatis Vel Faucibus Company', 'P.O. Box 106, 855 Sagittis Rd.', 'Davenport', 'IA', '38449', '(825)199-6854', 'Gomez, Francis X.', '(657)220-5514', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (298, 'Magna Corp.', '6758 Pretium Av.', 'Chicago', 'IL', '44316', '(598)947-8242', 'Watts, Duncan N.', '(996)180-2587', 'N');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (299, 'Consectetuer Consulting', 'Ap #296-4606 Nunc Av.', 'Akron', 'OH', '22565', '(250)712-7248', 'Henson, Laurel O.', '(754)131-8168', 'Y');
|
||||
INSERT INTO custmast (CustID, Name, Addr, City, State, Zip, CorpPhone, AcctMgr, AcctPhone, Active) VALUES (300, 'Eu Nibh LLP', '212-1734 Pellentesque. Street', 'Madison', 'WI', '52631', '(993)144-3391', 'Walsh, Kiona L.', '(346)159-2488', 'N');
|
||||
|
||||
Update custmast set Name=upper(name), City=upper(City);
|
||||
update custmast set active = 'Y' where active = 'N' and mod(custid,2) = 0;
|
||||
@ -330,3 +336,11 @@ ADD COLUMN ChgTime TIMESTAMP not null DEFAULT CURRENT_TIMESTAMP
|
||||
ADD column ChgUser varchar(18) not null DEFAULT USER;
|
||||
|
||||
update custmast set chguser = '*SYSTEM*';
|
||||
|
||||
-- Indexes --
|
||||
drop index if exists custmast_name;
|
||||
create index custmast_name on custmast(name);
|
||||
drop index if exists custmast_city;
|
||||
create index custmast_city on custmast(city);
|
||||
drop index if exists custmast_state;
|
||||
create index custmast_state on custmast(state);
|
||||
31
5250_Subfile/Custmast2.sql
Normal file
31
5250_Subfile/Custmast2.sql
Normal file
@ -0,0 +1,31 @@
|
||||
-- Creates CUSTMAST and Indexes -------------------------------
|
||||
-- Can then "CALL LOADCUST2 nnn" to load nnn random records.
|
||||
|
||||
-- 02/2024 Change CustID to char to allow alpha/numeric keys
|
||||
|
||||
set schema lennons1; -- <<<<< Change to your library <<<<<<
|
||||
DROP TABLE custmast;
|
||||
|
||||
CREATE TABLE custmast (
|
||||
CustID CHAR(4) NOT NULL
|
||||
,Name CHAR(40) NOT NULL
|
||||
,Addr CHAR(40) NOT NULL
|
||||
,City CHAR(20) NOT NULL
|
||||
,State CHAR(2) NOT NULL
|
||||
,Zip CHAR(10) NOT NULL
|
||||
,CorpPhone CHAR(20) DEFAULT ' '
|
||||
,AcctMgr CHAR(40) DEFAULT ' '
|
||||
,AcctPhone CHAR(20) DEFAULT ' '
|
||||
,Active CHAR(1) DEFAULT 'Y'
|
||||
,ChgTime TIMESTAMP not null DEFAULT CURRENT_TIMESTAMP
|
||||
,ChgUser varchar(18) not null DEFAULT USER
|
||||
,PRIMARY KEY (Custid)
|
||||
)
|
||||
RCDFMT CUSTMASTF;
|
||||
-- Indexes --
|
||||
drop index if exists custmast_name;
|
||||
create index custmast_name on custmast(name);
|
||||
drop index if exists custmast_city;
|
||||
create index custmast_city on custmast(city);
|
||||
drop index if exists custmast_state;
|
||||
create index custmast_state on custmast(state);
|
||||
20
5250_Subfile/LOADCUST.CLLE
Normal file
20
5250_Subfile/LOADCUST.CLLE
Normal file
@ -0,0 +1,20 @@
|
||||
/*=== Creates CUSTMAST & Indexes and 300 records ===*/
|
||||
PGM
|
||||
CHKOBJ OBJ(CUSTMAST) OBJTYPE(*FILE)
|
||||
MONMSG MSGID(CPF9801) EXEC(GOTO CMDLBL(SUBMIT))
|
||||
|
||||
ALCOBJ OBJ((CUSTMAST *FILE *EXCLRD)) WAIT(5) +
|
||||
CONFLICT(*RQSRLS)
|
||||
MONMSG MSGID(CPF1002) EXEC(DO)
|
||||
SNDMSG MSG('Cannot allocate CUSTMAST') +
|
||||
TOUSR(*REQUESTER)
|
||||
RETURN
|
||||
ENDDO
|
||||
|
||||
DLCOBJ OBJ((CUSTMAST *FILE *EXCLRD))
|
||||
SUBMIT: SBMJOB CMD(RUNSQLSTM +
|
||||
SRCSTMF('/home/LENNONS/IBMi_IFS_DEV/5250_Subfile/+
|
||||
custmast.sql') +
|
||||
COMMIT(*NONE) ERRLVL(40) DECMPT(*PERIOD)) +
|
||||
JOB(LOADCUST)
|
||||
ENDPGM
|
||||
19
5250_Subfile/LOADCUST2.CLLE
Normal file
19
5250_Subfile/LOADCUST2.CLLE
Normal file
@ -0,0 +1,19 @@
|
||||
/* === Loads CUSTMAST with as many random records as specified === */
|
||||
/* Submits job to batch */
|
||||
|
||||
PGM PARM(&NUM)
|
||||
DCL VAR(&NUM) TYPE(*DEC) LEN(15 5)
|
||||
CHKOBJ OBJ(CUSTMAST) OBJTYPE(*FILE)
|
||||
MONMSG MSGID(CPF9801) EXEC(GOTO CMDLBL(SUBMIT))
|
||||
|
||||
ALCOBJ OBJ((CUSTMAST *FILE *EXCLRD)) WAIT(5) +
|
||||
CONFLICT(*RQSRLS)
|
||||
MONMSG MSGID(CPF1002) EXEC(DO)
|
||||
SNDMSG MSG('Cannot allocate CUSTMAST') +
|
||||
TOUSR(*REQUESTER)
|
||||
RETURN
|
||||
ENDDO
|
||||
|
||||
DLCOBJ OBJ((CUSTMAST *FILE *EXCLRD))
|
||||
SUBMIT: SBMJOB CMD(CALL PGM(LOADCUSTR) PARM((&NUM))) JOB(LOADCUST2)
|
||||
ENDPGM
|
||||
256
5250_Subfile/LOADCUSTR.SQLRPGLE
Normal file
256
5250_Subfile/LOADCUSTR.SQLRPGLE
Normal file
@ -0,0 +1,256 @@
|
||||
**free
|
||||
// === Program to create "n" records of test data in CUSTMAST =====
|
||||
// === Assumes CUSTMAST is exists and will clear it first.
|
||||
// === City name, state and zip are generated from USPS data,
|
||||
// file CSZ, created from upload from USPS.COM with iACS.
|
||||
// See https://www.unitedstateszipcodes.org/zip-code-database/
|
||||
// Rest of the data i randomly generated.
|
||||
// This was an experimental program to use randomn number and
|
||||
// variable sized arrays. But it was fun to write...
|
||||
|
||||
ctl-opt DftActGrp(*no) ActGrp('QILE') BndDir('UTIL_BND':'SQL_BND':'SRV_BASE36');
|
||||
ctl-opt Option(*nounref: *nodebugio: *srcstmt);
|
||||
ctl-opt ExprOpts(*ResDecPos) ExtBinInt( *Yes );
|
||||
ctl-opt Debug(*constants : *retval);
|
||||
ctl-opt Indent('| ');
|
||||
/COPY ../Copy_Mbrs/SRV_SQL_P.RPGLE
|
||||
/COPY ../Copy_Mbrs/SRV_RAND_P.RPGLE
|
||||
/COPY ../Copy_Mbrs/BASE36_P.RPGLE
|
||||
|
||||
// === Program Parameter =======================================
|
||||
dcl-pi *n;
|
||||
parm_recds packed(15 : 5); // Number of records to create
|
||||
end-pi;
|
||||
dcl-s p_recds int(10);
|
||||
|
||||
dcl-ds Fld ExtName('CUSTMAST') Qualified;
|
||||
end-ds;
|
||||
// === SQL State Constants =====================================
|
||||
dcl-c SQLSUCCESS '00000';
|
||||
dcl-c SQLNODATA '02000';
|
||||
dcl-c SQLNOMOREDATA '02000';
|
||||
dcl-c SQLNOTJOURNALED '01567';
|
||||
|
||||
dcl-s companyType varchar(10) dim(*auto : 30);
|
||||
dcl-s streetType varchar(10) dim(*auto : 30);
|
||||
dcl-s varCUSTID varchar(4);
|
||||
// === City/state/zip record ===
|
||||
dcl-ds csz qualified;
|
||||
zip int(10);
|
||||
ziptype char(10);
|
||||
city char(20);
|
||||
st char(2);
|
||||
end-ds;
|
||||
|
||||
// === Arrary of City, State and Zip records ===
|
||||
dcl-ds csz_a likeds(csz) dim(*auto : 50000) ;
|
||||
|
||||
dcl-s cszCount int(10);
|
||||
dcl-s MaxL int(10);
|
||||
dcl-s csz_I int(10);
|
||||
dcl-s j int(10);
|
||||
// dcl-s t int(10);
|
||||
DCL-S adrX int(10);
|
||||
dcl-s nRecds int(10);
|
||||
dcl-s wk10 char(10);
|
||||
dcl-s wkStr varchar(50);
|
||||
|
||||
// === Build array of Company types ===
|
||||
companyType(1) = 'INC';
|
||||
companyType(*next) = 'LLC';
|
||||
companyType(*next) = 'LLP';
|
||||
companyType(*next) = 'COMPANY';
|
||||
companyType(*next) = '& SONS';
|
||||
companyType(*next) = 'ET FILS';
|
||||
companyType(*next) = 'PLC';
|
||||
companyType(*next) = 'CORP';
|
||||
companyType(*next) = 'LTD';
|
||||
companyType(*next) = 'SOLE';
|
||||
companyType(*next) = 'PARTNERS';
|
||||
companyType(*next) = 'ASSOC';
|
||||
|
||||
// === Build array of street types ===
|
||||
streetType(1) = 'STREET';
|
||||
streetType(*next) = 'ST';
|
||||
streetType(*next) = 'ROAD';
|
||||
streetType(*next) = 'RD';
|
||||
streetType(*next) = 'AVENUE';
|
||||
streetType(*next) = 'AVE';
|
||||
streetType(*next) = 'PLACE';
|
||||
streetType(*next) = 'CIRCLE';
|
||||
streetType(*next) = 'SQUARE';
|
||||
streetType(*next) = 'HWY';
|
||||
streetType(*next) = 'VISTA';
|
||||
streetType(*next) = 'CALLE';
|
||||
streetType(*next) = 'RANCH';
|
||||
streetType(*next) = 'CRESCENT';
|
||||
streetType(*next) = 'COURT';
|
||||
streetType(*next) = 'WAY';
|
||||
|
||||
exec sql set option datfmt=*iso,
|
||||
commit=*none,
|
||||
closqlcsr=*endmod;
|
||||
|
||||
// === Clear Custmast file ===
|
||||
exec sql truncate lennons1.custmast;
|
||||
if (SQLSTT <> SQLSUCCESS and SQLSTT <> SQLNODATA);
|
||||
SQLProblem('truncate custmast');
|
||||
endif;
|
||||
|
||||
// === Size the City/State/Zip array ===
|
||||
exec sql select count(*) into :cszCount
|
||||
from lennons1.csz
|
||||
where length(trim(city)) <= 20;
|
||||
if (SQLSTT <> SQLSUCCESS);
|
||||
SQLProblem('select count(*)');
|
||||
endif;
|
||||
%elem(csz_a : *alloc) = cszCount + 1;
|
||||
|
||||
// === Populate csz_a ===
|
||||
exec sql declare csz_cur cursor for
|
||||
select zip, type, upper(city), trim(state)
|
||||
from lennons1.csz
|
||||
where length(trim(city)) <= 20;
|
||||
exec sql open csz_cur;
|
||||
if (SQLSTT <> SQLSUCCESS );
|
||||
SQLProblem('Open csz_cur');
|
||||
endif;
|
||||
j=1;
|
||||
dow (1=1);
|
||||
exec sql fetch from csz_cur into :csz;
|
||||
if SQLSTT = SQLNOMOREDATA;
|
||||
leave;
|
||||
endif;
|
||||
if SQLSTT <> SQLSUCCESS;
|
||||
SQLProblem('fetch fron csz_cur');
|
||||
endif;
|
||||
csz_a(j) = csz;
|
||||
j += 1;
|
||||
enddo;
|
||||
|
||||
// === Build CUSTMAST records =================================
|
||||
p_recds = parm_recds;
|
||||
varCUSTID = '1001';
|
||||
for nRecds = 1 to p_recds;
|
||||
clear Fld;
|
||||
Fld.CUSTID = varCUSTID;
|
||||
varCUSTID = BASE36ADD(varCUSTID); // Alpha-numeric key
|
||||
Fld.ACTIVE = 'Y';
|
||||
if (%rem(nRecds : 7) = 0);
|
||||
Fld.ACTIVE = 'N';
|
||||
endif;
|
||||
|
||||
// === City/State Zip ===
|
||||
csz_I = Rand_Int(1:%elem(csz_a));
|
||||
Fld.STATE = csz_a(csz_I).st;
|
||||
Fld.CITY = csz_a(csz_I).city;
|
||||
wk10 = %editc(csz_a(csz_I).zip:'X');
|
||||
Fld.ZIP = %subst(wk10 :6 :5);
|
||||
|
||||
// === Company Name ===
|
||||
clear wkStr;
|
||||
// Specify a random name length leaving space for
|
||||
// a company6y type suffix.
|
||||
MaxL = Rand_Int(5 : %len(Fld.Name) - 12);
|
||||
wkStr = wkStr + genWord(5:11) + ' ';
|
||||
dow %len(wkStr) <= MaxL;
|
||||
wkStr = wkStr + genWord(5:11) + ' ';
|
||||
enddo;
|
||||
|
||||
// Add company "types" to some records
|
||||
j = Rand_Int(1:(%elem(companyType) * 1.8));
|
||||
if j <= %elem(companyType);
|
||||
wkStr = %trim(wkStr) + ' ' + companyType(j);
|
||||
endif;
|
||||
Fld.NAME = wkStr;
|
||||
|
||||
// === Address ===
|
||||
clear wkStr;
|
||||
adrX = %rem(nRecds :4);
|
||||
MaxL = Rand_Int(5 : %len(Fld.ADDR) - 12);
|
||||
if adrX <> 0; //Add street number to most
|
||||
wkStr = %trim(%editc(Rand_Int(1:5000) : '3')) + ' ';
|
||||
endif;
|
||||
wkStr = wkStr + genWord(5:11) + ' ';
|
||||
dow %len(wkStr) <= MaxL;
|
||||
wkStr = wkStr + genWord(5:11) + ' ';
|
||||
enddo;
|
||||
// Add street "types" to some records
|
||||
j = Rand_Int(1:(%elem(streetType) * 1.75));
|
||||
if j <= %elem(streetType);
|
||||
wkStr = %trim(wkStr) + ' ' + streetType(j);
|
||||
endif;
|
||||
Fld.ADDR = wkStr;
|
||||
|
||||
// === Phone numbers ===
|
||||
Fld.CORPPHONE = genPhone();
|
||||
Fld.ACCTPHONE = genPhone();
|
||||
|
||||
// === Account Manager ===
|
||||
if %rem(nRecds :3) = 0;
|
||||
wkStr = genWord(1:1) + ' ';
|
||||
wkStr += genWord(1:1) + ' ';
|
||||
wkStr += genWord(4:10);
|
||||
else;
|
||||
wkStr = genWord(3:6) + ' ';
|
||||
wkStr += genWord(5:9);
|
||||
endif;
|
||||
Fld.ACCTMGR = wkStr;
|
||||
|
||||
Fld.CHGUSER = '*SYSTEM*';
|
||||
|
||||
// === Write out a record ======================================
|
||||
exec sql insert into lennons1.custmast values(:Fld);
|
||||
if (SQLSTT <> SQLSUCCESS);
|
||||
SQLProblem('Insert into custmast');
|
||||
endif;
|
||||
endfor;
|
||||
|
||||
// === All finished ============================================
|
||||
*inlr = *on;
|
||||
return;
|
||||
|
||||
// === Generate a word =========================================
|
||||
dcl-proc genWord;
|
||||
dcl-pi genWord varchar(30);
|
||||
MinL int(10) const;
|
||||
MaxL int(10) const;
|
||||
end-pi;
|
||||
// Straight alphabetic
|
||||
dcl-s Alpha varchar(50)
|
||||
inz('ABCDEFGHIIJKLMNOPQRSTUVWXYZZ');
|
||||
// Biased towards vowels
|
||||
dcl-s vAlpha varchar(50)
|
||||
inz('AAAAABCDEEEEEFGHIIIIIJKLMNOOOOOPQRSTUUUVWXYZZ');
|
||||
|
||||
dcl-s wk30 varchar(30) inz;
|
||||
dcl-s TgtL int(10);
|
||||
dcl-s j int(10);
|
||||
|
||||
wk30 = %subst(Alpha : Rand_Int(1 : %len(Alpha)) : 1);
|
||||
if (MinL<> 1 and MaxL <> 1);
|
||||
wk30 += %subst(vAlpha : Rand_Int(1 : %len(vAlpha)) : 1);
|
||||
endif;
|
||||
TgtL = Rand_Int(MinL:MaxL) - 2;
|
||||
for j=1 by 2 to TgtL;
|
||||
wk30 += %subst(Alpha : Rand_Int(1 : %len(Alpha)) : 1);
|
||||
wk30 += %subst(vAlpha : Rand_Int(1 : %len(vAlpha)) : 1);
|
||||
endfor;
|
||||
return wk30;
|
||||
end-proc;
|
||||
|
||||
// === Generate a phone like (800) 231-1876 ====================
|
||||
dcl-proc genPhone;
|
||||
dcl-pi genPhone varchar(20);
|
||||
end-pi;
|
||||
dcl-s wkret varchar(20);
|
||||
dcl-s wk3 char(3);
|
||||
dcl-s wk4 char(4);
|
||||
wk3 = %editc(%dec(Rand_Int(100:900):3 :0) : 'X');
|
||||
wkret = '(' + wk3 + ') ';
|
||||
wk3 = %editc(%dec(Rand_Int(1:998) :3 :0) : 'X');
|
||||
wkret += wk3 + '-';
|
||||
wk4 = (%editc(%dec(Rand_Int(1:9900) :4 :0) : 'X'));
|
||||
wkret += wk4;
|
||||
return wkret;
|
||||
end-proc;
|
||||
193
5250_Subfile/MTNCUSTD.DSPF
Normal file
193
5250_Subfile/MTNCUSTD.DSPF
Normal file
@ -0,0 +1,193 @@
|
||||
A*===============================================================
|
||||
A* Window to display or update Customer Master
|
||||
A*===============================================================
|
||||
A* CRTDSPF FILE(MTNCUSTD) SRCFILE(...) RSTDSP(*YES)
|
||||
A*==============================================================
|
||||
A* There is a naming convention for the fields in each record.
|
||||
A* -- Screen Header: Fields begin with SH_
|
||||
A* -- Details Fields begin with SD_
|
||||
A* -- Screen footer: Fields begin with SFT_
|
||||
A*===============================================================
|
||||
A* Indicator usage:
|
||||
A* 01-20 Are not routinely cleared after an EXFMT. Some
|
||||
A* of these are used in subfile & subfile control for
|
||||
A* highlighting, etc., which does not change unless
|
||||
A* explicitly requested.
|
||||
A* 21-99 Are routinely cleared after an EXFMT.
|
||||
A* 80-89 Subfile record
|
||||
A* 90 Nessage Subfile end
|
||||
A* 91-99 Subfile Control Record
|
||||
A* Note: INDARA is specified here and in the program and this
|
||||
A* means that the display file indicators are in a
|
||||
A* means that the display file indicators are in a
|
||||
A* data structure separate from the program indicators.
|
||||
A* This makes it easy to name the indicators in the DS.
|
||||
a* Note: DSPATR HI and RI at the same time = non-display. Thus
|
||||
a* when we turn on RI were turn of HI,
|
||||
A*===============================================================
|
||||
A*%%EC
|
||||
A DSPSIZ(24 80 *DS3)
|
||||
A PRINT
|
||||
A INDARA
|
||||
A ALTHELP
|
||||
A CF04
|
||||
A CA05
|
||||
A CA12
|
||||
A HELP
|
||||
A*===============================================================
|
||||
A*=== Screen Header: Fields begin with SH_ =====================
|
||||
A*
|
||||
A R SH_HDR
|
||||
A OVERLAY
|
||||
A TEXT('Screen Header')
|
||||
A WDWBORDER((*COLOR PNK))
|
||||
A WINDOW(*DFT 17 54)
|
||||
A SH_PGM 10A O 1 1
|
||||
A 1 21'Customer Master'
|
||||
A 1 47DATE
|
||||
A EDTCDE(Y)
|
||||
A 2 1USER
|
||||
A SH_FUNCT 25A O 2 16DSPATR(HI)
|
||||
A 2 47TIME
|
||||
A*===============================================================
|
||||
A*=== Data Details - Fields begin with SD_ ======================
|
||||
A R DETAILS
|
||||
A OVERLAY
|
||||
A WINDOW(SH_HDR)
|
||||
A CHGINPDFT
|
||||
A RTNCSRLOC(&SD_PMT_RCD &SD_PMT_FLD)
|
||||
A*---------------------------------------------------------------
|
||||
A 5 1'Customer Id'
|
||||
A SD_CUSTID 4 5 14DSPATR(HI)
|
||||
A 5 20'Active Status'
|
||||
A SD_ACTIVE 1 B 5 35
|
||||
A N40 DSPATR(HI)
|
||||
A 40 DSPATR(RI)
|
||||
A 41 DSPATR(PC)
|
||||
A 10 DSPATR(PR)
|
||||
A N10 DSPATR(UL)
|
||||
A 6 1'Name'
|
||||
A SD_NAME 40 B 6 9
|
||||
A N42 DSPATR(HI)
|
||||
A 42 DSPATR(RI)
|
||||
A 43 DSPATR(PC)
|
||||
A 10 DSPATR(PR)
|
||||
A N10 DSPATR(UL)
|
||||
A 7 1'Address'
|
||||
A SD_ADDR 40 B 7 9
|
||||
A N44 DSPATR(HI)
|
||||
A 44 DSPATR(RI)
|
||||
A 45 DSPATR(PC)
|
||||
A 10 DSPATR(PR)
|
||||
A N10 DSPATR(UL)
|
||||
A 8 1'City'
|
||||
A SD_CITY 20 B 8 9
|
||||
A N46 DSPATR(HI)
|
||||
A 46 DSPATR(RI)
|
||||
A 47 DSPATR(PC)
|
||||
A 10 DSPATR(PR)
|
||||
A N10 DSPATR(UL)
|
||||
A 8 32'ST+'
|
||||
A SD_STATE 2 B 8 36
|
||||
A N48 DSPATR(HI)
|
||||
A 48 DSPATR(RI)
|
||||
A 49 DSPATR(PC)
|
||||
A 10 DSPATR(PR)
|
||||
A N10 DSPATR(UL)
|
||||
A 8 39'ZIP'
|
||||
A SD_ZIP 10 B 8 43
|
||||
A N50 DSPATR(HI)
|
||||
A 50 DSPATR(RI)
|
||||
A 51 DSPATR(PC)
|
||||
A 10 DSPATR(PR)
|
||||
A N10 DSPATR(UL)
|
||||
A 9 1'Account Manager'
|
||||
A 10 5'Phone'
|
||||
A SD_ACCTPH 20 B 10 15
|
||||
A N52 DSPATR(HI)
|
||||
A 52 DSPATR(RI)
|
||||
A 53 DSPATR(PC)
|
||||
A 10 DSPATR(PR)
|
||||
A N10 DSPATR(UL)
|
||||
A 11 5'Name'
|
||||
A SD_ACCTMGR 40 B 11 15
|
||||
A N54 DSPATR(HI)
|
||||
A 54 DSPATR(RI)
|
||||
A 55 DSPATR(PC)
|
||||
A 10 DSPATR(PR)
|
||||
A N10 DSPATR(UL)
|
||||
A 12 1'Corporate Phone'
|
||||
A SD_CORPPH 20 B 12 17
|
||||
A N56 DSPATR(HI)
|
||||
A 56 DSPATR(RI)
|
||||
A 57 DSPATR(PC)
|
||||
A 10 DSPATR(PR)
|
||||
A N10 DSPATR(UL)
|
||||
A 13 1'Last Change'
|
||||
A N61 DSPATR(ND)
|
||||
A SD_CHGTIME 23 13 13
|
||||
A N61 DSPATR(ND)
|
||||
A 13 37'by'
|
||||
A N61 DSPATR(ND)
|
||||
A SD_CHGUSER 15 13 40
|
||||
A N61 DSPATR(ND)
|
||||
A SD_PMT_RCD 10A H
|
||||
A SD_PMT_FLD 10A H
|
||||
A*===============================================================
|
||||
A*=== Screen footer & function keys: Fields begin with SFT_ ====
|
||||
A*
|
||||
A R SFT_FKEY
|
||||
A TEXT('Screen Footer')
|
||||
A OVERLAY
|
||||
A WINDOW(SH_HDR)
|
||||
A 14 1' Demo Corp of America -
|
||||
A '
|
||||
A DSPATR(UL)
|
||||
A SFT_KEYS 53A O 15 1COLOR(BLU)
|
||||
A*===============================================================
|
||||
A*=== Message Subfile: No fields ===============================
|
||||
A*
|
||||
A R MSGSFL SFL
|
||||
A TEXT('Message Subfile')
|
||||
A SFLMSGRCD(16)
|
||||
A MSGKEY SFLMSGKEY
|
||||
A MSGPGMQ SFLPGMQ(10)
|
||||
A*===============================================================
|
||||
A*=== Message Subfile Control: No fields ========================
|
||||
A*
|
||||
A R MSGCTL SFLCTL(MSGSFL)
|
||||
A TEXT('Message Subfile Control')
|
||||
A WINDOW(SH_HDR)
|
||||
A PAGEDOWN
|
||||
A PAGEUP
|
||||
A OVERLAY
|
||||
A SFLDSP
|
||||
A SFLDSPCTL
|
||||
A SFLINZ
|
||||
A N90 SFLEND
|
||||
A SFLSIZ(0002)
|
||||
A SFLPAG(0001)
|
||||
A MSGPGMQ SFLPGMQ(10)
|
||||
A*===============================================================
|
||||
A*=== Dummy Record - Assume =====================================
|
||||
A*
|
||||
A R DUMMY
|
||||
A ASSUME
|
||||
A KEEP
|
||||
A 1 2'*'
|
||||
A*%%RS+<record-sequences>
|
||||
A*%%RS+ <sequence name="SCREEN1">
|
||||
A*%%RS+ <device type="display" width="80" height="24" />
|
||||
A*%%RS+ <record-write record-format="SH_HDR" />
|
||||
A*%%RS+ <record-write record-format="DETAILS" />
|
||||
A*%%RS+ <record-write record-format="SFT_FKEY" />
|
||||
A*%%RS+ <record-write record-format="MSGSFL" />
|
||||
A*%%RS+ <record-write record-format="MSGCTL" />
|
||||
A*%%RS+ <record-write record-format="DUMMY" />
|
||||
A*%%RS+ </sequence>
|
||||
A*%%RS </record-sequences>
|
||||
A*%%RS+<record-sequences>
|
||||
A*%%RS+ <sequence name="Untitled">
|
||||
A*%%RS+ <device type="display" width="80" height="24" />
|
||||
A*%%RS+ </sequence>
|
||||
A*%%RS </record-sequences>
|
||||
File diff suppressed because it is too large
Load Diff
171
5250_Subfile/PMTCUSTD.DSPF
Normal file
171
5250_Subfile/PMTCUSTD.DSPF
Normal file
@ -0,0 +1,171 @@
|
||||
A*===============================================================
|
||||
A* This is a full screen expanding subfile to search for
|
||||
A* a customer.
|
||||
A* - There are filters limit selection.
|
||||
A* - A message subfile is included.
|
||||
A*===============================================================
|
||||
A* CRTDSPF FILE(PMTCUSTD) SRCFILE(...) RSTDSP(*YES)
|
||||
A*==============================================================
|
||||
A* There is a naming convention for the fields in each record.
|
||||
A* -- Screen Header: Fields begin with SH_
|
||||
A* -- Subfile: Fields begin with SF_
|
||||
A* -- Subfile Control: Fields begin with SC_
|
||||
A* -- Screen footer: Fields begin with SFT_
|
||||
A*===============================================================
|
||||
A* Indicator usage:
|
||||
A* 01-20 Are not routinely cleared after an EXFMT. Some
|
||||
A* of these are used in subfile & subfile control for
|
||||
A* highlighting, etc., which does not change unless
|
||||
A* explicitly requested.
|
||||
A* 21-99 Are routinely cleared after an EXFMT.
|
||||
a* 79 SC_NAME Position Cursor
|
||||
A* 80-89 Subfile record
|
||||
A* 90 Nessage Subfile end
|
||||
A* 91-99 Subfile Control Record
|
||||
A* Note: INDARA is specified here and in the program and this
|
||||
A* means that the display file indicators are in a
|
||||
A* data structure separate from the program indicators.
|
||||
A* This makes it easy to name the indicators in the DS.
|
||||
A*==============================================================
|
||||
A DSPSIZ(24 80 *DS3)
|
||||
A PRINT
|
||||
A INDARA
|
||||
A ALTHELP
|
||||
A CA03
|
||||
A CF04
|
||||
A CA05
|
||||
A CA06
|
||||
A CA09
|
||||
A CA42
|
||||
A HELP
|
||||
A*===============================================================
|
||||
A*=== Screen Header: Fields begin with SH_ =====================
|
||||
A*
|
||||
A R SH_HDR
|
||||
A OVERLAY
|
||||
A TEXT('Screen Header')
|
||||
A SH_PGM 10A O 1 2
|
||||
A 1 33'Customer Master'
|
||||
A 1 72DATE
|
||||
A EDTCDE(Y)
|
||||
A SH_FUNCT 50A O 2 16DSPATR(HI)
|
||||
A 2 72TIME
|
||||
A 2 2USER
|
||||
A*===============================================================
|
||||
A*=== Subfile: Fields begin with SF_ ===========================
|
||||
A*
|
||||
A R SFL SFL
|
||||
A TEXT('SubFile')
|
||||
A 80 SFLNXTCHG
|
||||
A SF_ACT_H 1D H
|
||||
A SF_CUST_H 4D H
|
||||
A SF_OPT 1A B 9 3
|
||||
A 81 DSPATR(RI)
|
||||
A 82 DSPATR(PC)
|
||||
A SF_NAME 40A O 9 6
|
||||
A 83 COLOR(RED)
|
||||
A SF_CITY 20A O 9 47
|
||||
A 83 COLOR(RED)
|
||||
A SF_STATE 2A O 9 69
|
||||
A 83 COLOR(RED)
|
||||
A SF_ZIP 5A O 9 74
|
||||
A 83 COLOR(RED)
|
||||
A*===============================================================
|
||||
A*=== Subfile Control: Fields begin with SC_ ====================
|
||||
A*
|
||||
A R SFLCTL SFLCTL(SFL)
|
||||
A SFLSIZ(0013)
|
||||
A SFLPAG(0012)
|
||||
A TEXT('Subfile Control')
|
||||
A PAGEDOWN
|
||||
A RTNCSRLOC(&SC_PMT_RCD &SC_PMT_FLD)
|
||||
A BLINK
|
||||
A OVERLAY
|
||||
A N98 ERASE(SFL)
|
||||
A 98 SFLDSP
|
||||
A SFLDSPCTL
|
||||
A 99 SFLCLR
|
||||
A 97 SFLEND(*MORE)
|
||||
A 4 2'Name starts with:'
|
||||
A 4 31'City Starts with:'
|
||||
A 4 60'State+'
|
||||
A 4 71'Including'
|
||||
A COLOR(RED)
|
||||
A N03 DSPATR(ND)
|
||||
A SC_NAME 13A B 5 6
|
||||
A 79 DSPATR(PC)
|
||||
A SC_CITY 13A B 5 35
|
||||
A SC_STATE 2A B 5 62
|
||||
A 5 71'Inctives'
|
||||
A COLOR(RED)
|
||||
A N03 DSPATR(ND)
|
||||
A 6 2'Type options, press Enter.'
|
||||
A COLOR(BLU)
|
||||
A SC_OPTIONS 69A 7 2COLOR(BLU)
|
||||
A 8 2'Opt'
|
||||
A DSPATR(HI)
|
||||
A 8 6'Customer Name'
|
||||
A DSPATR(UL)
|
||||
A COLOR(WHT)
|
||||
A 8 47'City '
|
||||
A DSPATR(UL)
|
||||
A COLOR(WHT)
|
||||
A 8 69'St'
|
||||
A DSPATR(UL)
|
||||
A COLOR(WHT)
|
||||
A 8 74'ZIP '
|
||||
A COLOR(WHT)
|
||||
A DSPATR(UL)
|
||||
A SC_PMT_RCD 10A H
|
||||
A SC_PMT_FLD 10A H
|
||||
A SC_CSR_RCD 4S 0H SFLRCDNBR(CURSOR)
|
||||
A*===============================================================
|
||||
A*=== Screen footer & function keys: Fields begin with SFT_ ====
|
||||
A*
|
||||
A R SFT_FKEY
|
||||
A TEXT('Screen Footer')
|
||||
A OVERLAY
|
||||
A 22 2' Demo Cor-
|
||||
A p of America -
|
||||
A '
|
||||
A DSPATR(UL)
|
||||
A SFT_KEYS 78A O 23 2COLOR(BLU)
|
||||
A*===============================================================
|
||||
A*=== Message Subfile: No fields ===============================
|
||||
A*
|
||||
A R MSGSFL SFL
|
||||
A TEXT('Message Subfile')
|
||||
A SFLMSGRCD(24)
|
||||
A MSGKEY SFLMSGKEY
|
||||
A MSGPGMQ SFLPGMQ(10)
|
||||
A*===============================================================
|
||||
A*=== Message Subfile Control: No fields ========================
|
||||
A*
|
||||
A R MSGCTL SFLCTL(MSGSFL)
|
||||
A TEXT('Message Subfile Control')
|
||||
A PAGEDOWN
|
||||
A PAGEUP
|
||||
A OVERLAY
|
||||
A SFLDSP
|
||||
A SFLDSPCTL
|
||||
A SFLINZ
|
||||
A N90 SFLEND
|
||||
A SFLSIZ(0002)
|
||||
A SFLPAG(0001)
|
||||
A MSGPGMQ SFLPGMQ(10)
|
||||
A*===============================================================
|
||||
A*=== Dummy Record ==============================================
|
||||
A*
|
||||
A R DUMMY
|
||||
A 24 79'*'
|
||||
A*%%RS+<record-sequences>
|
||||
A*%%RS+ <sequence name="TOP">
|
||||
A*%%RS+ <device type="display" width="80" height="24" />
|
||||
A*%%RS+ <record-write record-format="SH_HDR" />
|
||||
A*%%RS+ <record-write record-format="SFT_FKEY" />
|
||||
A*%%RS+ <record-write record-format="SFL" />
|
||||
A*%%RS+ <record-write record-format="SFLCTL" />
|
||||
A*%%RS+ <record-write record-format="MSGSFL" />
|
||||
A*%%RS+ <record-write record-format="MSGCTL" />
|
||||
A*%%RS+ </sequence>
|
||||
A*%%RS </record-sequences>
|
||||
File diff suppressed because it is too large
Load Diff
170
5250_Subfile/PMTSTATED.DSPF
Normal file
170
5250_Subfile/PMTSTATED.DSPF
Normal file
@ -0,0 +1,170 @@
|
||||
A*===============================================================
|
||||
A* This is a "load all" subfile in a windown to select a
|
||||
A* state code.
|
||||
A*===============================================================
|
||||
A* CRTDSPF FILE(PMTSTATED) SRCFILE(...) RSTDSP(*YES)
|
||||
A*==============================================================
|
||||
A* There is a naming convention for the fields in each record.
|
||||
A* -- Screen Header: Fields begin with SH_
|
||||
A* -- Subfile: Fields begin with SF_
|
||||
A* -- Subfile Control: Fields begin with SC_
|
||||
A* -- Screen footer: Fields begin with SFT_
|
||||
A*===============================================================
|
||||
A* Indicator usage:
|
||||
A* 01-20 Are not routinely cleared after an EXFMT. Some
|
||||
A* of these are used in subfile & subfile control for
|
||||
A* highlighting, etc., which does not change unless
|
||||
A* explicitly requested.
|
||||
A* 21-99 Are routinely cleared after and EXFMT.
|
||||
A* 80-89 Subfile record
|
||||
A* 90 Nessage Subfile end
|
||||
A* 91-99 Subfile Control Record
|
||||
A* Note: INDARA is specified here and in the program and this
|
||||
A* means that the display file indicators are in a
|
||||
A* data structure separate from the program indicators.
|
||||
A* This makes it easy to name the indicators in the DS.
|
||||
A*==============================================================
|
||||
A DSPSIZ(24 80 *DS3 -
|
||||
A 27 132 *DS4)
|
||||
A PRINT
|
||||
A INDARA
|
||||
A ALTHELP
|
||||
A HELP
|
||||
A*===============================================================
|
||||
A*=== Screen Header: Fields begin with SH_ =====================
|
||||
A*
|
||||
A R SH_HDR
|
||||
A OVERLAY
|
||||
A TEXT('Screen Header')
|
||||
A WINDOW(*DFT 16 40)
|
||||
A WDWBORDER((*DSPATR RI) (*CHAR +
|
||||
A ' '))
|
||||
A WDWBORDER((*COLOR BLU))
|
||||
A SH_PGM 10A O 1 1
|
||||
A 1 16'USA States'
|
||||
A COLOR(WHT)
|
||||
A 1 33DATE
|
||||
A EDTCDE(Y)
|
||||
A SH_FUNCT 17A O 2 13DSPATR(HI)
|
||||
A 2 33TIME
|
||||
A 2 1USER
|
||||
A*===============================================================
|
||||
A*=== Subfile: Fields begin with SF_ ===========================
|
||||
A*
|
||||
A R SFL SFL
|
||||
A TEXT('SubFile')
|
||||
A 80 SFLNXTCHG
|
||||
A SF_OPT 1A B 6 2
|
||||
A 81 DSPATR(RI)
|
||||
A 82 DSPATR(PC)
|
||||
A SF_CODE 2A 6 6
|
||||
A 22 COLOR(RED)
|
||||
A SF_NAME 30A O 6 11
|
||||
A 22 COLOR(RED)
|
||||
A*===============================================================
|
||||
A*=== Subfile Control: Fields begin with SC_ ====================
|
||||
A*
|
||||
A R SFLCTL SFLCTL(SFL)
|
||||
A CF03
|
||||
A CF05
|
||||
A CF07
|
||||
A CF12
|
||||
A *DS3 SFLSIZ(9999)
|
||||
A *DS4 SFLSIZ(9999)
|
||||
A *DS3 SFLPAG(0006)
|
||||
A *DS4 SFLPAG(0006)
|
||||
A *DS3 WINDOW(SH_HDR)
|
||||
A *DS4 WINDOW(SH_HDR)
|
||||
A TEXT('Subfile Control')
|
||||
A RTNCSRLOC(&SC_PMT_RCD &SC_PMT_FLD)
|
||||
A BLINK
|
||||
A OVERLAY
|
||||
A N98 ERASE(SFL)
|
||||
A 98 SFLDSP
|
||||
A SFLDSPCTL
|
||||
A 99 SFLCLR
|
||||
A 97 SFLEND(*MORE)
|
||||
A 3 1'Name Contains'
|
||||
A SC_NAME 10A B 3 16
|
||||
A 95 DSPATR(MDT)
|
||||
A SC_OPTIONS 20A 4 1COLOR(BLU)
|
||||
A 4 26'Sorted by:'
|
||||
A SC_SORTED 4 4 37
|
||||
A 5 1'Opt'
|
||||
A DSPATR(HI)
|
||||
A DSPATR(UL)
|
||||
A 5 5'Code'
|
||||
A 01 COLOR(PNK)
|
||||
A DSPATR(UL)
|
||||
A 5 11'Name '
|
||||
A DSPATR(UL)
|
||||
A 02 COLOR(PNK)
|
||||
A SC_PMT_RCD 10A H
|
||||
A SC_PMT_FLD 10A H
|
||||
A SC_CSR_RCD 4S 0H SFLRCDNBR(CURSOR)
|
||||
A*===============================================================
|
||||
A*=== Screen footer & function keys: Fields begin with SFT_ ====
|
||||
A*
|
||||
A R SFT_FKEY
|
||||
A *DS3 WINDOW(SH_HDR)
|
||||
A *DS4 WINDOW(SH_HDR)
|
||||
A TEXT('Screen Footer')
|
||||
A OVERLAY
|
||||
A 13 1' Demo Corp of America -
|
||||
A '
|
||||
A DSPATR(UL)
|
||||
A SFT_KEYS 40 O 14 1
|
||||
A*===============================================================
|
||||
A*=== Message Subfile: No fields ===============================
|
||||
A*
|
||||
A R MSGSFL SFL
|
||||
A TEXT('Message Subfile')
|
||||
A SFLMSGRCD(15)
|
||||
A MSGKEY SFLMSGKEY
|
||||
A MSGPGMQF SFLPGMQ(10)
|
||||
A*===============================================================
|
||||
A*=== Message Subfile Control: No fields ========================
|
||||
A*
|
||||
A R MSGCTL SFLCTL(MSGSFL)
|
||||
A TEXT('Message Subfile Control')
|
||||
A WINDOW(SH_HDR)
|
||||
A PAGEDOWN
|
||||
A PAGEUP
|
||||
A OVERLAY
|
||||
A SFLDSP
|
||||
A SFLDSPCTL
|
||||
A SFLINZ
|
||||
A N90 SFLEND
|
||||
A SFLSIZ(0002)
|
||||
A SFLPAG(0001)
|
||||
A MSGPGMQC SFLPGMQ(10)
|
||||
A*===============================================================
|
||||
A*=== Dummy Record - Assume =====================================
|
||||
A*
|
||||
A R DUMMY
|
||||
A ASSUME
|
||||
A 1 2' '
|
||||
A*%%RS+<record-sequences>
|
||||
A*%%RS+ <sequence name="SCREEN1">
|
||||
A*%%RS+ <device type="display" width="80" height="24" />
|
||||
A*%%RS+ <record-write record-format="SH_HDR" />
|
||||
A*%%RS+ <record-write record-format="SFL" />
|
||||
A*%%RS+ <record-write record-format="SFLCTL" />
|
||||
A*%%RS+ <record-write record-format="SFT_FKEY" />
|
||||
A*%%RS+ </sequence>
|
||||
A*%%RS </record-sequences>
|
||||
A*%%RS+<record-sequences>
|
||||
A*%%RS+ <sequence name="Untitled">
|
||||
A*%%RS+ <device type="display" width="132" height="27" />
|
||||
A*%%RS+ </sequence>
|
||||
A*%%RS </record-sequences>
|
||||
A*%%RS+<record-sequences>
|
||||
A*%%RS+ <sequence name="Untitled">
|
||||
A*%%RS+ <device type="display" width="80" height="24" />
|
||||
A*%%RS+ </sequence>
|
||||
A*%%RS </record-sequences>
|
||||
A*%%RS+<record-sequences>
|
||||
A*%%RS+ <sequence name="Untitled">
|
||||
A*%%RS+ <device type="display" width="80" height="24" />
|
||||
A*%%RS+ </sequence>
|
||||
A*%%RS </record-sequences>
|
||||
File diff suppressed because it is too large
Load Diff
@ -18,13 +18,11 @@ This is a working application that allows display, selection and maintenance of
|
||||
|
||||
## General Notes
|
||||
|
||||
Some of the programs use /Include statements, which are found in the Copy_Mbrs directory. So to compile you will need to create and populate a source file named COPY_MBRS.
|
||||
Some of the programs use /Include statements, which are found in the Copy_Mbrs directory.
|
||||
|
||||
The RPG code is free form, except that the D-Specs are fixed form. This probably allows more developers who are still on older versions of the OS, or are still using the out of date SEU, to more easily use the code. The code can be converted to totally free format using the free _**"JCRHFD - Rpg H,F,D to free form syntax"**_ command available at [JCRCMDS.COM](http://www.jcrcmds.com/jcrdown2.html#JCRHFD_tag). If there is interest I may post totally free form versions.
|
||||
The genesis of these programs was code that I wrote in RPG IV for a Fortune 500 retailer circa 2002-2004. The code was then cloned as a standard approach by another team leader. This code is a more modern version that I cleaned up in 2020 and restructured again in late 2023.
|
||||
|
||||
The genesis of these programs was code that I wrote in RPG IV for a Fortune 500 retailer circa 2002-2004. The code was then cloned as a standard approach by another team leader. This code is a more modern version that I cleaned up in 2020.
|
||||
|
||||
The style tries to have consistent naming and I do not share field names between the RPG and the display files--I've seen too many accidental modifications in my support career.
|
||||
My style tries to have consistent naming and I do not share field names between the RPG and the display files--I've seen too many accidental modifications in my support career.
|
||||
|
||||
The display file uses a private set of indicators, something I started doing to try to educate coworkers who were struggling with monolithic code where all 99 indicators were in use. You can also reset indicators and such in display files, but I prefer to do it myself.
|
||||
|
||||
@ -39,8 +37,10 @@ The display file uses a private set of indicators, something I started doing to
|
||||
- S gives 1=select 5=Display
|
||||
If the cursor is in a field with a + in the field name (ST+ here) you can press F4 to prompt the field.
|
||||
|
||||
Conceptually, you can call this program from almost anywhere and control access to it by whatever menuing or security system you have in place. The general user population would progably get Inquiry and Sales would have Maintenance. Selection could be used for any in-house program that needed to prompt for a customer id number.
|
||||
Conceptually, you can call this program from almost anywhere and control access to it by whatever menuing or security system you have in place. The general user population would progably get Inquiry and Sales would have Maintenance. Selection could be used for any in-house program that needed to prompt for a customer id number.
|
||||
|
||||
Note that this version uses a static SQL cursor, where City and State selection criteria use a "between" predicate. This differs from [the originally posted version](https://github.com/SJLennon/IBM-i-RPG-Free-CLP-Code/blob/master/5250_Subfile/PMTCUSTR.SQLRPGLE) which used a dynamic cursor which had to be prepared when the selection criteria changed. I think a static cursor makes coding easier and can improve performance since it doesn't need a "prepare". Conversely, on large files this approach may hurt performance. However, I tested the program on PUB400.COM with 1 million records and there was no discernable performance hit.
|
||||
|
||||
### MTNCUSTR/MTNCUSTD
|
||||
|
||||
RPG program that maintains a customer. Customer id is provided as the first parameter. It also adds or displays a customer. Function is controlled by the second parameter. It is called from PMTCUSTR, but it could be called from any program that has a customer id available, or which needs to add a customer.
|
||||
@ -74,3 +74,35 @@ The window has a blue border of reverse image blanks. This will display consiste
|
||||
### States.SQL
|
||||
|
||||
SQL Code to create and populate the STATES table, which is a table of USA state names and their 2-character abbreviations.
|
||||
|
||||
### Creating a large CUSTMAST
|
||||
|
||||
I have provided a program that will create as large number of fairly realistic random CUSTMAST records. To get a decent distribution of City, State, ZIP values I used a USPS file which you will have to upload from the USPS site.
|
||||
|
||||
#### LOADCUSTR.SQLRPGLE
|
||||
|
||||
This clears CUSTMAST and repopulates it with an many randon records are you specify. It requires the CSZ file, below. Typical usage is `call loadcustr 1000` to load 1,000 records.
|
||||
|
||||
#### CSZ (City/State/ZIP) File
|
||||
|
||||
This file contains real data, over 40,000 records, dowloaded from the USPS website.
|
||||
|
||||
To create the CSZ file:
|
||||
|
||||
- Download the City, State and Zip database from USPS as an Excel spreadsheet. It is a free download at this [link](https://www.unitedstateszipcodes.org/zip-code-database/).
|
||||
|
||||
- Delete all columns except zip, type, primary city and state. Raname primary_city to city, save, but leave the spreadsheet open.
|
||||
|
||||
- Select all data in the speadsheet (this will fill in starting and ending colums and rows later).
|
||||
|
||||
- Using iACS "Data transfer to IBM i" upload the spreadsheet to file CSZ.
|
||||
|
||||
- In the Actions tab choose "Create IBM i Database file" and follow the prompts.
|
||||
|
||||
- In "Change Data Options" set defaults of VARCHAR and INTEGER.
|
||||
|
||||
- Keep following the prompts.
|
||||
|
||||
- Set Library/file to *yourlib*/CSZ.
|
||||
|
||||
Read this [IBM article](https://www.ibm.com/support/pages/transferring-data-excel-using-access-client-solutions) on uploading data from Excel using Access Client Solutions if you need more help.
|
||||
@ -1,6 +1,9 @@
|
||||
-- Build table of US State code and names
|
||||
-- RUNSQLSTM SRCSTMF(states.sql) COMMIT(*NONE) ERRLVL(40)
|
||||
set schema lennons1;
|
||||
-- To run from the green screen, adjust the path below:
|
||||
-- RUNSQLSTM SRCSTMF('/home/LENNONS/IBMi_IFS_Dev/5250_Subfile/States.sql') COMMIT(*NONE) ERRLVL(40)
|
||||
-- Our paste into Run SQL Scripts in iACS.
|
||||
-- Or run directly in VS Code with Code for IBM i extension.
|
||||
set schema lennonsb; -- Change to your desired library
|
||||
drop table states;
|
||||
CREATE TABLE STATES (
|
||||
STATE CHAR(2) CCSID 273 NOT NULL ,
|
||||
|
||||
@ -20,11 +20,12 @@
|
||||
// It was origially a standalone program. Perhaps it should
|
||||
// be a service program and perhaps some of the diract API
|
||||
// call should be in a service program.
|
||||
// 02/--/2024 Set for soource in IFS
|
||||
// -------------------------------------------------------------------
|
||||
ctl-opt debug option(*nodebugio: *srcstmt)
|
||||
dftactgrp(*no) actgrp(*caller)
|
||||
main(Main);
|
||||
/copy copy_mbrs,USPHDR
|
||||
/copy ../Copy_Mbrs/USPHDR.RPGLE
|
||||
//=== CRTUSRSPC (QUSCTRUS) Parameters ================================
|
||||
dcl-s CusName char(20) inz('GETJOBTR QTEMP');
|
||||
dcl-s CusAttr char(10) inz('GETJOBTR ');
|
||||
|
||||
@ -16,6 +16,8 @@ GETOBJUC: +
|
||||
/* message fails. If this occurs, just continue and */
|
||||
/* *LIBL may appear in the message. */
|
||||
/* -----------------------------------------------------------------*/
|
||||
/* 02/--/2024 CPF7306 to allow for SQL created GETOBJUP member */
|
||||
/* -----------------------------------------------------------------*/
|
||||
|
||||
/* Input parameters */
|
||||
DCL VAR(&OBJECT) TYPE(*CHAR) LEN(20) /* Obj & lib */
|
||||
@ -58,6 +60,7 @@ GETOBJUC: +
|
||||
CRTDUPOBJ OBJ(GETOBJUP) FROMLIB(&FRMOBJLIB) OBJTYPE(*FILE) +
|
||||
TOLIB(QTEMP)
|
||||
ADDPFM FILE(QTEMP/GETOBJUP) MBR(GETOBJUP)
|
||||
MONMSG MSGID(CPF7306)
|
||||
OVRDBF FILE(GETOBJUP) TOFILE(QTEMP/GETOBJUP) SECURE(*YES)
|
||||
ENDDO
|
||||
|
||||
|
||||
33
APIs/GETOBJUP.SQL
Normal file
33
APIs/GETOBJUP.SQL
Normal file
@ -0,0 +1,33 @@
|
||||
-- Generate SQL
|
||||
-- Version: V7R5M0 220415
|
||||
-- Generated on: 02/13/24 22:08:51
|
||||
-- Relational Database: PUB400
|
||||
-- Standards Option: Db2 for i
|
||||
CREATE or REPLACE TABLE LENNONS1.GETOBJUP (
|
||||
-- SQL150B 10 REUSEDLT(*NO) in table GETOBJUP in LENNONS1 ignored.
|
||||
-- SQL1505 20 Number of members for GETOBJUP in LENNONS1 not valid.
|
||||
OUJOBNAME CHAR(10) CCSID 37 NOT NULL DEFAULT '' ,
|
||||
OUJOBUSER CHAR(10) CCSID 37 NOT NULL DEFAULT '' ,
|
||||
OUJOBNUM CHAR(6) CCSID 37 NOT NULL DEFAULT '' ,
|
||||
OUJOBTYPE CHAR(1) CCSID 37 NOT NULL DEFAULT '' )
|
||||
|
||||
RCDFMT GETOBJU ;
|
||||
|
||||
LABEL ON TABLE LENNONS1.GETOBJUP
|
||||
IS 'Users of an object' ;
|
||||
|
||||
LABEL ON COLUMN LENNONS1.GETOBJUP
|
||||
( OUJOBNAME IS 'Job Name' ,
|
||||
OUJOBUSER IS 'Job User' ,
|
||||
OUJOBNUM IS 'Job Number' ,
|
||||
OUJOBTYPE IS 'Type' ) ;
|
||||
|
||||
LABEL ON COLUMN LENNONS1.GETOBJUP
|
||||
( OUJOBNAME TEXT IS 'Job Name' ,
|
||||
OUJOBUSER TEXT IS 'Job User' ,
|
||||
OUJOBNUM TEXT IS 'Job Number' ,
|
||||
OUJOBTYPE TEXT IS 'I=interact, other=non inter' ) ;
|
||||
|
||||
GRANT ALTER , DELETE , INDEX , INSERT , REFERENCES , SELECT , UPDATE
|
||||
ON LENNONS1.GETOBJUP TO LENNONS WITH GRANT OPTION ;
|
||||
|
||||
@ -24,12 +24,13 @@
|
||||
// 1997. This code probably performs better than existing
|
||||
// SQL interfaces. For most use cases performance may not
|
||||
// be a consideration.
|
||||
// 02/--/2024 Set for source in IFS
|
||||
//--------------------------------------------------------------------
|
||||
ctl-opt debug option(*nodebugio: *srcstmt)
|
||||
dftactgrp(*no) actgrp(*caller)
|
||||
main(Main);
|
||||
dcl-f GETOBJUP usage(*output) usropn block(*yes);
|
||||
/copy copy_mbrs,USPHDR
|
||||
/copy ../Copy_Mbrs/USPHDR.RPGLE
|
||||
//=== CRTUSRSPC (QUSCTRUS) Parameters ================================
|
||||
dcl-ds *n;
|
||||
CusQName char(20);
|
||||
@ -51,7 +52,7 @@ dcl-s MSNStackE char(10) inz('*CTLBDY');
|
||||
dcl-s MSNStackC int(10) inz(1);
|
||||
dcl-s MSNMsgKey char(4);
|
||||
//=== List Object Locks List Entry Layout ============================
|
||||
dcl-ds LOLEntry based(loptr);
|
||||
dcl-ds LOLEntry based(LOPtr);
|
||||
LOJobName char(10);
|
||||
LOJobUser char(10);
|
||||
LOJobNum char(6);
|
||||
@ -74,17 +75,17 @@ dcl-ds APIError len(272);
|
||||
end-ds;
|
||||
//=== Misc Field Definitions =========================================
|
||||
dcl-s LolFmt char(8) inz('OBJL0100');
|
||||
dcl-s ObjMEM char(10);
|
||||
dcl-s ObjMem char(10);
|
||||
dcl-s NumJobs packed(5);
|
||||
dcl-c MaxJobs const(4); //Maximum jobs for detailed reporting.
|
||||
// If you increase MaxJobs, increase the message parameter by 30 bytes
|
||||
dcl-c MAXJOBS const(4); //Maximum jobs for detailed reporting.
|
||||
// If you increase MAXJOBS, increase the message parameter by 30 bytes
|
||||
// for each additional job.
|
||||
dcl-ds JobName26;
|
||||
SavJobName like(lojobname);
|
||||
SavJobUser like(lojobuser);
|
||||
SavJobNum like(lojobnum);
|
||||
end-ds;
|
||||
dcl-s Jobname28 char(28);
|
||||
dcl-s JobName28 char(28);
|
||||
dcl-s JobType char(1);
|
||||
//=== Parameters for SRTUSRSPC =======================================
|
||||
// SKeyStart - Array of key starting positions
|
||||
@ -193,7 +194,7 @@ dcl-proc Main ;
|
||||
pObjType:
|
||||
ObjMem:
|
||||
APIError);
|
||||
exsr srtusrspc;
|
||||
exsr SrtUsrSpc;
|
||||
// === Main Program Loop =========================================
|
||||
// Loop through the entries in the list
|
||||
exsr NxtJob;
|
||||
@ -213,11 +214,11 @@ dcl-proc Main ;
|
||||
endif;
|
||||
if pMsgYN='*YES';
|
||||
select;
|
||||
when NumJobs >= 1 and NumJobs <=MaxJobs;
|
||||
pMsgfld=%trimr(pMsgFld) + '.';
|
||||
when NumJobs > MaxJobs;
|
||||
pMsgfld=%trimr(pMsgFld) + ' plus ' +
|
||||
%trim(%editc(NumJobs-MaxJobs:'J')) +
|
||||
when NumJobs >= 1 and NumJobs <=MAXJOBS;
|
||||
pMsgFld=%trimr(pMsgFld) + '.';
|
||||
when NumJobs > MAXJOBS;
|
||||
pMsgFld=%trimr(pMsgFld) + ' plus ' +
|
||||
%trim(%editc(NumJobs-MAXJOBS:'J')) +
|
||||
' more.';
|
||||
other;
|
||||
endsl;
|
||||
@ -256,7 +257,7 @@ dcl-proc Main ;
|
||||
endsr;
|
||||
// === BldMsg ====================================================
|
||||
|
||||
// Adds current job to the message until MaxJobs have been added.
|
||||
// Adds current job to the message until MAXJOBS have been added.
|
||||
begsr BldMsg;
|
||||
JobName28=%trimr(SavJobName) + '/' +
|
||||
%trimr(SavJobUser) + '/' +
|
||||
@ -269,8 +270,8 @@ dcl-proc Main ;
|
||||
%trimr(pObjType) +
|
||||
' is in use by ' +
|
||||
JobName28;
|
||||
when NumJobs >= 2 and NumJobs <=MaxJobs;
|
||||
pMsgFld=%trimr(pMsgfld) + ', ' +
|
||||
when NumJobs >= 2 and NumJobs <=MAXJOBS;
|
||||
pMsgFld=%trimr(pMsgFld) + ', ' +
|
||||
JobName28;
|
||||
endsl;
|
||||
endsr;
|
||||
@ -298,10 +299,10 @@ dcl-proc Main ;
|
||||
// === Sort User Space ===========================================
|
||||
|
||||
begsr SrtUsrSpc;
|
||||
p_SRTUSRSPC(
|
||||
p_srtusrspc(
|
||||
CusName:
|
||||
CusLib:
|
||||
S#keys:
|
||||
S#Keys:
|
||||
SKeyStart:
|
||||
SKeyLgth:
|
||||
SKeyAorD:
|
||||
@ -335,14 +336,14 @@ dcl-proc Main ;
|
||||
// === Create User Space =====================================
|
||||
// Allow for 100,000 entries, which should be more than enough
|
||||
APIEProv = 0;
|
||||
CusIntSize=%size(UspHdr) + (%size(LOLentry)*100000);
|
||||
CusIntSize=%size(UspHdr) + (%size(LOLEntry)*100000);
|
||||
UsrSpcCrt(
|
||||
CusQName:
|
||||
CusAttr:
|
||||
CusIntSize:
|
||||
CusIntVal:
|
||||
CusAut:
|
||||
Custext);
|
||||
CusText);
|
||||
// === Get Pointer to User Space =============================
|
||||
UsrSpcPointer(CusQName: UspPtr);
|
||||
// === Initialize requested outputs ==========================
|
||||
|
||||
39
APIs/LCKOBJ.CMD
Normal file
39
APIs/LCKOBJ.CMD
Normal file
@ -0,0 +1,39 @@
|
||||
LCKOBJ: CMD PROMPT('Get a lock on an object')
|
||||
/*-----------------------------------------------------------------*/
|
||||
/* CPP is LCKOBJC */
|
||||
/* 02/00/97 LENNON Original writting */
|
||||
/*-----------------------------------------------------------------*/
|
||||
PARM KWD(OBJ) TYPE(OBJSTUFF) MIN(1) +
|
||||
PROMPT('Object Name')
|
||||
|
||||
PARM KWD(WAIT) TYPE(*DEC) LEN(5) DFT(*CLS) +
|
||||
RANGE(30 32767) SPCVAL((*CLS 99999) (0)) +
|
||||
PROMPT('Seconds to wait')
|
||||
|
||||
PARM KWD(OPMAYCAN) TYPE(*CHAR) LEN(4) RSTD(*YES) +
|
||||
DFT(*NO) VALUES(*YES *NO) PROMPT('May +
|
||||
operator cancel job?')
|
||||
|
||||
OBJSTUFF: ELEM TYPE(Q1) MIN(1) PROMPT('Object Name')
|
||||
|
||||
ELEM TYPE(*CHAR) LEN(8) RSTD(*YES) VALUES(*AUTL +
|
||||
*BNDDIR *CLD *CRQD *CSI *CSPMAP *CSPTBL +
|
||||
*DEVD *DTAARA *DTADCT *DTAQ *FCT *FILE +
|
||||
*FNTRSC *FNTTBL *FORMDF *IPXD *LIB +
|
||||
*LOCALE *MENU *MODULE *MSGQ *NODL *NTBD +
|
||||
*NWSD *OVL *PAGDFN *PAGSEG *PDG *PGM +
|
||||
*PNLGRP *PSFCFG *QMFORM *QMQRY *QRYDFN +
|
||||
*SBSD *SCHIDX *SQLPKG *SRVPGM *SSND *S36 +
|
||||
*USRIDX *USRQ *USRSPC *WSCST) MIN(1) +
|
||||
PROMPT('Object Type')
|
||||
|
||||
ELEM TYPE(*CHAR) LEN(8) RSTD(*YES) VALUES(*SHRRD +
|
||||
*SHRNUP *SHRUPD *EXCLRD *EXCL) MIN(1) +
|
||||
PROMPT('Lock state')
|
||||
|
||||
ELEM TYPE(*NAME) LEN(10) SPCVAL((*FIRST)) +
|
||||
EXPR(*NO) PROMPT('Member, if data base file')
|
||||
|
||||
Q1: QUAL TYPE(*NAME) LEN(10) MIN(1)
|
||||
QUAL TYPE(*NAME) LEN(10) DFT(*LIBL) +
|
||||
SPCVAL((*LIBL) (*CURLIB)) PROMPT('Library')
|
||||
229
APIs/LCKOBJC.CLLE
Normal file
229
APIs/LCKOBJC.CLLE
Normal file
@ -0,0 +1,229 @@
|
||||
LCKOBJC: +
|
||||
PGM PARM(&P_OBJ &P_WAIT &P_OPMAYCAN)
|
||||
/* -----------------------------------------------------------------*/
|
||||
/* Program attemps to lock an object with the requested lock state, */
|
||||
/* *EXCL, EXCLRD, etc. */
|
||||
/* If it fails to obtain the lock in the specified time it talks to */
|
||||
/* the system operator, telling him which job are causing the */
|
||||
/* ALCOBJ to fail. Operator can opt to cancel, or retry the ALCOBJ */
|
||||
/* for 5, 10, 0r 30 minutes, or the default class wait time. */
|
||||
/* -----------------------------------------------------------------*/
|
||||
/* Use the LCKOBJ command to invoke this program */
|
||||
/* -----------------------------------------------------------------*/
|
||||
/* 11/24/97 LENNON Original writing */
|
||||
/* -----------------------------------------------------------------*/
|
||||
/* 10/05/2001 Sam Lennon. If a non file object is locked *EXCL then */
|
||||
/* RTVOBJD to get real library name to put in the */
|
||||
/* message fails. If this occurs, just continue and */
|
||||
/* *LIBL may appear in the message. */
|
||||
/* Change retry logic to allow entry of varying times. */
|
||||
/* Installed 9/2002. */
|
||||
/* -----------------------------------------------------------------*/
|
||||
/* 02/--/2024 Build ALCOBJ commands for *FILE and all other to */
|
||||
/* handle Member being specified. */
|
||||
/* Ignore *FIRST for member because it won't work */
|
||||
/* with the SQL service. */
|
||||
/* Add CONFLICT(*RQSRLS) to the ALCOBJ command. */
|
||||
/* -----------------------------------------------------------------*/
|
||||
/* Input parameters */
|
||||
DCL VAR(&P_OBJ) TYPE(*CHAR) LEN(48) /* Obj & lib */
|
||||
DCL VAR(&P_WAIT) TYPE(*DEC) LEN(5) /* Seconds */
|
||||
DCL VAR(&P_OPMAYCAN) TYPE(*CHAR) LEN(4) /* *YES *NO */
|
||||
|
||||
/* Variables used in this program */
|
||||
DCL VAR(&ORGWAIT) TYPE(*DEC) LEN(7) /* Original wait*/
|
||||
DCL VAR(&ELEMC) TYPE(*CHAR) LEN(2) /* # elements */
|
||||
DCL VAR(&ELEMP) TYPE(*DEC) LEN(5) /* # elements */
|
||||
DCL VAR(&JOBTYPE) TYPE(*CHAR) LEN(1) /* 1=interactive */
|
||||
DCL VAR(&LCKSTATE) TYPE(*CHAR) LEN(8) /* *SHRRD, etc */
|
||||
DCL VAR(&KEYVAR) TYPE(*CHAR) LEN(4) /* messages */
|
||||
DCL VAR(&MEMBER) TYPE(*CHAR) LEN(10) /* if *FILE */
|
||||
DCL VAR(&OBJNAM) TYPE(*CHAR) LEN(10) /* Obj name */
|
||||
DCL VAR(&OBJLIB) TYPE(*CHAR) LEN(10) /* Obj lib */
|
||||
DCL VAR(&OPMSG) TYPE(*CHAR) LEN(500) /* No msg fld passed */
|
||||
DCL VAR(&REPLY) TYPE(*CHAR) LEN(2) /* Oper Reply */
|
||||
DCL VAR(&RETMSG) TYPE(*CHAR) LEN(200) /* From GETOBJUSR */
|
||||
DCL VAR(&TYPE) TYPE(*CHAR) LEN(8) /* Obj type */
|
||||
DCL VAR(&WAIT) TYPE(*DEC) LEN(5) /* Wait as num */
|
||||
DCL VAR(&WAITC) TYPE(*CHAR) LEN(5) /* Wait as char */
|
||||
DCL VAR(&WAITMIN) TYPE(*DEC) LEN(5) /* Wait in mins */
|
||||
DCL VAR(&WAITMSG) TYPE(*CHAR) LEN(20) /* temp field */
|
||||
DCL VAR(&ALC_CMD) TYPE(*CHAR) LEN(200) /* ALLOBJ Command */
|
||||
|
||||
/* Error Handling Variables */
|
||||
DCL VAR(&E_MSGID) TYPE(*CHAR) LEN(7)
|
||||
DCL VAR(&E_MSGF) TYPE(*CHAR) LEN(10)
|
||||
DCL VAR(&E_MSGFLIB) TYPE(*CHAR) LEN(10)
|
||||
DCL VAR(&E_MSGDTA) TYPE(*CHAR) LEN(100)
|
||||
|
||||
/* Catch unmonitored errors */
|
||||
MONMSG MSGID(CPF0000) EXEC(GOTO CMDLBL(ERROR))
|
||||
|
||||
/*==== Pre processing of input parameters =========================*/
|
||||
/* &P_OBJ is a mixed list: */
|
||||
/* 1 L2 binary # elements */
|
||||
/* 3 L10 object name */
|
||||
/* 13 L10 library */
|
||||
/* 23 L8 object type */
|
||||
/* 31 L8 lock state, *EXCL etc. */
|
||||
/* 39 L10 member, if data base file */
|
||||
|
||||
/* Get number of elements */
|
||||
CHGVAR VAR(&ELEMC) VALUE(%SST(&P_OBJ 1 2))
|
||||
CHGVAR VAR(&ELEMP) VALUE(%BIN(&ELEMC))
|
||||
|
||||
/* Extract elements from list. First 3 are required. */
|
||||
/* Obj and lib are considered 1 element */
|
||||
CHGVAR VAR(&OBJNAM) VALUE(%SST(&P_OBJ 3 10))
|
||||
CHGVAR VAR(&OBJLIB) VALUE(%SST(&P_OBJ 13 10))
|
||||
CHGVAR VAR(&TYPE) VALUE(%SST(&P_OBJ 23 8))
|
||||
CHGVAR VAR(&LCKSTATE) VALUE(%SST(&P_OBJ 31 8))
|
||||
|
||||
/* Member is optional */
|
||||
IF COND(&ELEMP *GT 3) THEN(DO)
|
||||
CHGVAR VAR(&MEMBER) VALUE(%SST(&P_OBJ 39 10))
|
||||
ENDDO
|
||||
|
||||
/* Set the default wait value */
|
||||
/* Wait 99999 means use *CLS as the wait value on the ALCOBJ */
|
||||
IF COND(&P_WAIT = 99999) THEN(DO)
|
||||
RTVJOBA TYPE(&JOBTYPE) DFTWAIT(&ORGWAIT)
|
||||
ENDDO
|
||||
ELSE CMD(DO)
|
||||
CHGVAR VAR(&ORGWAIT) VALUE(&P_WAIT)
|
||||
ENDDO
|
||||
CHGVAR VAR(&WAIT) VALUE(&ORGWAIT)
|
||||
|
||||
/*=== Attempt to allocate the object ==============================*/
|
||||
RETRY: +
|
||||
/* Convert *LIBL/*CURLIB into a real name, if possible, */
|
||||
/* for clarity in operator message. This may fail if the object*/
|
||||
/* is already allocated *EXCL. If so, we just continue. */
|
||||
IF COND(&OBJLIB *EQ '*LIBL') THEN(DO)
|
||||
RTVOBJD OBJ(&OBJLIB/&OBJNAM) OBJTYPE(&TYPE) RTNLIB(&OBJLIB)
|
||||
MONMSG MSGID(CPF9803) /* Cannot Allocate */
|
||||
ENDDO
|
||||
|
||||
/* Blank member is syntax error in ALLOBJ, but if you do */
|
||||
/* not specify a member it is the same as specifying *FIRST */
|
||||
/* so get the *FIRST actual name. */
|
||||
/* If not available just put in *FIRST and GETOBJUR will sort */
|
||||
/* it out. */
|
||||
IF COND((&TYPE *EQ '*FILE') *AND (&MEMBER *EQ ' ') ) THEN(DO)
|
||||
RTVMBRD FILE(&OBJLIB/&OBJNAM) RTNMBR(&MEMBER)
|
||||
MONMSG MSGID(CPF3018) EXEC(DO) /* Not available */
|
||||
CHGVAR VAR(&MEMBER) VALUE('*FIRST')
|
||||
ENDDO
|
||||
ENDDO
|
||||
|
||||
CHGVAR VAR(&WAITC) VALUE(&WAIT)
|
||||
IF COND(&TYPE *NE '*FILE') THEN(DO)
|
||||
/* Not a file: build command like this, without MEMBER */
|
||||
/* ALCOBJ OBJ((&OBJLIB/&OBJNAM &TYPE &LCKSTATE &MEMBER)) WAIT(&WAITC) +
|
||||
CONFLICT(*RQSRLS) */
|
||||
CHGVAR VAR(&ALC_CMD) +
|
||||
VALUE('ALCOBJ OBJ((' +
|
||||
*TCAT &OBJLIB *TCAT '/' *TCAT &OBJNAM *TCAT ' ' +
|
||||
*CAT &TYPE *TCAT ' ' *CAT &LCKSTATE +
|
||||
*TCAT ')) WAIT(' *TCAT &WAITC *TCAT ')' +
|
||||
*TCAT ' CONFLICT(*RQSRLS) ' +
|
||||
)
|
||||
ENDDO
|
||||
ELSE CMD(DO)
|
||||
/* Is a file: build command like this, with MEMBER */
|
||||
/* ALCOBJ OBJ((&OBJLIB/&OBJNAM &TYPE &LCKSTATER)) WAIT(&WAITC) +
|
||||
CONFLICT(*RQSRLS) */
|
||||
|
||||
CHGVAR VAR(&ALC_CMD) +
|
||||
VALUE('ALCOBJ OBJ((' +
|
||||
*TCAT &OBJLIB *TCAT '/' *TCAT &OBJNAM *TCAT ' ' +
|
||||
*CAT &TYPE *TCAT ' ' *CAT &LCKSTATE +
|
||||
*TCAT ' ' *CAT &MEMBER +
|
||||
*TCAT ')) WAIT(' *TCAT &WAITC *TCAT ')' +
|
||||
*TCAT ' CONFLICT(*RQSRLS) ' +
|
||||
)
|
||||
ENDDO
|
||||
|
||||
/* If fail to obtain lock, then we must analyse the situation */
|
||||
/* SNDUSRMSG MSG(&ALC_CMD) MSGTYPE(*INFO) TOMSGQ(*EXT) */
|
||||
CALL PGM(QCMDEXC) PARM(&ALC_CMD 200)
|
||||
MONMSG MSGID(CPF1002) EXEC(DO) /* Not allocated */
|
||||
|
||||
/* If wait is longer than 60 seconds, make minutes for */
|
||||
/* message and round up to next minute. */
|
||||
IF COND(&WAIT > 60 *AND &WAIT *NE 0) THEN(DO)
|
||||
CHGVAR VAR(&WAITMIN) VALUE((&WAIT + 59) / 60)
|
||||
/* EDTVAR CHROUT(&WAITMSG) NUMINP(&WAITMIN) */
|
||||
CHGVAR VAR(&WAITMSG) VALUE(&WAITMIN)
|
||||
CHGVAR VAR(&WAITMSG) VALUE(%TRIML(&WAITMSG '0'))
|
||||
IF (&WAITMSG = ' ') CHGVAR &WAITMSG ('0')
|
||||
CHGVAR VAR(&WAITMSG) VALUE(&WAITMSG *TCAT ' minutes. ')
|
||||
ENDDO
|
||||
ELSE CMD(DO)
|
||||
/* EDTVAR CHROUT(&WAITMSG) NUMINP(&WAIT)*/
|
||||
CHGVAR VAR(&WAITMSG) VALUE(&WAIT)
|
||||
CHGVAR VAR(&WAITMSG) VALUE(%TRIML(&WAITMSG '0'))
|
||||
IF (&WAITMSG = ' ') CHGVAR &WAITMSG ('0')
|
||||
CHGVAR VAR(&WAITMSG) VALUE(&WAITMSG *TCAT ' seconds. ')
|
||||
ENDDO
|
||||
|
||||
/* Find out who is using the object. By now all the */
|
||||
/* locks may have been freed. If so, retry the ALCOBJ */
|
||||
GETOBJUSR OBJECT(&OBJLIB/&OBJNAM) TYPE(&TYPE) MEMBER(&MEMBER) +
|
||||
MSGFLD(&RETMSG)
|
||||
IF COND(&RETMSG *EQ ' ') THEN(GOTO CMDLBL(RETRY))
|
||||
|
||||
/* Build a message for the operator. */
|
||||
CHGVAR VAR(&OPMSG) VALUE(&RETMSG *TCAT ' Waited for ' *CAT +
|
||||
&WAITMSG *TCAT ' Please attempt to resolve the conflict, +
|
||||
then enter R to retry, or 5 to retry for 5 minutes, 10 to +
|
||||
retry for 10 minutes or 30 to retry for 30 minutes.')
|
||||
|
||||
/* If he may cancel the job, let him know */
|
||||
IF COND(&P_OPMAYCAN *EQ '*YES') THEN(DO)
|
||||
CHGVAR VAR(&OPMSG) VALUE(&OPMSG *TCAT ' (Or enter C to +
|
||||
cancel.)')
|
||||
ENDDO
|
||||
|
||||
/* Talk to the operator */
|
||||
TALKTOOP: +
|
||||
SNDUSRMSG MSG(&OPMSG) MSGTYPE(*INQ) TOUSR(*REQUESTER) +
|
||||
MSGRPY(&REPLY) VALUES(5 10 30 R C)
|
||||
|
||||
/* R = retry for originally specified time */
|
||||
IF COND(&REPLY *EQ 'R') THEN(DO)
|
||||
CHGVAR VAR(&WAIT) VALUE(&ORGWAIT)
|
||||
GOTO CMDLBL(RETRY)
|
||||
ENDDO
|
||||
|
||||
/* Send a CPF9898 escape message if operator cancels */
|
||||
IF COND(&REPLY *EQ 'C') THEN(DO)
|
||||
IF COND(&P_OPMAYCAN *EQ '*YES') THEN(DO)
|
||||
SNDPGMMSG MSGID(CPF9898) MSGF(QCPFMSG) MSGDTA('PGM +
|
||||
was canceled by a response of C') MSGTYPE(*ESCAPE)
|
||||
ENDDO
|
||||
ELSE (DO)
|
||||
GOTO CMDLBL(TALKTOOP)
|
||||
ENDDO
|
||||
ENDDO
|
||||
|
||||
/* Else set new specified wait time and retry */
|
||||
CHGVAR VAR(&WAIT) VALUE(&REPLY)
|
||||
CHGVAR VAR(&WAIT) VALUE(&WAIT * 60)
|
||||
|
||||
GOTO CMDLBL(RETRY)
|
||||
|
||||
ENDDO /* MONMSG CPF1002 */
|
||||
|
||||
/*=== If we get this far we have the object locked as requested.===*/
|
||||
|
||||
/* End of program */
|
||||
GOTO CMDLBL(ENDPGM)
|
||||
|
||||
/*=== Error handler - resend diagnostic & escape messages =========*/
|
||||
ERROR: +
|
||||
MOVPGMMSG MSGTYPE(*DIAG)
|
||||
RSNESCMSG
|
||||
|
||||
ENDPGM: +
|
||||
ENDPGM
|
||||
5
APIs/T0.CLLE
Normal file
5
APIs/T0.CLLE
Normal file
@ -0,0 +1,5 @@
|
||||
PGM
|
||||
DCL VAR(&MSG) TYPE(*CHAR) LEN(200)
|
||||
GETOBJUSR OBJECT(QIWS/QCUSTCDT) TYPE(*FILE) MSGFLD(&MSG)
|
||||
SNDMSG MSG(&MSG) TOUSR(*REQUESTER)
|
||||
ENDPGM
|
||||
6
APIs/T1.CLLE
Normal file
6
APIs/T1.CLLE
Normal file
@ -0,0 +1,6 @@
|
||||
PGM
|
||||
DCL VAR(&MSG) TYPE(*CHAR) LEN(200)
|
||||
GETOBJUSR OBJECT(QSYS/LENNONS2) TYPE(*LIB) MSGFLD(&MSG)
|
||||
SNDMSG MSG(&MSG) TOUSR(*REQUESTER)
|
||||
|
||||
ENDPGM
|
||||
15
APIs/T2.CLLE
Normal file
15
APIs/T2.CLLE
Normal file
@ -0,0 +1,15 @@
|
||||
PGM
|
||||
DCL VAR(&MSG) TYPE(*CHAR) LEN(200)
|
||||
GETOBJUSR OBJECT(QSYS/QSYS) TYPE(*LIB) MSGFLD(&MSG) +
|
||||
RETFILE(*YES)
|
||||
SNDMSG MSG(&MSG) TOUSR(*REQUESTER)
|
||||
QRY FILE(QTEMP/GETOBJUP)
|
||||
|
||||
|
||||
GETOBJUSR OBJECT(QSYS/LENNONS2) TYPE(*LIB) MSGFLD(&MSG)
|
||||
SNDMSG MSG(&MSG) TOUSR(*REQUESTER)
|
||||
|
||||
GETOBJUSR OBJECT(QSYS/LENNONS1) TYPE(*LIB) MSGFLD(&MSG)
|
||||
SNDMSG MSG(&MSG) TOUSR(*REQUESTER)
|
||||
|
||||
ENDPGM
|
||||
6
APIs/T9.CLP
Normal file
6
APIs/T9.CLP
Normal file
@ -0,0 +1,6 @@
|
||||
PGM
|
||||
DCL VAR(&MSG) TYPE(*CHAR) LEN(200)
|
||||
GETOBJUSR OBJECT(QIWS/QCUSTCDT) TYPE(*FILE) +
|
||||
MSGFLD(&MSG) RETFILE(*YES)
|
||||
SNDMSG MSG(&MSG) TOUSR(*REQUESTER)
|
||||
ENDPGM
|
||||
4
APIs/T9ALLOC1.CLLE
Normal file
4
APIs/T9ALLOC1.CLLE
Normal file
@ -0,0 +1,4 @@
|
||||
PGM
|
||||
ALCOBJ OBJ((QIWS/QCUSTCDT *FILE *SHRRD)) WAIT(0)
|
||||
DLYJOB DLY(90)
|
||||
ENDPGM
|
||||
10
APIs/T9ALLOCMNY.CLP
Normal file
10
APIs/T9ALLOCMNY.CLP
Normal file
@ -0,0 +1,10 @@
|
||||
PGM
|
||||
SBMJOB CMD(CALL PGM(T9ALLOC1)) JOB(CUSTLST) +
|
||||
JOBQ(QUSRNOMAX)
|
||||
SBMJOB CMD(CALL PGM(T9ALLOC1)) JOB(INV_UPD) +
|
||||
JOBQ(QUSRNOMAX)
|
||||
SBMJOB CMD(CALL PGM(T9ALLOC1)) JOB(DAILYORD) +
|
||||
JOBQ(QUSRNOMAX)
|
||||
SBMJOB CMD(CALL PGM(T9ALLOC1)) JOB(YTD_RPT) +
|
||||
JOBQ(QUSRNOMAX)
|
||||
ENDPGM
|
||||
@ -42,8 +42,8 @@ ctl-opt debug option(*nodebugio: *srcstmt)
|
||||
bnddir('UTIL_BND':'SQL_BND')
|
||||
main(Main);
|
||||
//=== Prototypes =====================================================
|
||||
/include copy_mbrs,Srv_Msg_P
|
||||
/include copy_mbrs,Srv_SQL_P
|
||||
/include ../Copy_Mbrs/SRV_MSG_P.RPGLE
|
||||
/include ../Copy_Mbrs/SRV_SQL_P.RPGLE
|
||||
|
||||
// Gets job type entry for this job.
|
||||
// Returns: JobType has the job type. I=interactive, B=batch, etc.
|
||||
@ -56,8 +56,7 @@ end-pr;
|
||||
// Input Parameters
|
||||
// 1) pObject is object name (10c) + object library (10c)
|
||||
// 2) pObjType is *FILE, *DTAARA, etc., standard OS/400 type
|
||||
// 3) pObjMem is the member for files, or *NONE if just want users
|
||||
// of the file.
|
||||
// 3) pObjMem is the member for files
|
||||
// 4) pMsgYN is *YES to create a message.
|
||||
// 5) pFileYN is *YES if file GETOBJUP is to be created in QTEMP
|
||||
// Output Parameter
|
||||
@ -65,18 +64,18 @@ end-pr;
|
||||
|
||||
//=== Global Definitions =============================================
|
||||
dcl-s JobName28 char(28); // like '580065/JOBNM/USER''
|
||||
dcl-c SQLSuccess '00000';
|
||||
dcl-c SQLNoData '02000';
|
||||
dcl-c SQLNoMoreData '02000';
|
||||
dcl-c SQLProcWarning '01548';
|
||||
dcl-c SQLFileNotFound '42704';
|
||||
dcl-c SQLSUCCESS '00000';
|
||||
dcl-c SQLNODATA '02000';
|
||||
dcl-c SQLNOMOREDATA '02000';
|
||||
dcl-c SQLPROCWARNING '01548';
|
||||
dcl-c SQLFILENOTFOUND '42704';
|
||||
|
||||
//====================================================================
|
||||
dcl-proc Main ;
|
||||
|
||||
//=== Misc Field Definitions =====================================
|
||||
dcl-s NumJobs packed(5);
|
||||
dcl-c MaxJobs const(4); //Maximum jobs for detailed reporting.
|
||||
dcl-c MAXJOBS const(4); //Maximum jobs for detailed reporting.
|
||||
// If you increase MaxJobs, increase the message parameter by 30 bytes
|
||||
// for each additional job.
|
||||
dcl-s JobName26 char(26); // is name(10) User(10) number(6)
|
||||
@ -96,6 +95,7 @@ dcl-proc Main ;
|
||||
dcl-s theLibrary char(10);
|
||||
dcl-s theObject char(10);
|
||||
dcl-s j int(10);
|
||||
dcl-s wkMem like(pObjMem);
|
||||
// ---------------------------------------------------------
|
||||
dcl-pi *n extpgm('GETOBJUR');
|
||||
pObject char(20);
|
||||
@ -117,7 +117,7 @@ dcl-proc Main ;
|
||||
|
||||
if pFileYN='*YES';
|
||||
exec sql drop table qtemp.GETOBJUP;
|
||||
if SQLSTATE <> SQLSuccess and SQLSTATE <> SQLFileNotFound;
|
||||
if SQLSTATE <> SQLSUCCESS and SQLSTATE <> SQLFILENOTFOUND;
|
||||
SQLProblem('Delete GETOBJUP');
|
||||
endif;
|
||||
exec sql declare global temporary table GETOBJUP (
|
||||
@ -131,8 +131,8 @@ dcl-proc Main ;
|
||||
OUOBJTYPE CHAR(10),
|
||||
OUOBJMBR CHAR(10)
|
||||
);
|
||||
if SQLSTATE <> SQLSuccess;
|
||||
SQLProblem('Declare global tempory table GETOBJUP');
|
||||
if SQLSTATE <> SQLSUCCESS;
|
||||
SQLProblem('Declare global temporary table GETOBJUP');
|
||||
endif;
|
||||
endif;
|
||||
|
||||
@ -146,28 +146,38 @@ dcl-proc Main ;
|
||||
JobOBJTYPE = pObjType;
|
||||
JobOBJMBR = pObjMem;
|
||||
|
||||
// *FIRST doesn't work with SQL services. ALCOBJ puts a lock on
|
||||
// the *FIRST member if you don't specify one and if the file
|
||||
// is locked *EXCL then we can't get the first member name, so
|
||||
// we leave it blank. Shouldn't matter because we're looking for
|
||||
// any lock by any job.
|
||||
if pObjMem = '*FIRST';
|
||||
wkMem = ' ';
|
||||
else;
|
||||
wkMem = pObjMem;
|
||||
endif;
|
||||
|
||||
// === Find the locks ============================================
|
||||
exec sql declare Lock_Cursor cursor for
|
||||
select distinct JOB_NAME
|
||||
from QSYS2.OBJECT_LOCK_INFO
|
||||
where SYSTEM_OBJECT_SCHEMA = :thelibrary
|
||||
and SYSTEM_OBJECT_NAME = :theobject
|
||||
and OBJECT_TYPE = :pobjtype
|
||||
where SYSTEM_OBJECT_SCHEMA = :theLibrary
|
||||
and SYSTEM_OBJECT_NAME = :theObject
|
||||
and OBJECT_TYPE = :pObjType
|
||||
and ifnull(SYSTEM_TABLE_MEMBER,' ') =
|
||||
case when :pobjtype = '*FILE' and :pobjmem <> '*ALL' then :pobjmem
|
||||
case when :pObjType = '*FILE' and :wkMem <> ' ' then :wkMem
|
||||
else ' '
|
||||
END
|
||||
order by JOB_NAME
|
||||
;
|
||||
exec sql open Lock_Cursor ;
|
||||
if SQLSTT <> SQLSuccess;
|
||||
if SQLSTT <> SQLSUCCESS;
|
||||
SQLProblem('open Lock_Cursor');
|
||||
endif;
|
||||
|
||||
// Loop through the cursor, building requested outputs
|
||||
fetchNext();
|
||||
dow SQLSTT <> SQLNoData;
|
||||
dow SQLSTT <> SQLNODATA;
|
||||
NumJobs += 1;
|
||||
if pFileYN='*YES';
|
||||
// Build JobName26, parm for GetJobType
|
||||
@ -192,11 +202,11 @@ dcl-proc Main ;
|
||||
// === End of Program ============================================
|
||||
if pMsgYN='*YES';
|
||||
select;
|
||||
when NumJobs >= 1 and NumJobs <=MaxJobs;
|
||||
pMsgfld=%trimr(pMsgFld) + '.';
|
||||
when NumJobs > MaxJobs;
|
||||
pMsgfld=%trimr(pMsgFld) + ' plus '
|
||||
+ %trim(%editc(NumJobs-MaxJobs:'J'))
|
||||
when NumJobs >= 1 and NumJobs <= MAXJOBS;
|
||||
pMsgFld = %trimr(pMsgFld) + '.';
|
||||
when NumJobs > MAXJOBS;
|
||||
pMsgFld = %trimr(pMsgFld) + ' plus '
|
||||
+ %trim(%editc(NumJobs-MAXJOBS:'J'))
|
||||
+ ' more.';
|
||||
other;
|
||||
endsl;
|
||||
@ -215,8 +225,8 @@ dcl-proc Main ;
|
||||
%trimr(pObjType) +
|
||||
' is in use by ' +
|
||||
JobName28;
|
||||
when NumJobs >= 2 and NumJobs <=MaxJobs;
|
||||
pMsgFld=%trimr(pMsgfld) + ', ' +
|
||||
when NumJobs >= 2 and NumJobs <=MAXJOBS;
|
||||
pMsgFld=%trimr(pMsgFld) + ', ' +
|
||||
JobName28;
|
||||
endsl;
|
||||
endsr;
|
||||
@ -226,7 +236,7 @@ dcl-proc Main ;
|
||||
begsr WriteRec;
|
||||
JobNM28 = JobName28;
|
||||
exec sql insert into qtemp.GETOBJUP values(:JobSQLDS);
|
||||
if SQLSTT <> SQLSuccess;
|
||||
if SQLSTT <> SQLSUCCESS;
|
||||
sqlProblem('Insert into GETOBJUP');
|
||||
endif;
|
||||
endsr;
|
||||
@ -235,9 +245,9 @@ end-proc;
|
||||
// === fetchNext =====================================================
|
||||
dcl-proc fetchNext;
|
||||
exec sql fetch next from Lock_Cursor into :JobName28;
|
||||
if SQLSTT <> SQLSuccess
|
||||
and SQLSTT <> SQLNOData
|
||||
and SQLSTT <> SQLProcWarning;
|
||||
if SQLSTT <> SQLSUCCESS
|
||||
and SQLSTT <> SQLNODATA
|
||||
and SQLSTT <> SQLPROCWARNING;
|
||||
SQLProblem('fetchNext');
|
||||
endif;
|
||||
end-proc;
|
||||
|
||||
39
APIs_SQL/LCKOBJ.CMD
Normal file
39
APIs_SQL/LCKOBJ.CMD
Normal file
@ -0,0 +1,39 @@
|
||||
LCKOBJ: CMD PROMPT('Get a lock on an object')
|
||||
/*-----------------------------------------------------------------*/
|
||||
/* CPP is LCKOBJC */
|
||||
/* 02/00/97 LENNON Original writting */
|
||||
/*-----------------------------------------------------------------*/
|
||||
PARM KWD(OBJ) TYPE(OBJSTUFF) MIN(1) +
|
||||
PROMPT('Object Name')
|
||||
|
||||
PARM KWD(WAIT) TYPE(*DEC) LEN(5) DFT(*CLS) +
|
||||
RANGE(30 32767) SPCVAL((*CLS 99999) (0)) +
|
||||
PROMPT('Seconds to wait')
|
||||
|
||||
PARM KWD(OPMAYCAN) TYPE(*CHAR) LEN(4) RSTD(*YES) +
|
||||
DFT(*NO) VALUES(*YES *NO) PROMPT('May +
|
||||
operator cancel job?')
|
||||
|
||||
OBJSTUFF: ELEM TYPE(Q1) MIN(1) PROMPT('Object Name')
|
||||
|
||||
ELEM TYPE(*CHAR) LEN(8) RSTD(*YES) VALUES(*AUTL +
|
||||
*BNDDIR *CLD *CRQD *CSI *CSPMAP *CSPTBL +
|
||||
*DEVD *DTAARA *DTADCT *DTAQ *FCT *FILE +
|
||||
*FNTRSC *FNTTBL *FORMDF *IPXD *LIB +
|
||||
*LOCALE *MENU *MODULE *MSGQ *NODL *NTBD +
|
||||
*NWSD *OVL *PAGDFN *PAGSEG *PDG *PGM +
|
||||
*PNLGRP *PSFCFG *QMFORM *QMQRY *QRYDFN +
|
||||
*SBSD *SCHIDX *SQLPKG *SRVPGM *SSND *S36 +
|
||||
*USRIDX *USRQ *USRSPC *WSCST) MIN(1) +
|
||||
PROMPT('Object Type')
|
||||
|
||||
ELEM TYPE(*CHAR) LEN(8) RSTD(*YES) VALUES(*SHRRD +
|
||||
*SHRNUP *SHRUPD *EXCLRD *EXCL) MIN(1) +
|
||||
PROMPT('Lock state')
|
||||
|
||||
ELEM TYPE(*NAME) LEN(10) +
|
||||
EXPR(*NO) PROMPT('Member, if data base file')
|
||||
|
||||
Q1: QUAL TYPE(*NAME) LEN(10) MIN(1)
|
||||
QUAL TYPE(*NAME) LEN(10) DFT(*LIBL) +
|
||||
SPCVAL((*LIBL) (*CURLIB)) PROMPT('Library')
|
||||
229
APIs_SQL/LCKOBJC.CLLE
Normal file
229
APIs_SQL/LCKOBJC.CLLE
Normal file
@ -0,0 +1,229 @@
|
||||
LCKOBJC: +
|
||||
PGM PARM(&P_OBJ &P_WAIT &P_OPMAYCAN)
|
||||
/* -----------------------------------------------------------------*/
|
||||
/* Program attemps to lock an object with the requested lock state, */
|
||||
/* *EXCL, EXCLRD, etc. */
|
||||
/* If it fails to obtain the lock in the specified time it talks to */
|
||||
/* the system operator, telling him which job are causing the */
|
||||
/* ALCOBJ to fail. Operator can opt to cancel, or retry the ALCOBJ */
|
||||
/* for 5, 10, 0r 30 minutes, or the default class wait time. */
|
||||
/* -----------------------------------------------------------------*/
|
||||
/* Use the LCKOBJ command to invoke this program */
|
||||
/* -----------------------------------------------------------------*/
|
||||
/* 11/24/97 LENNON Original writing */
|
||||
/* -----------------------------------------------------------------*/
|
||||
/* 10/05/2001 Sam Lennon. If a non file object is locked *EXCL then */
|
||||
/* RTVOBJD to get real library name to put in the */
|
||||
/* message fails. If this occurs, just continue and */
|
||||
/* *LIBL may appear in the message. */
|
||||
/* Change retry logic to allow entry of varying times. */
|
||||
/* Installed 9/2002. */
|
||||
/* -----------------------------------------------------------------*/
|
||||
/* 02/--/2024 Build ALCOBJ commands for *FILE and all other to */
|
||||
/* handle Member being specified. */
|
||||
/* Ignore *FIRST for member because it won't work */
|
||||
/* with the SQL service. */
|
||||
/* Add CONFLICT(*RQSRLS) to the ALCOBJ command. */
|
||||
/* -----------------------------------------------------------------*/
|
||||
/* Input parameters */
|
||||
DCL VAR(&P_OBJ) TYPE(*CHAR) LEN(48) /* Obj & lib */
|
||||
DCL VAR(&P_WAIT) TYPE(*DEC) LEN(5) /* Seconds */
|
||||
DCL VAR(&P_OPMAYCAN) TYPE(*CHAR) LEN(4) /* *YES *NO */
|
||||
|
||||
/* Variables used in this program */
|
||||
DCL VAR(&ORGWAIT) TYPE(*DEC) LEN(7) /* Original wait*/
|
||||
DCL VAR(&ELEMC) TYPE(*CHAR) LEN(2) /* # elements */
|
||||
DCL VAR(&ELEMP) TYPE(*DEC) LEN(5) /* # elements */
|
||||
DCL VAR(&JOBTYPE) TYPE(*CHAR) LEN(1) /* 1=interactive */
|
||||
DCL VAR(&LCKSTATE) TYPE(*CHAR) LEN(8) /* *SHRRD, etc */
|
||||
DCL VAR(&KEYVAR) TYPE(*CHAR) LEN(4) /* messages */
|
||||
DCL VAR(&MEMBER) TYPE(*CHAR) LEN(10) /* if *FILE */
|
||||
DCL VAR(&OBJNAM) TYPE(*CHAR) LEN(10) /* Obj name */
|
||||
DCL VAR(&OBJLIB) TYPE(*CHAR) LEN(10) /* Obj lib */
|
||||
DCL VAR(&OPMSG) TYPE(*CHAR) LEN(500) /* No msg fld passed */
|
||||
DCL VAR(&REPLY) TYPE(*CHAR) LEN(2) /* Oper Reply */
|
||||
DCL VAR(&RETMSG) TYPE(*CHAR) LEN(200) /* From GETOBJUSR */
|
||||
DCL VAR(&TYPE) TYPE(*CHAR) LEN(8) /* Obj type */
|
||||
DCL VAR(&WAIT) TYPE(*DEC) LEN(5) /* Wait as num */
|
||||
DCL VAR(&WAITC) TYPE(*CHAR) LEN(5) /* Wait as char */
|
||||
DCL VAR(&WAITMIN) TYPE(*DEC) LEN(5) /* Wait in mins */
|
||||
DCL VAR(&WAITMSG) TYPE(*CHAR) LEN(20) /* temp field */
|
||||
DCL VAR(&ALC_CMD) TYPE(*CHAR) LEN(200) /* ALLOBJ Command */
|
||||
|
||||
/* Error Handling Variables */
|
||||
DCL VAR(&E_MSGID) TYPE(*CHAR) LEN(7)
|
||||
DCL VAR(&E_MSGF) TYPE(*CHAR) LEN(10)
|
||||
DCL VAR(&E_MSGFLIB) TYPE(*CHAR) LEN(10)
|
||||
DCL VAR(&E_MSGDTA) TYPE(*CHAR) LEN(100)
|
||||
|
||||
/* Catch unmonitored errors */
|
||||
MONMSG MSGID(CPF0000) EXEC(GOTO CMDLBL(ERROR))
|
||||
|
||||
/*==== Pre processing of input parameters =========================*/
|
||||
/* &P_OBJ is a mixed list: */
|
||||
/* 1 L2 binary # elements */
|
||||
/* 3 L10 object name */
|
||||
/* 13 L10 library */
|
||||
/* 23 L8 object type */
|
||||
/* 31 L8 lock state, *EXCL etc. */
|
||||
/* 39 L10 member, if data base file */
|
||||
|
||||
/* Get number of elements */
|
||||
CHGVAR VAR(&ELEMC) VALUE(%SST(&P_OBJ 1 2))
|
||||
CHGVAR VAR(&ELEMP) VALUE(%BIN(&ELEMC))
|
||||
|
||||
/* Extract elements from list. First 3 are required. */
|
||||
/* Obj and lib are considered 1 element */
|
||||
CHGVAR VAR(&OBJNAM) VALUE(%SST(&P_OBJ 3 10))
|
||||
CHGVAR VAR(&OBJLIB) VALUE(%SST(&P_OBJ 13 10))
|
||||
CHGVAR VAR(&TYPE) VALUE(%SST(&P_OBJ 23 8))
|
||||
CHGVAR VAR(&LCKSTATE) VALUE(%SST(&P_OBJ 31 8))
|
||||
|
||||
/* Member is optional */
|
||||
IF COND(&ELEMP *GT 3) THEN(DO)
|
||||
CHGVAR VAR(&MEMBER) VALUE(%SST(&P_OBJ 39 10))
|
||||
ENDDO
|
||||
|
||||
/* Set the default wait value */
|
||||
/* Wait 99999 means use *CLS as the wait value on the ALCOBJ */
|
||||
IF COND(&P_WAIT = 99999) THEN(DO)
|
||||
RTVJOBA TYPE(&JOBTYPE) DFTWAIT(&ORGWAIT)
|
||||
ENDDO
|
||||
ELSE CMD(DO)
|
||||
CHGVAR VAR(&ORGWAIT) VALUE(&P_WAIT)
|
||||
ENDDO
|
||||
CHGVAR VAR(&WAIT) VALUE(&ORGWAIT)
|
||||
|
||||
/*=== Attempt to allocate the object ==============================*/
|
||||
RETRY: +
|
||||
/* Convert *LIBL/*CURLIB into a real name, if possible, */
|
||||
/* for clarity in operator message. This may fail if the object*/
|
||||
/* is already allocated *EXCL. If so, we just continue. */
|
||||
IF COND(&OBJLIB *EQ '*LIBL') THEN(DO)
|
||||
RTVOBJD OBJ(&OBJLIB/&OBJNAM) OBJTYPE(&TYPE) RTNLIB(&OBJLIB)
|
||||
MONMSG MSGID(CPF9803) /* Cannot Allocate */
|
||||
ENDDO
|
||||
|
||||
/* Blank member is syntax error in ALLOBJ, but if you do */
|
||||
/* not specify a member it is the same as specifying *FIRST */
|
||||
/* so get the *FIRST actual name. */
|
||||
/* If not available just put in *FIRST and GETOBJUR will sort */
|
||||
/* it out. */
|
||||
IF COND((&TYPE *EQ '*FILE') *AND (&MEMBER *EQ ' ') ) THEN(DO)
|
||||
RTVMBRD FILE(&OBJLIB/&OBJNAM) RTNMBR(&MEMBER)
|
||||
MONMSG MSGID(CPF3018) EXEC(DO) /* Not available */
|
||||
CHGVAR VAR(&MEMBER) VALUE('*FIRST')
|
||||
ENDDO
|
||||
ENDDO
|
||||
|
||||
CHGVAR VAR(&WAITC) VALUE(&WAIT)
|
||||
IF COND(&TYPE *NE '*FILE') THEN(DO)
|
||||
/* Not a file: build command like this, without MEMBER */
|
||||
/* ALCOBJ OBJ((&OBJLIB/&OBJNAM &TYPE &LCKSTATE &MEMBER)) WAIT(&WAITC) +
|
||||
CONFLICT(*RQSRLS) */
|
||||
CHGVAR VAR(&ALC_CMD) +
|
||||
VALUE('ALCOBJ OBJ((' +
|
||||
*TCAT &OBJLIB *TCAT '/' *TCAT &OBJNAM *TCAT ' ' +
|
||||
*CAT &TYPE *TCAT ' ' *CAT &LCKSTATE +
|
||||
*TCAT ')) WAIT(' *TCAT &WAITC *TCAT ')' +
|
||||
*TCAT ' CONFLICT(*RQSRLS) ' +
|
||||
)
|
||||
ENDDO
|
||||
ELSE CMD(DO)
|
||||
/* Is a file: build command like this, with MEMBER */
|
||||
/* ALCOBJ OBJ((&OBJLIB/&OBJNAM &TYPE &LCKSTATER)) WAIT(&WAITC) +
|
||||
CONFLICT(*RQSRLS) */
|
||||
|
||||
CHGVAR VAR(&ALC_CMD) +
|
||||
VALUE('ALCOBJ OBJ((' +
|
||||
*TCAT &OBJLIB *TCAT '/' *TCAT &OBJNAM *TCAT ' ' +
|
||||
*CAT &TYPE *TCAT ' ' *CAT &LCKSTATE +
|
||||
*TCAT ' ' *CAT &MEMBER +
|
||||
*TCAT ')) WAIT(' *TCAT &WAITC *TCAT ')' +
|
||||
*TCAT ' CONFLICT(*RQSRLS) ' +
|
||||
)
|
||||
ENDDO
|
||||
|
||||
/* If fail to obtain lock, then we must analyse the situation */
|
||||
/* SNDUSRMSG MSG(&ALC_CMD) MSGTYPE(*INFO) TOMSGQ(*EXT) */
|
||||
CALL PGM(QCMDEXC) PARM(&ALC_CMD 200)
|
||||
MONMSG MSGID(CPF1002) EXEC(DO) /* Not allocated */
|
||||
|
||||
/* If wait is longer than 60 seconds, make minutes for */
|
||||
/* message and round up to next minute. */
|
||||
IF COND(&WAIT > 60 *AND &WAIT *NE 0) THEN(DO)
|
||||
CHGVAR VAR(&WAITMIN) VALUE((&WAIT + 59) / 60)
|
||||
/* EDTVAR CHROUT(&WAITMSG) NUMINP(&WAITMIN) */
|
||||
CHGVAR VAR(&WAITMSG) VALUE(&WAITMIN)
|
||||
CHGVAR VAR(&WAITMSG) VALUE(%TRIML(&WAITMSG '0'))
|
||||
IF (&WAITMSG = ' ') CHGVAR &WAITMSG ('0')
|
||||
CHGVAR VAR(&WAITMSG) VALUE(&WAITMSG *TCAT ' minutes. ')
|
||||
ENDDO
|
||||
ELSE CMD(DO)
|
||||
/* EDTVAR CHROUT(&WAITMSG) NUMINP(&WAIT)*/
|
||||
CHGVAR VAR(&WAITMSG) VALUE(&WAIT)
|
||||
CHGVAR VAR(&WAITMSG) VALUE(%TRIML(&WAITMSG '0'))
|
||||
IF (&WAITMSG = ' ') CHGVAR &WAITMSG ('0')
|
||||
CHGVAR VAR(&WAITMSG) VALUE(&WAITMSG *TCAT ' seconds. ')
|
||||
ENDDO
|
||||
|
||||
/* Find out who is using the object. By now all the */
|
||||
/* locks may have been freed. If so, retry the ALCOBJ */
|
||||
GETOBJUSR OBJECT(&OBJLIB/&OBJNAM) TYPE(&TYPE) MEMBER(&MEMBER) +
|
||||
MSGFLD(&RETMSG)
|
||||
IF COND(&RETMSG *EQ ' ') THEN(GOTO CMDLBL(RETRY))
|
||||
|
||||
/* Build a message for the operator. */
|
||||
CHGVAR VAR(&OPMSG) VALUE(&RETMSG *TCAT ' Waited for ' *CAT +
|
||||
&WAITMSG *TCAT ' Please attempt to resolve the conflict, +
|
||||
then enter R to retry, or 5 to retry for 5 minutes, 10 to +
|
||||
retry for 10 minutes or 30 to retry for 30 minutes.')
|
||||
|
||||
/* If he may cancel the job, let him know */
|
||||
IF COND(&P_OPMAYCAN *EQ '*YES') THEN(DO)
|
||||
CHGVAR VAR(&OPMSG) VALUE(&OPMSG *TCAT ' (Or enter C to +
|
||||
cancel.)')
|
||||
ENDDO
|
||||
|
||||
/* Talk to the operator */
|
||||
TALKTOOP: +
|
||||
SNDUSRMSG MSG(&OPMSG) MSGTYPE(*INQ) TOUSR(*REQUESTER) +
|
||||
MSGRPY(&REPLY) VALUES(5 10 30 R C)
|
||||
|
||||
/* R = retry for originally specified time */
|
||||
IF COND(&REPLY *EQ 'R') THEN(DO)
|
||||
CHGVAR VAR(&WAIT) VALUE(&ORGWAIT)
|
||||
GOTO CMDLBL(RETRY)
|
||||
ENDDO
|
||||
|
||||
/* Send a CPF9898 escape message if operator cancels */
|
||||
IF COND(&REPLY *EQ 'C') THEN(DO)
|
||||
IF COND(&P_OPMAYCAN *EQ '*YES') THEN(DO)
|
||||
SNDPGMMSG MSGID(CPF9898) MSGF(QCPFMSG) MSGDTA('PGM +
|
||||
was canceled by a response of C') MSGTYPE(*ESCAPE)
|
||||
ENDDO
|
||||
ELSE (DO)
|
||||
GOTO CMDLBL(TALKTOOP)
|
||||
ENDDO
|
||||
ENDDO
|
||||
|
||||
/* Else set new specified wait time and retry */
|
||||
CHGVAR VAR(&WAIT) VALUE(&REPLY)
|
||||
CHGVAR VAR(&WAIT) VALUE(&WAIT * 60)
|
||||
|
||||
GOTO CMDLBL(RETRY)
|
||||
|
||||
ENDDO /* MONMSG CPF1002 */
|
||||
|
||||
/*=== If we get this far we have the object locked as requested.===*/
|
||||
|
||||
/* End of program */
|
||||
GOTO CMDLBL(ENDPGM)
|
||||
|
||||
/*=== Error handler - resend diagnostic & escape messages =========*/
|
||||
ERROR: +
|
||||
MOVPGMMSG MSGTYPE(*DIAG)
|
||||
RSNESCMSG
|
||||
|
||||
ENDPGM: +
|
||||
ENDPGM
|
||||
199
APIs_SQL/LCKOBJCorg.CLLE
Normal file
199
APIs_SQL/LCKOBJCorg.CLLE
Normal file
@ -0,0 +1,199 @@
|
||||
LCKOBJC: +
|
||||
PGM PARM(&P_OBJ &P_WAIT &P_OPMAYCAN)
|
||||
/* -----------------------------------------------------------------*/
|
||||
/* Program attemps to lock an object with the requested lock state, */
|
||||
/* *EXCL, EXCLRD, etc. */
|
||||
/* If it fails to obtain the lock in the specified time it talks to */
|
||||
/* the system operator, telling him which job are causing the */
|
||||
/* ALCOBJ to fail. Operator can opt to cancel, or retry the ALCOBJ */
|
||||
/* for 5, 10, 0r 30 minutes, or the default class wait time. */
|
||||
/* -----------------------------------------------------------------*/
|
||||
/* Use the LCKOBJ command to invoke this program */
|
||||
/* -----------------------------------------------------------------*/
|
||||
/* 11/24/97 LENNON Original writing */
|
||||
/* -----------------------------------------------------------------*/
|
||||
/* 10/05/2001 Sam Lennon. If a non file object is locked *EXCL then */
|
||||
/* RTVOBJD to get real library name to put in the */
|
||||
/* message fails. If this occurs, just continue and */
|
||||
/* *LIBL may appear in the message. */
|
||||
/* Change retry logic to allow entry of varying times. */
|
||||
/* Installed 9/2002. */
|
||||
/* -----------------------------------------------------------------*/
|
||||
/* Input parameters */
|
||||
DCL VAR(&P_OBJ) TYPE(*CHAR) LEN(48) /* Obj & lib */
|
||||
DCL VAR(&P_WAIT) TYPE(*DEC) LEN(5) /* Seconds */
|
||||
DCL VAR(&P_OPMAYCAN) TYPE(*CHAR) LEN(4) /* *YES *NO */
|
||||
|
||||
/* Variables used in this program */
|
||||
DCL VAR(&ORGWAIT) TYPE(*DEC) LEN(7) /* Original wait*/
|
||||
DCL VAR(&ELEMC) TYPE(*CHAR) LEN(2) /* # elements */
|
||||
DCL VAR(&ELEMP) TYPE(*DEC) LEN(5) /* # elements */
|
||||
DCL VAR(&JOBTYPE) TYPE(*CHAR) LEN(1) /* 1=interactive */
|
||||
DCL VAR(&LCKSTATE) TYPE(*CHAR) LEN(8) /* *SHRRD, etc */
|
||||
DCL VAR(&KEYVAR) TYPE(*CHAR) LEN(4) /* messages */
|
||||
DCL VAR(&MEMBER) TYPE(*CHAR) LEN(10) /* if *FILE */
|
||||
DCL VAR(&OBJNAM) TYPE(*CHAR) LEN(10) /* Obj name */
|
||||
DCL VAR(&OBJLIB) TYPE(*CHAR) LEN(10) /* Obj lib */
|
||||
DCL VAR(&OPMSG) TYPE(*CHAR) LEN(500) /* No msg fld passed */
|
||||
DCL VAR(&REPLY) TYPE(*CHAR) LEN(2) /* Oper Reply */
|
||||
DCL VAR(&RETMSG) TYPE(*CHAR) LEN(200) /* From GETOBJUSR */
|
||||
DCL VAR(&TYPE) TYPE(*CHAR) LEN(8) /* Obj type */
|
||||
DCL VAR(&WAIT) TYPE(*DEC) LEN(5) /* Wait as num */
|
||||
DCL VAR(&WAITC) TYPE(*CHAR) LEN(5) /* Wait as char */
|
||||
DCL VAR(&WAITMIN) TYPE(*DEC) LEN(5) /* Wait in mins */
|
||||
DCL VAR(&WAITMSG) TYPE(*CHAR) LEN(20) /* temp field */
|
||||
|
||||
/* Error Handling Variables */
|
||||
DCL VAR(&E_MSGID) TYPE(*CHAR) LEN(7)
|
||||
DCL VAR(&E_MSGF) TYPE(*CHAR) LEN(10)
|
||||
DCL VAR(&E_MSGFLIB) TYPE(*CHAR) LEN(10)
|
||||
DCL VAR(&E_MSGDTA) TYPE(*CHAR) LEN(100)
|
||||
|
||||
/* Catch unmonitored errors */
|
||||
MONMSG MSGID(CPF0000) EXEC(GOTO CMDLBL(ERROR))
|
||||
|
||||
/*==== Pre processing of input parameters =========================*/
|
||||
/* &P_OBJ is a mixed list: */
|
||||
/* 1 L2 binary # elements */
|
||||
/* 3 L10 object name */
|
||||
/* 13 L10 library */
|
||||
/* 23 L8 object type */
|
||||
/* 31 L8 lock state, *EXCL etc. */
|
||||
/* 39 L10 member, if data base file */
|
||||
|
||||
/* Get number of elements */
|
||||
CHGVAR VAR(&ELEMC) VALUE(%SST(&P_OBJ 1 2))
|
||||
CHGVAR VAR(&ELEMP) VALUE(%BIN(&ELEMC))
|
||||
|
||||
/* Extract elements from list. First 3 are required. */
|
||||
/* Obj and lib are considered 1 element */
|
||||
CHGVAR VAR(&OBJNAM) VALUE(%SST(&P_OBJ 3 10))
|
||||
CHGVAR VAR(&OBJLIB) VALUE(%SST(&P_OBJ 13 10))
|
||||
CHGVAR VAR(&TYPE) VALUE(%SST(&P_OBJ 23 8))
|
||||
CHGVAR VAR(&LCKSTATE) VALUE(%SST(&P_OBJ 31 8))
|
||||
|
||||
/* Member is optional */
|
||||
IF COND(&ELEMP *GT 3) THEN(DO)
|
||||
CHGVAR VAR(&MEMBER) VALUE(%SST(&P_OBJ 39 10))
|
||||
ENDDO
|
||||
|
||||
/* If MEMBER is blank, change to *FIRST. *FIRST is ignored on */
|
||||
/* non-file objects, but blanks causes a syntax error in ALCOBJ */
|
||||
/* IF COND(&MEMBER *EQ ' ') THEN(DO) */
|
||||
/* CHGVAR VAR(&MEMBER) VALUE('*FIRST') */
|
||||
/* ENDDO */
|
||||
|
||||
/* Set the default wait value */
|
||||
/* Wait 99999 means use *CLS as the wait value on the ALCOBJ */
|
||||
IF COND(&P_WAIT = 99999) THEN(DO)
|
||||
RTVJOBA TYPE(&JOBTYPE) DFTWAIT(&ORGWAIT)
|
||||
ENDDO
|
||||
ELSE CMD(DO)
|
||||
CHGVAR VAR(&ORGWAIT) VALUE(&P_WAIT)
|
||||
ENDDO
|
||||
CHGVAR VAR(&WAIT) VALUE(&ORGWAIT)
|
||||
|
||||
/*==== Convert *LIBL/*CURLIB into a real name, if possible,========*/
|
||||
/* for clarity in operator message. This may fail if the object*/
|
||||
/* is already allocated *EXCL. If so, we just continue. */
|
||||
IF COND(&OBJLIB *EQ '*LIBL') THEN(DO)
|
||||
RTVOBJD OBJ(&OBJLIB/&OBJNAM) OBJTYPE(&TYPE) RTNLIB(&OBJLIB)
|
||||
MONMSG MSGID(CPF9803) /* Cannot Allocate */
|
||||
ENDDO
|
||||
|
||||
/* Blank member is syntax error in ALLOBJ, but if you do */
|
||||
/* not specify a member it is the same as specifying *FIRST */
|
||||
/* so get the *FIRST actual name. */
|
||||
IF COND((&TYPE *EQ '*FILE') *AND (&MEMBER *EQ ' ') ) THEN(DO)
|
||||
RTVMBRD FILE(&OBJLIB/&OBJNAM) RTNMBR(&MEMBER)
|
||||
ENDDO
|
||||
|
||||
/*=== Attempt to allocate the object ==============================*/
|
||||
RETRY: +
|
||||
CHGVAR VAR(&WAITC) VALUE(&WAIT)
|
||||
ALCOBJ OBJ((&OBJLIB/&OBJNAM &TYPE &LCKSTATE &MEMBER)) WAIT(&WAITC)
|
||||
|
||||
/* If fail to obtain lock, then we must analyse the situation */
|
||||
MONMSG MSGID(CPF1002) EXEC(DO) /* Not allocated */
|
||||
|
||||
/* If wait is longer than 60 seconds, make minutes for */
|
||||
/* message and round up to next minute. */
|
||||
IF COND(&WAIT > 60 *AND &WAIT *NE 0) THEN(DO)
|
||||
CHGVAR VAR(&WAITMIN) VALUE((&WAIT + 59) / 60)
|
||||
/* EDTVAR CHROUT(&WAITMSG) NUMINP(&WAITMIN) */
|
||||
CHGVAR VAR(&WAITMSG) VALUE(&WAITMIN)
|
||||
CHGVAR VAR(&WAITMSG) VALUE(%TRIML(&WAITMSG '0'))
|
||||
IF (&WAITMSG = ' ') CHGVAR &WAITMSG ('0')
|
||||
CHGVAR VAR(&WAITMSG) VALUE(&WAITMSG *TCAT ' minutes. ')
|
||||
ENDDO
|
||||
ELSE CMD(DO)
|
||||
/* EDTVAR CHROUT(&WAITMSG) NUMINP(&WAIT)*/
|
||||
CHGVAR VAR(&WAITMSG) VALUE(&WAIT)
|
||||
CHGVAR VAR(&WAITMSG) VALUE(%TRIML(&WAITMSG '0'))
|
||||
IF (&WAITMSG = ' ') CHGVAR &WAITMSG ('0')
|
||||
CHGVAR VAR(&WAITMSG) VALUE(&WAITMSG *TCAT ' seconds. ')
|
||||
ENDDO
|
||||
|
||||
/* Find out who is using the object. By now all the */
|
||||
/* locks may have been freed. If so, retry the ALCOBJ */
|
||||
GETOBJUSR OBJECT(&OBJLIB/&OBJNAM) TYPE(&TYPE) MEMBER(&MEMBER) +
|
||||
MSGFLD(&RETMSG)
|
||||
IF COND(&RETMSG *EQ ' ') THEN(GOTO CMDLBL(RETRY))
|
||||
|
||||
/* Build a message for the operator. */
|
||||
CHGVAR VAR(&OPMSG) VALUE(&RETMSG *TCAT ' Waited for ' *CAT +
|
||||
&WAITMSG *TCAT ' Please attempt to resolve the conflict, +
|
||||
then enter R to retry, or 5 to retry for 5 minutes, 10 to +
|
||||
retry for 10 minutes or 30 to retry for 30 minutes.')
|
||||
|
||||
/* If he may cancel the job, let him know */
|
||||
IF COND(&P_OPMAYCAN *EQ '*YES') THEN(DO)
|
||||
CHGVAR VAR(&OPMSG) VALUE(&OPMSG *TCAT ' (Or enter C to +
|
||||
cancel.)')
|
||||
ENDDO
|
||||
|
||||
/* Talk to the operator */
|
||||
TALKTOOP: +
|
||||
SNDUSRMSG MSG(&OPMSG) MSGTYPE(*INQ) TOUSR(*REQUESTER) +
|
||||
MSGRPY(&REPLY) VALUES(5 10 30 R C)
|
||||
|
||||
/* R = retry for originally specified time */
|
||||
IF COND(&REPLY *EQ 'R') THEN(DO)
|
||||
CHGVAR VAR(&WAIT) VALUE(&ORGWAIT)
|
||||
GOTO CMDLBL(RETRY)
|
||||
ENDDO
|
||||
|
||||
/* Send a CPF9898 escape message if operator cancels */
|
||||
IF COND(&REPLY *EQ 'C') THEN(DO)
|
||||
IF COND(&P_OPMAYCAN *EQ '*YES') THEN(DO)
|
||||
SNDPGMMSG MSGID(CPF9898) MSGF(QCPFMSG) MSGDTA('PGM +
|
||||
was canceled by a response of C') MSGTYPE(*ESCAPE)
|
||||
ENDDO
|
||||
ELSE (DO)
|
||||
GOTO CMDLBL(TALKTOOP)
|
||||
ENDDO
|
||||
ENDDO
|
||||
|
||||
/* Else set new specified wait time and retry */
|
||||
CHGVAR VAR(&WAIT) VALUE(&REPLY)
|
||||
CHGVAR VAR(&WAIT) VALUE(&WAIT * 60)
|
||||
|
||||
GOTO CMDLBL(RETRY)
|
||||
|
||||
ENDDO /* MONMSG CPF1002 */
|
||||
|
||||
/*=== If we get this far we have the object locked as requested.===*/
|
||||
|
||||
/* End of program */
|
||||
GOTO CMDLBL(ENDPGM)
|
||||
|
||||
/*=== Error handler - resend any trapped escape message ===========*/
|
||||
ERROR: +
|
||||
RCVMSG MSGTYPE(*LAST) MSGDTA(&E_MSGDTA) MSGID(&E_MSGID) +
|
||||
MSGF(&E_MSGF) MSGFLIB(&E_MSGFLIB)
|
||||
MONMSG MSGID(CPF0000) /* Just in case */
|
||||
SNDPGMMSG MSGID(&E_MSGID) MSGF(&E_MSGFLIB/&E_MSGF) +
|
||||
MSGDTA(&E_MSGDTA) MSGTYPE(*ESCAPE)
|
||||
MONMSG MSGID(CPF0000) /* Just in case */
|
||||
ENDPGM: +
|
||||
ENDPGM
|
||||
@ -1,5 +1,5 @@
|
||||
PGM
|
||||
/* Masic test, using a library as the oject of choice. */
|
||||
/* Basic test, using a library as the oject of choice. */
|
||||
/* Return just a file. Message will be blank. */
|
||||
|
||||
DCL VAR(&MSG) TYPE(*CHAR) LEN(200)
|
||||
|
||||
@ -2,6 +2,6 @@
|
||||
|
||||
/* Create a lock and delay. Called by T9ALLOCMNY */
|
||||
|
||||
ALCOBJ OBJ((QIWS/QCUSTCDT *FILE *SHRRD)) WAIT(0)
|
||||
DLYJOB DLY(90)
|
||||
ALCOBJ OBJ((lennons1/qclsrc *FILE *SHRRD)) WAIT(0)
|
||||
DLYJOB DLY(180)
|
||||
ENDPGM
|
||||
|
||||
@ -1,11 +1,17 @@
|
||||
PGM
|
||||
/***************************************************************/
|
||||
/* Creates locks on QIWS/QCUSTCDT to test GETOBJUR. */
|
||||
/* Creates locks on LENNONS/QCLSRC to test GETOBJUR. */
|
||||
/* Call T9DSPMNY to report the locks. */
|
||||
/***************************************************************/
|
||||
|
||||
DCL VAR(&JOBTYP) TYPE(*CHAR) LEN(1)
|
||||
RTVJOBA TYPE(&JOBTYP)
|
||||
IF COND(&JOBTYP *EQ '1') THEN(DO)
|
||||
SBMJOB CMD(CALL PGM(T9ALLOCMNY) ) +
|
||||
JOB(T9ALLOCMNY) JOBQ(QUSRNOMAX)
|
||||
RETURN
|
||||
ENDDO
|
||||
/* Create an interactive lock */
|
||||
ALCOBJ OBJ((QIWS/QCUSTCDT *FILE *SHRRD))
|
||||
ALCOBJ OBJ((lennons1/qclsrc *FILE *SHRRD))
|
||||
|
||||
/* Create some batch locks. Submitted jobs wait for 90 seconds */
|
||||
/* so you can call T9DSPMAY to see the locks. */
|
||||
@ -17,4 +23,4 @@
|
||||
JOBQ(QUSRNOMAX)
|
||||
SBMJOB CMD(CALL PGM(T9ALLOC1)) JOB(YTD_RPT) +
|
||||
JOBQ(QUSRNOMAX)
|
||||
ENDPGM
|
||||
ENDPGM: ENDPGM
|
||||
|
||||
@ -3,7 +3,7 @@
|
||||
/* Display locks after running T9ALLOCMNY */
|
||||
|
||||
DCL VAR(&MSG) TYPE(*CHAR) LEN(200)
|
||||
GETOBJUSR OBJECT(QIWS/QCUSTCDT) TYPE(*FILE) +
|
||||
GETOBJUSR OBJECT(lennons1/qclsrc) TYPE(*FILE) +
|
||||
MSGFLD(&MSG) RETFILE(*YES)
|
||||
SNDMSG MSG(&MSG) TOUSR(*REQUESTER)
|
||||
QRY FILE(QTEMP/GETOBJUP)
|
||||
|
||||
10
APIs_SQL/t90.clle
Normal file
10
APIs_SQL/t90.clle
Normal file
@ -0,0 +1,10 @@
|
||||
pgm
|
||||
DCL VAR(&MSG) TYPE(*CHAR) LEN(200)
|
||||
|
||||
GETOBJUSR OBJECT(lennons1/qclsrc) TYPE(*file) +
|
||||
MSGFLD(&MSG) RETFILE(*YES)
|
||||
|
||||
SNDMSG MSG(&MSG) TOUSR(*REQUESTER)
|
||||
QRY FILE(QTEMP/GETOBJUP)
|
||||
|
||||
ENDPGM
|
||||
5
BASE36/BASE36_Px.RPGLE
Normal file
5
BASE36/BASE36_Px.RPGLE
Normal file
@ -0,0 +1,5 @@
|
||||
**FREE
|
||||
// === BASE36ADD prototype ==========================================
|
||||
dcl-pr BASE36ADD varchar(50);
|
||||
theValue varchar(50) const;
|
||||
end-pr;
|
||||
@ -17,7 +17,7 @@
|
||||
ctl-opt debug option(*nodebugio: *srcstmt) dftactgrp(*no)
|
||||
actgrp(*caller) bnddir('SRV_BASE36')
|
||||
main(Main);
|
||||
/include base36,base36_p
|
||||
/include ../base36/base36_p.rpgle
|
||||
|
||||
dcl-proc Main ;
|
||||
dcl-pi *N extpgm('BTBR');
|
||||
|
||||
@ -11,7 +11,7 @@
|
||||
ctl-opt debug option(*nodebugio: *srcstmt) dftactgrp(*no)
|
||||
actgrp(*caller) bnddir('SRV_BASE36')
|
||||
main(Main);
|
||||
/include base36,base36_p
|
||||
/include ../base36/base36_p.rpgle
|
||||
|
||||
dcl-f BTID WORKSTN INFDS(dfInfDS) Usropn;
|
||||
dcl-ds dfInfDS;
|
||||
@ -20,7 +20,7 @@ end-ds;
|
||||
|
||||
dcl-c F03 x'33';
|
||||
dcl-c F05 x'35';
|
||||
dcl-s ValVar varchar(20);
|
||||
dcl-s valVar varchar(20);
|
||||
dcl-s j int(10);
|
||||
|
||||
dcl-ds *N; // Rolling screen fields
|
||||
@ -61,14 +61,14 @@ dow Key <> F03;
|
||||
|
||||
// Roll values up the screen
|
||||
for j = 1 to %elem(Values)-1;
|
||||
Values(j) = Values(J+1);
|
||||
Values(j) = Values(j+1);
|
||||
endfor;
|
||||
Val18 = Val;
|
||||
|
||||
// Increment by 1
|
||||
valVar = %trim(val);
|
||||
valVar = BASE36ADD(ValVar);
|
||||
Val = ValVar;
|
||||
valVar = BASE36ADD(valVar);
|
||||
Val = valVar;
|
||||
exfmt SCREEN;
|
||||
enddo;
|
||||
|
||||
|
||||
@ -24,7 +24,7 @@
|
||||
|
||||
ctl-opt debug nomain option(*nodebugio: *srcstmt) ;
|
||||
|
||||
/include BASE36,BASE36_P
|
||||
/include ../BASE36/BASE36_P.RPGLE
|
||||
|
||||
dcl-proc BASE36ADD export ;
|
||||
dcl-pi BASE36ADD varchar(50);
|
||||
@ -35,8 +35,8 @@ dcl-s wkValue like(PI_Value);
|
||||
dcl-s inx int(10);
|
||||
|
||||
// Ascending values of a postion is A,B,...,Y,Z,0,1,2,...,7,8,9.
|
||||
dcl-c From 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
|
||||
dcl-c To 'BCDEFGHIJKLMNOPQRSTUVWXYZ0123456789A';
|
||||
dcl-c FROM 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
|
||||
dcl-c TO 'BCDEFGHIJKLMNOPQRSTUVWXYZ0123456789A';
|
||||
|
||||
wkValue = PI_Value;
|
||||
// Increment the last position in the input value. If it now is
|
||||
@ -44,9 +44,9 @@ wkValue = PI_Value;
|
||||
// so move to the prior input value field and repeat.
|
||||
inx = %len(PI_Value);
|
||||
dow inx > 0;
|
||||
%subst(wkValue:inx:1) = %xlate(From:To:%subst(wkValue:inx:1));
|
||||
%subst(wkValue:inx:1) = %xlate(FROM:TO:%subst(wkValue:inx:1));
|
||||
// if %subst(wkValue:inx:1) <> 'A'; // Not rolled over
|
||||
if %subst(wkValue:inx:1) <> %subst(To:%size(To):1) ; // Not rolled over
|
||||
if %subst(wkValue:inx:1) <> %subst(TO:%size(TO):1) ; // Not rolled over
|
||||
leave;
|
||||
endif;
|
||||
inx -= 1;
|
||||
|
||||
51
Copy_Mbrs/AIDBYTES.RPGLE
Normal file
51
Copy_Mbrs/AIDBYTES.RPGLE
Normal file
@ -0,0 +1,51 @@
|
||||
**FREE
|
||||
// 5250 Attention Indicator (AID) definitions
|
||||
dcl-c F01 const(x'31');
|
||||
dcl-c F02 const(x'32');
|
||||
dcl-c F03 const(x'33');
|
||||
dcl-c F04 const(x'34');
|
||||
dcl-c F05 const(x'35');
|
||||
dcl-c F06 const(x'36');
|
||||
dcl-c F07 const(x'37');
|
||||
dcl-c F08 const(x'38');
|
||||
dcl-c F09 const(x'39');
|
||||
dcl-c F10 const(x'3A');
|
||||
dcl-c F11 const(x'3B');
|
||||
dcl-c F12 const(x'3C');
|
||||
dcl-c F13 const(x'B1');
|
||||
dcl-c F14 const(x'B2');
|
||||
dcl-c F15 const(x'B3');
|
||||
dcl-c F16 const(x'B4');
|
||||
dcl-c F17 const(x'B5');
|
||||
dcl-c F18 const(x'B6');
|
||||
dcl-c F19 const(x'B7');
|
||||
dcl-c F20 const(x'B8');
|
||||
dcl-c F21 const(x'B9');
|
||||
dcl-c F22 const(x'BA');
|
||||
dcl-c F23 const(x'BB');
|
||||
dcl-c F24 const(x'BC');
|
||||
// Page Down/Roll Up
|
||||
dcl-c RollUp const(x'F5');
|
||||
dcl-c PageDown const(x'F5');
|
||||
// Page Up/Roll Down
|
||||
dcl-c RollDown const(x'F4');
|
||||
dcl-c PageUp const(x'F4');
|
||||
// Enter
|
||||
dcl-c Enter const(x'F1');
|
||||
dcl-c Home const(x'F8');
|
||||
//Mouse events linked to DDS MOUBTN keyword
|
||||
dcl-c ME00 const(x'70');
|
||||
dcl-c ME01 const(x'71');
|
||||
dcl-c ME02 const(x'72');
|
||||
dcl-c ME03 const(x'73');
|
||||
dcl-c ME04 const(x'74');
|
||||
dcl-c ME05 const(x'75');
|
||||
dcl-c ME06 const(x'76');
|
||||
dcl-c ME07 const(x'77');
|
||||
dcl-c ME08 const(x'78');
|
||||
dcl-c ME09 const(x'79');
|
||||
dcl-c ME10 const(x'7A');
|
||||
dcl-c ME11 const(x'7B');
|
||||
dcl-c ME12 const(x'7C');
|
||||
dcl-c ME13 const(x'7D');
|
||||
dcl-c ME14 const(x'7E');
|
||||
5
Copy_Mbrs/BASE36_P.RPGLE
Normal file
5
Copy_Mbrs/BASE36_P.RPGLE
Normal file
@ -0,0 +1,5 @@
|
||||
**FREE
|
||||
// === BASE36ADD prototype ==========================================
|
||||
dcl-pr BASE36ADD varchar(50);
|
||||
theValue varchar(50) const;
|
||||
end-pr;
|
||||
@ -2,30 +2,34 @@
|
||||
|
||||
These are source files that will be copied into programs using /COPY or /INCLUDE
|
||||
|
||||
* ##AIDBTYE
|
||||
* ##AIDBTYE.RPGLE
|
||||
|
||||
5250 Attention ID Definitions. These are the value that are returned in byte 369 of the display file indicator data structure when a screen entry is made.
|
||||
5250 Attention ID Definitions. These are the value that are returned in byte 369 of the display file indicator data structure when a screen entry is made.
|
||||
|
||||
* SRV_MSG_P
|
||||
* SRV_MSG_P.RPGLE
|
||||
|
||||
Prototype definitions for procedures in the SRV_MSG service program.
|
||||
|
||||
* SRV_STR_P
|
||||
* SRV_RAND_P.RPGLE
|
||||
|
||||
Prototype definitions for procedures in the SRV_STR service program.
|
||||
Prototype definitions for procedures in the SRV_RANDOM service program.
|
||||
|
||||
* SRV_SQL_P
|
||||
* SRV_SQL_P.RPGLE
|
||||
|
||||
Prorotype definitions for procedures in the SQL_SRV service program.
|
||||
|
||||
* USADRVAL_P
|
||||
* SRV_STR_P.RPGLE
|
||||
|
||||
Prototype definitions for procedures in the SRV_STR service program.
|
||||
|
||||
* USADRVAL_P.RPGLE
|
||||
|
||||
Prototype for the USADRVAL service program.
|
||||
|
||||
* USADRVALDS
|
||||
* USADRVALDS.RPGLE
|
||||
|
||||
Template Data Structure for the USADRVAL parameters.
|
||||
|
||||
* USPHDR
|
||||
* USPHDR.RPGLE
|
||||
|
||||
User Space Header Layout.
|
||||
|
||||
@ -1,34 +1,33 @@
|
||||
|
||||
//=== Prototypes for SRV_MSG routines ========================
|
||||
//============================================================
|
||||
D SndMsgPgmQ pr Send Msg to PGM Q
|
||||
D pMsgQ 10
|
||||
D pMsgid 7
|
||||
D pMsgFile 10
|
||||
D pMsgDta 512 options(*NOPASS)
|
||||
D Varying
|
||||
dcl-pr SndMsgPgmQ; // Send Msg to PGM Q
|
||||
*n char(10); // pMsgQ
|
||||
*n char(7); // pMsgid
|
||||
*n char(10); // pMsgFile
|
||||
*n varchar(512) options(*nopass); // pMsgDta
|
||||
end-pr;
|
||||
//============================================================
|
||||
D ClrMsgPgmQ pr N Clear PGM Msg Q
|
||||
D pPgmMsgQ 10
|
||||
|
||||
dcl-pr ClrMsgPgmQ ind; // Clear PGM Msg Q
|
||||
*n char(10); // pPgmMsgQ
|
||||
end-pr;
|
||||
//============================================================
|
||||
D SndEscMsg pr Send ESC Msg
|
||||
D piMsg 512a Const Varying
|
||||
D pStackEnt 10i 0 Const options(*nopass)
|
||||
|
||||
dcl-pr SndEscMsg; // Send ESC Msg
|
||||
*n varchar(512) const; // piMsg
|
||||
*n int(10) const options(*nopass); // pStackEnt
|
||||
end-pr;
|
||||
//============================================================
|
||||
D SndInfMsg pr Send INF Msg
|
||||
D piMsg 512a Const Varying
|
||||
|
||||
dcl-pr SndInfMsg; // Send INF Msg
|
||||
*n varchar(512) const; // piMsg
|
||||
end-pr;
|
||||
//============================================================
|
||||
D JobLogMsg Pr
|
||||
D piMsg 512a Value Varying Msg to job log
|
||||
|
||||
dcl-pr JobLogMsg;
|
||||
*n varchar(512) value; // piMsg Msg to job log
|
||||
end-pr;
|
||||
//============================================================
|
||||
D Show pr extpgm('SHOW') Show popup msg
|
||||
D piPext 8192a Const Varying
|
||||
D piMsgId 7a Const options(*NOPASS)
|
||||
d piMsgFile 21a Const options(*NOPASS)
|
||||
|
||||
|
||||
dcl-pr Show extpgm('SHOW'); // Show popup msg
|
||||
*n varchar(8192) const; // piPext
|
||||
*n char(7) const options(*nopass); // piMsgId
|
||||
*n char(21) const options(*nopass); // piMsgFile
|
||||
end-pr;
|
||||
//=== End of Prototypes forSRV_MSG Routines ==================
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
**free
|
||||
//=== Prototypes for SRV_RANDOM routines =======================
|
||||
dcl-pr Rand_Int int(10);
|
||||
dcl-pr Rand_Int int(10);
|
||||
p_Low int(10) value; // lowest value of range
|
||||
p_High int(10) value; // highest value of range
|
||||
end-pr;
|
||||
|
||||
@ -1,4 +1,6 @@
|
||||
//============================================================
|
||||
Dcl-PR SQLProblem ; // Report SQL Problem
|
||||
pDebugMsg varchar(200) const;
|
||||
End-PR;
|
||||
**free
|
||||
// === Prototype for SRV_SQL routines =========================
|
||||
dcl-pr SQLProblem ; // Report SQL Problem
|
||||
pDebugMsg varchar(200) const;
|
||||
end-pr;
|
||||
// === End of Prototype for SRV_SQL routines ==================
|
||||
|
||||
@ -1,8 +1,7 @@
|
||||
|
||||
//=== Prototypes for SRV_STR routines ========================
|
||||
//============================================================
|
||||
d CenterStr pr 256a varying
|
||||
d InStr 256a varying const
|
||||
d
|
||||
|
||||
//=== End of Prototypes forSRV_STR Routines ==================
|
||||
**FREE
|
||||
//=== Prototypes for SRV_STR routines ========================
|
||||
//============================================================
|
||||
dcl-pr CenterStr varchar(256);
|
||||
*n varchar(256) const; // InStr
|
||||
end-pr;
|
||||
//=== End of Prototypes forSRV_STR Routines ==================
|
||||
|
||||
@ -1,25 +1,26 @@
|
||||
|
||||
//=== USPHDR Description =============================================
|
||||
// The list APIs which return data in a user space put a standard
|
||||
// header at the start of the user space. This descibes the header.
|
||||
//=== Basing Pointer for Header ======================================
|
||||
D UspPtr s * inz(*Null)
|
||||
//=== User Space Header Layout =======================================
|
||||
D UspHdr ds based(UspPtr)
|
||||
D UspH 192a
|
||||
D UspUser 64a overlay(UspH:1)
|
||||
D UspSize 10i 0 overlay(UspH:65)
|
||||
D UspInfSts 1a overlay(UspH:104)
|
||||
D UspICmpl c const('C')
|
||||
D UspIPrtl c const('P')
|
||||
D UspIIncp c const('I')
|
||||
D UspSpSize 10i 0 overlay(UspH:105)
|
||||
D UspInOff 10i 0 overlay(UspH:109)
|
||||
D UspInSize 10i 0 overlay(UspH:113)
|
||||
D UspHdrOfs 10i 0 overlay(UspH:117)
|
||||
D UspHdrSize 10i 0 overlay(UspH:121)
|
||||
D UspLstOfs 10i 0 overlay(UspH:125)
|
||||
D UspLstSize 10i 0 overlay(UspH:129)
|
||||
D UspLst#Ent 10i 0 overlay(UspH:133)
|
||||
D UspLstEntSz 10i 0 overlay(UspH:137)
|
||||
|
||||
**free
|
||||
//=== USPHDR Description =============================================
|
||||
// The list APIs which return data in a user space put a standard
|
||||
// header at the start of the user space. This descibes the header.
|
||||
//=== Basing Pointer for Header ======================================
|
||||
dcl-s UspPtr pointer inz(*null);
|
||||
//=== User Space Header Layout =======================================
|
||||
dcl-ds UspHdr based(uspptr);
|
||||
UspH char(192);
|
||||
UspUser char(64) overlay(usph:1);
|
||||
UspSize int(10) overlay(usph:65);
|
||||
UspInfSts char(1) overlay(usph:104);
|
||||
UspSpSize int(10) overlay(usph:105);
|
||||
UspInOff int(10) overlay(usph:109);
|
||||
UspInSize int(10) overlay(usph:113);
|
||||
UspHdrOfs int(10) overlay(usph:117);
|
||||
UspHdrSize int(10) overlay(usph:121);
|
||||
UspLstOfs int(10) overlay(usph:125);
|
||||
UspLstSize int(10) overlay(usph:129);
|
||||
UspLst#Ent int(10) overlay(usph:133);
|
||||
UspLstEntSz int(10) overlay(usph:137);
|
||||
end-ds;
|
||||
// UspInfSts values
|
||||
dcl-c UspICmpl const('C');
|
||||
dcl-c UspIPrtl const('P');
|
||||
dcl-c UspIIncp const('I');
|
||||
|
||||
@ -13,7 +13,7 @@ ctl-opt option(*nodebugio: *srcstmt)
|
||||
actgrp(*new)
|
||||
main(Main);
|
||||
ctl-opt BndDir('UTIL_BND');
|
||||
/COPY copy_mbrs,Srv_Msg_P
|
||||
/COPY ../Copy_Mbrs/SRV_MSG_P.RPGLE
|
||||
dcl-pr getSpecFmts extpgm('DATEADJC');
|
||||
jobfmt char(4);
|
||||
sysvalfmt char(3);
|
||||
|
||||
@ -4,7 +4,7 @@ Date arithmetic in CL programs is limited and lacks the simplicity and scope fou
|
||||
|
||||
The DATEADJ command adds the functionality of RPG date handling to CL programs.
|
||||
|
||||
DATEADJ adds or subtracts days, months or years from a date and returns an adjusted date. Input and output dates can be in almost any format that RPG recognizes.
|
||||
DATEADJ adds or subtracts days, months or years from a date and returns an adjusted date. Input and output dates can be in almost any format that RPG recognizes. It can also be used to just change the format of a date by specifying an adjustment of 0.
|
||||
|
||||
A prompted DATEADJ command looks like this:
|
||||
|
||||
|
||||
@ -2,8 +2,8 @@
|
||||
ctl-opt DftActGrp(*NO) ActGrp(*new) option(*nodebugio: *srcstmt)
|
||||
main(Main);
|
||||
ctl-opt BndDir('UTIL_BND');
|
||||
/COPY copy_mbrs,Srv_Msg_P
|
||||
/COPY copy_mbrs,Prt_p
|
||||
/COPY ../Copy_Mbrs/SRV_MSG_P.RPGLE
|
||||
/COPY ../Copy_Mbrs/PRT_P.RPGLE
|
||||
|
||||
dcl-proc Main;
|
||||
|
||||
@ -48,7 +48,7 @@ dcl-proc Main;
|
||||
head.inType = 'Type';
|
||||
head.outDate = 'OutDate';
|
||||
head.outFmt = 'OutFmt';
|
||||
PRT(head :'*HEAD') ;
|
||||
PRT(head :'*H1') ;
|
||||
|
||||
// === Test default stuff ====
|
||||
inType = '*DAYS';
|
||||
|
||||
@ -7,7 +7,7 @@ set path lennons1; -- CHANGE TO YOUR LIBRARY
|
||||
DROP FUNCTION DATE_MDY
|
||||
;
|
||||
CREATE OR REPLACE FUNCTION DATE_MDY
|
||||
(INDATE DECIMAL(8,0) )
|
||||
(INDATE DECIMAL(8, 0) )
|
||||
RETURNS DATE
|
||||
PARAMETER STYLE SQL
|
||||
LANGUAGE RPGLE
|
||||
@ -20,7 +20,7 @@ CREATE OR REPLACE FUNCTION DATE_MDY
|
||||
DROP FUNCTION DATE_YMD
|
||||
;
|
||||
CREATE OR REPLACE FUNCTION DATE_YMD
|
||||
(INDATE DECIMAL(8,0) )
|
||||
(INDATE DECIMAL(8, 0) )
|
||||
RETURNS DATE
|
||||
PARAMETER STYLE SQL
|
||||
LANGUAGE RPGLE
|
||||
@ -33,7 +33,7 @@ CREATE OR REPLACE FUNCTION DATE_YMD
|
||||
DROP FUNCTION DATE_CYMD
|
||||
;
|
||||
CREATE OR REPLACE FUNCTION DATE_CYMD
|
||||
(INDATE DECIMAL(8,0) )
|
||||
(INDATE DECIMAL(8, 0) )
|
||||
RETURNS DATE
|
||||
PARAMETER STYLE SQL
|
||||
LANGUAGE RPGLE
|
||||
|
||||
@ -1,207 +1,208 @@
|
||||
/title SQL UDFs to convert numeric to true dates
|
||||
//===============================================================
|
||||
// The DATE_SQL service program contains routines that are
|
||||
// registered as User Defined Functions to SQL and which
|
||||
// convert legacy numeric dates to true dates. This makes doing
|
||||
// date arithmetic in SQL much easier.
|
||||
//
|
||||
// For example, if DSTPT is a 6-digit date in YYMMDD format, in SQL
|
||||
// you can code:
|
||||
//
|
||||
// SELECT PNOPT FROM MVPSPRTP
|
||||
// WHERE DATE_YMD(DSTPT) >= CURDATE() - 9O DAYS
|
||||
//
|
||||
// On alder versions of the OS,you may need to cast character dates
|
||||
// to numeric before using.
|
||||
// For example, WHERE DECIMAL(DATE_YMD(DSTPT)) >= ...
|
||||
//
|
||||
// Function included are:
|
||||
// DATE_YMD Accepts numeric dates in YMD format, with
|
||||
// either 6 or 8 digits.
|
||||
// DATE_MDY Accepts numeric dates in MDY format, with
|
||||
// either 6 or 8 digits.
|
||||
// DATE_CYMD Accepts 7 digit numeric dates. If the 1st
|
||||
// digit is 0 then it is in the 1900s and if
|
||||
// it is 1 then it is the 2000s. These are
|
||||
// standard IBM seven byte dates.
|
||||
// ??????? Similar routines could be added to
|
||||
// accept other formats
|
||||
//
|
||||
// For YMD or MDY dates, it handles either 6 or 8 digits.
|
||||
// If the date passed is greater then 999999 then is it
|
||||
// assumed to already have the century.
|
||||
//
|
||||
// Invalid dates return a null value. This means the UDFs will
|
||||
// not crash, but be aware that your results may be skewed if
|
||||
// you have bad data. (Logic could be added to convert
|
||||
// "special" bad dates into some corporately acceptable value,
|
||||
// e.g., 999999 could be converted to 9999-12-31.)
|
||||
//
|
||||
// Originally coded late 1990s, before the Y2K cleanups. Since
|
||||
// tidied up and converted to free form..
|
||||
//
|
||||
// To Create
|
||||
// =========
|
||||
// 1) CRTRPGMOD MODULE(DATE_SQL) SRCFILE(DATE_UDF)
|
||||
// OPTION(*EVENTF) DBGVIEW(*SOURCE)
|
||||
// 2) CRTSRVPGM SRVPGM(DATE_SQL) EXPORT(*ALL)
|
||||
// TEXT('DATE_SQL Service Program')
|
||||
// 3) Run the CREATE_FNSQL statements to register to SQL
|
||||
//===============================================================
|
||||
**free
|
||||
/title SQL UDFs to convert numeric to true dates
|
||||
//===============================================================
|
||||
// The DATE_SQL service program contains routines that are
|
||||
// registered as User Defined Functions to SQL and which
|
||||
// convert legacy numeric dates to true dates. This makes doing
|
||||
// date arithmetic in SQL much easier.
|
||||
//
|
||||
// For example, if DSTPT is a 6-digit date in YYMMDD format, in SQL
|
||||
// you can code:
|
||||
//
|
||||
// SELECT PNOPT FROM MVPSPRTP
|
||||
// WHERE DATE_YMD(DSTPT) >= CURDATE() - 9O DAYS
|
||||
//
|
||||
// On alder versions of the OS,you may need to cast character dates
|
||||
// to numeric before using.
|
||||
// For example, WHERE DECIMAL(DATE_YMD(DSTPT)) >= ...
|
||||
//
|
||||
// Function included are:
|
||||
// DATE_YMD Accepts numeric dates in YMD format, with
|
||||
// either 6 or 8 digits.
|
||||
// DATE_MDY Accepts numeric dates in MDY format, with
|
||||
// either 6 or 8 digits.
|
||||
// DATE_CYMD Accepts 7 digit numeric dates. If the 1st
|
||||
// digit is 0 then it is in the 1900s and if
|
||||
// it is 1 then it is the 2000s. These are
|
||||
// standard IBM seven byte dates.
|
||||
// ??????? Similar routines could be added to
|
||||
// accept other formats
|
||||
//
|
||||
// For YMD or MDY dates, it handles either 6 or 8 digits.
|
||||
// If the date passed is greater then 999999 then is it
|
||||
// assumed to already have the century.
|
||||
//
|
||||
// Invalid dates return a null value. This means the UDFs will
|
||||
// not crash, but be aware that your results may be skewed if
|
||||
// you have bad data. (Logic could be added to convert
|
||||
// "special" bad dates into some corporately acceptable value,
|
||||
// e.g., 999999 could be converted to 9999-12-31.)
|
||||
//
|
||||
// Originally coded late 1990s, before the Y2K cleanups. Since
|
||||
// tidied up and converted to free form..
|
||||
//
|
||||
// To Create
|
||||
// =========
|
||||
// 1) CRTRPGMOD MODULE(DATE_SQL) SRCFILE(DATE_UDF)
|
||||
// OPTION(*EVENTF) DBGVIEW(*SOURCE)
|
||||
// 2) CRTSRVPGM SRVPGM(DATE_SQL) EXPORT(*ALL)
|
||||
// TEXT('DATE_SQL Service Program')
|
||||
// 3) Run the CREATE_FNSQL statements to register to SQL
|
||||
//===============================================================
|
||||
|
||||
H NoMain
|
||||
//=== Prototypes ================================================
|
||||
D Date_YMD pr
|
||||
D NumericDate 8p 0 const
|
||||
d RealDate d
|
||||
D Indicators 5i 0 dim(1)
|
||||
D RetInd 5i 0
|
||||
d SQLSTATE 5a
|
||||
d FuncName 517a varying
|
||||
d SpecificName 128a varying
|
||||
d ErrText 1000a varying
|
||||
Ctl-Opt NoMain;
|
||||
//=== Prototypes ================================================
|
||||
Dcl-PR Date_YMD;
|
||||
NumericDate Packed(8:0) const;
|
||||
RealDate Date;
|
||||
Indicators Int(5) dim(1);
|
||||
RetInd Int(5);
|
||||
SQLSTATE Char(5);
|
||||
FuncName Varchar(517);
|
||||
SpecificName Varchar(128);
|
||||
ErrText Varchar(1000);
|
||||
End-PR;
|
||||
|
||||
D Date_CYMD pr
|
||||
D NumericDate 8p 0 const
|
||||
d RealDate d
|
||||
D Indicators 5i 0 dim(1)
|
||||
D RetInd 5i 0
|
||||
d SQLSTATE 5a
|
||||
d FuncName 517a varying
|
||||
d SpecificName 128a varying
|
||||
d ErrText 1000a varying
|
||||
Dcl-PR Date_CYMD;
|
||||
NumericDate Packed(8:0) const;
|
||||
RealDate Date;
|
||||
Indicators Int(5) dim(1);
|
||||
RetInd Int(5);
|
||||
SQLSTATE Char(5);
|
||||
FuncName Varchar(517);
|
||||
SpecificName Varchar(128);
|
||||
ErrText Varchar(1000);
|
||||
End-PR;
|
||||
|
||||
D Date_MDY pr
|
||||
D NumericDate 8p 0 const
|
||||
d RealDate d
|
||||
D Indicators 5i 0 dim(1)
|
||||
D RetInd 5i 0
|
||||
d SQLSTATE 5a
|
||||
d FuncName 517a varying
|
||||
d SpecificName 128a varying
|
||||
d ErrText 1000a varying
|
||||
Dcl-PR Date_MDY;
|
||||
NumericDate Packed(8:0) const;
|
||||
RealDate Date;
|
||||
Indicators Int(5) dim(1);
|
||||
RetInd Int(5);
|
||||
SQLSTATE Char(5);
|
||||
FuncName Varchar(517);
|
||||
SpecificName Varchar(128);
|
||||
ErrText Varchar(1000);
|
||||
End-PR;
|
||||
|
||||
//===============================================================
|
||||
// DATE_YMD
|
||||
// ========
|
||||
// SQL User Defined Function (UDF) converts a 6 or 8 digit
|
||||
// numeric date in YMD format to a true date.
|
||||
//
|
||||
// Returns
|
||||
// =======
|
||||
// If input date is valid, then a true date.
|
||||
// If input date is invalid, returns null with warning 01H99.
|
||||
//===============================================================
|
||||
// DATE_YMD
|
||||
// ========
|
||||
// SQL User Defined Function (UDF) converts a 6 or 8 digit
|
||||
// numeric date in YMD format to a true date.
|
||||
//
|
||||
// Returns
|
||||
// =======
|
||||
// If input date is valid, then a true date.
|
||||
// If input date is invalid, returns null with warning 01H99.
|
||||
|
||||
p Date_YMD b export
|
||||
d Date_YMD pi
|
||||
d pDateIn 8p 0 const
|
||||
d pDateOut d
|
||||
d pIndicators 5i 0 dim(1)
|
||||
d pRetInd 5i 0
|
||||
d pSQLSTATE 5a
|
||||
d pFuncName 517a varying
|
||||
d pSpecificName 128a varying
|
||||
d pErrText 1000a varying
|
||||
Dcl-Proc Date_YMD export;
|
||||
Dcl-PI Date_YMD;
|
||||
pDateIn Packed(8:0) const;
|
||||
pDateOut Date;
|
||||
pIndicators Int(5) dim(1);
|
||||
pRetInd Int(5);
|
||||
pSQLSTATE Char(5);
|
||||
pFuncName Varchar(517);
|
||||
pSpecificNam Varchar(128);
|
||||
pErrText Varchar(1000);
|
||||
End-PI;
|
||||
|
||||
/FREE
|
||||
pRetInd = 0;
|
||||
pSQLSTATE = '00000';
|
||||
monitor;
|
||||
select;
|
||||
// === 8 digit dates, yyyymmdd =================================
|
||||
when pDateIn > 999999;
|
||||
pDateOut = %date(pDateIn: *ISO);
|
||||
// === 6 digit dates, yymmdd ===================================
|
||||
other;
|
||||
pDateOut = %date(pDateIn: *YMD);
|
||||
endsl;
|
||||
on-error;
|
||||
pRetInd = -1;
|
||||
pDateOut = %date('9999-01-03');
|
||||
pSQLSTATE = '01H99';
|
||||
pErrText = %char(pDateIn) + ' is not a (numeric) date';
|
||||
endmon;
|
||||
return;
|
||||
/END-FREE
|
||||
p Date_YMD e
|
||||
pRetInd = 0;
|
||||
pSQLSTATE = '00000';
|
||||
monitor;
|
||||
select;
|
||||
// === 8 digit dates, yyyymmdd =================================
|
||||
when pDateIn > 999999;
|
||||
pDateOut = %date(pDateIn: *ISO);
|
||||
// === 6 digit dates, yymmdd ===================================
|
||||
other;
|
||||
pDateOut = %date(pDateIn: *YMD);
|
||||
endsl;
|
||||
on-error;
|
||||
pRetInd = -1;
|
||||
pDateOut = %date('9999-01-03');
|
||||
pSQLSTATE = '01H99';
|
||||
pErrText = %char(pDateIn) + ' is not a (numeric) date';
|
||||
endmon;
|
||||
return;
|
||||
End-Proc;
|
||||
|
||||
//===============================================================
|
||||
// DATE_CYMD
|
||||
// =========
|
||||
// SQL User Defined Function (UDF) converts a 7 digit
|
||||
// numeric date in CYMD format to a true date.
|
||||
//
|
||||
// Returns
|
||||
// =======
|
||||
// If input date is valid, then a true date.
|
||||
// If input date is invalid, returns null with warning 01H99.
|
||||
//===============================================================
|
||||
// DATE_CYMD
|
||||
// =========
|
||||
// SQL User Defined Function (UDF) converts a 7 digit
|
||||
// numeric date in CYMD format to a true date.
|
||||
//
|
||||
// Returns
|
||||
// =======
|
||||
// If input date is valid, then a true date.
|
||||
// If input date is invalid, returns null with warning 01H99.
|
||||
|
||||
p Date_CYMD b export
|
||||
d Date_CYMD pi
|
||||
d pDateIn 8p 0 const
|
||||
d pDateOut d
|
||||
d pIndicators 5i 0 dim(1)
|
||||
d pRetInd 5i 0
|
||||
d pSQLSTATE 5a
|
||||
d pFuncName 517a varying
|
||||
d pSpecificName 128a varying
|
||||
d pErrText 1000a varying
|
||||
Dcl-Proc Date_CYMD export;
|
||||
Dcl-PI Date_CYMD;
|
||||
pDateIn Packed(8:0) const;
|
||||
pDateOut Date;
|
||||
pIndicators Int(5) dim(1);
|
||||
pRetInd Int(5);
|
||||
pSQLSTATE Char(5);
|
||||
pFuncName Varchar(517);
|
||||
pSpecificNam Varchar(128);
|
||||
pErrText Varchar(1000);
|
||||
End-PI;
|
||||
|
||||
/FREE
|
||||
pRetInd = 0;
|
||||
pSQLSTATE = '00000';
|
||||
monitor;
|
||||
pDateOut = %date(pDateIn: *CYMD);
|
||||
on-error;
|
||||
pRetInd = -1;
|
||||
pDateOut = %date('9999-01-01');
|
||||
pSQLSTATE = '01H99';
|
||||
pErrText = %char(pDateIn) + ' is not a (numeric) date';
|
||||
endmon;
|
||||
return;
|
||||
/END-FREE
|
||||
p Date_CYMD e
|
||||
pRetInd = 0;
|
||||
pSQLSTATE = '00000';
|
||||
monitor;
|
||||
pDateOut = %date(pDateIn: *CYMD);
|
||||
on-error;
|
||||
pRetInd = -1;
|
||||
pDateOut = %date('9999-01-01');
|
||||
pSQLSTATE = '01H99';
|
||||
pErrText = %char(pDateIn) + ' is not a (numeric) date';
|
||||
endmon;
|
||||
return;
|
||||
End-Proc;
|
||||
|
||||
//===============================================================
|
||||
// DATE_MDY
|
||||
// ========
|
||||
// SQL User Defined Function (UDF) converts a 6 or 8 digit
|
||||
// numeric date in MDY format to a true date.
|
||||
//
|
||||
// Returns
|
||||
// =======
|
||||
// If input date is valid, then a true date.
|
||||
// If input date is invalid, returns null with warning 01H99.
|
||||
//===============================================================
|
||||
// DATE_MDY
|
||||
// ========
|
||||
// SQL User Defined Function (UDF) converts a 6 or 8 digit
|
||||
// numeric date in MDY format to a true date.
|
||||
//
|
||||
// Returns
|
||||
// =======
|
||||
// If input date is valid, then a true date.
|
||||
// If input date is invalid, returns null with warning 01H99.
|
||||
|
||||
p Date_MDY b export
|
||||
d Date_MDY pi
|
||||
d pDateIn 8p 0 const
|
||||
d pDateOut d
|
||||
d pIndicators 5i 0 dim(1)
|
||||
d pRetInd 5i 0
|
||||
d pSQLSTATE 5a
|
||||
d pFuncName 517a varying
|
||||
d pSpecificName 128a varying
|
||||
d pErrText 1000a varying
|
||||
Dcl-Proc Date_MDY export;
|
||||
Dcl-PI Date_MDY;
|
||||
pDateIn Packed(8:0) const;
|
||||
pDateOut Date;
|
||||
pIndicators Int(5) dim(1);
|
||||
pRetInd Int(5);
|
||||
pSQLSTATE Char(5);
|
||||
pFuncName Varchar(517);
|
||||
pSpecificNam Varchar(128);
|
||||
pErrText Varchar(1000);
|
||||
End-PI;
|
||||
|
||||
/FREE
|
||||
pRetInd = 0;
|
||||
pSQLSTATE = '00000';
|
||||
monitor;
|
||||
select;
|
||||
// === 8 digit dates, mmddyyyy =================================
|
||||
when pDateIn > 999999;
|
||||
pDateOut = %date(pDateIn: *USA);
|
||||
// === 6 digit dates, mmddyy ===================================
|
||||
other;
|
||||
pDateOut = %date(pDateIn: *MDY);
|
||||
endsl;
|
||||
on-error;
|
||||
pRetInd = -1;
|
||||
pDateOut = %date('9999-01-02');
|
||||
pSQLSTATE = '01H99';
|
||||
pErrText = %char(pDateIn) + ' is not a (numeric) date';
|
||||
endmon;
|
||||
return;
|
||||
/END-FREE
|
||||
p Date_MDY e
|
||||
pRetInd = 0;
|
||||
pSQLSTATE = '00000';
|
||||
monitor;
|
||||
select;
|
||||
// === 8 digit dates, mmddyyyy =================================
|
||||
when pDateIn > 999999;
|
||||
pDateOut = %date(pDateIn: *USA);
|
||||
// === 6 digit dates, mmddyy ===================================
|
||||
other;
|
||||
pDateOut = %date(pDateIn: *MDY);
|
||||
endsl;
|
||||
on-error;
|
||||
pRetInd = -1;
|
||||
pDateOut = %date('9999-01-02');
|
||||
pSQLSTATE = '01H99';
|
||||
pErrText = %char(pDateIn) + ' is not a (numeric) date';
|
||||
endmon;
|
||||
return;
|
||||
End-Proc;
|
||||
|
||||
207
DATE_UDF/DATE_SQLFX.RPGLE
Normal file
207
DATE_UDF/DATE_SQLFX.RPGLE
Normal file
@ -0,0 +1,207 @@
|
||||
/title SQL UDFs to convert numeric to true dates
|
||||
//===============================================================
|
||||
// The DATE_SQL service program contains routines that are
|
||||
// registered as User Defined Functions to SQL and which
|
||||
// convert legacy numeric dates to true dates. This makes doing
|
||||
// date arithmetic in SQL much easier.
|
||||
//
|
||||
// For example, if DSTPT is a 6-digit date in YYMMDD format, in SQL
|
||||
// you can code:
|
||||
//
|
||||
// SELECT PNOPT FROM MVPSPRTP
|
||||
// WHERE DATE_YMD(DSTPT) >= CURDATE() - 9O DAYS
|
||||
//
|
||||
// On alder versions of the OS,you may need to cast character dates
|
||||
// to numeric before using.
|
||||
// For example, WHERE DECIMAL(DATE_YMD(DSTPT)) >= ...
|
||||
//
|
||||
// Function included are:
|
||||
// DATE_YMD Accepts numeric dates in YMD format, with
|
||||
// either 6 or 8 digits.
|
||||
// DATE_MDY Accepts numeric dates in MDY format, with
|
||||
// either 6 or 8 digits.
|
||||
// DATE_CYMD Accepts 7 digit numeric dates. If the 1st
|
||||
// digit is 0 then it is in the 1900s and if
|
||||
// it is 1 then it is the 2000s. These are
|
||||
// standard IBM seven byte dates.
|
||||
// ??????? Similar routines could be added to
|
||||
// accept other formats
|
||||
//
|
||||
// For YMD or MDY dates, it handles either 6 or 8 digits.
|
||||
// If the date passed is greater then 999999 then is it
|
||||
// assumed to already have the century.
|
||||
//
|
||||
// Invalid dates return a null value. This means the UDFs will
|
||||
// not crash, but be aware that your results may be skewed if
|
||||
// you have bad data. (Logic could be added to convert
|
||||
// "special" bad dates into some corporately acceptable value,
|
||||
// e.g., 999999 could be converted to 9999-12-31.)
|
||||
//
|
||||
// Originally coded late 1990s, before the Y2K cleanups. Since
|
||||
// tidied up and converted to free form..
|
||||
//
|
||||
// To Create
|
||||
// =========
|
||||
// 1) CRTRPGMOD MODULE(DATE_SQL) SRCFILE(DATE_UDF)
|
||||
// OPTION(*EVENTF) DBGVIEW(*SOURCE)
|
||||
// 2) CRTSRVPGM SRVPGM(DATE_SQL) EXPORT(*ALL)
|
||||
// TEXT('DATE_SQL Service Program')
|
||||
// 3) Run the CREATE_FNSQL statements to register to SQL
|
||||
//===============================================================
|
||||
|
||||
H NoMain
|
||||
//=== Prototypes ================================================
|
||||
D Date_YMD pr
|
||||
D NumericDate 8p 0 const
|
||||
d RealDate d
|
||||
D Indicators 5i 0 dim(1)
|
||||
D RetInd 5i 0
|
||||
d SQLSTATE 5a
|
||||
d FuncName 517a varying
|
||||
d SpecificName 128a varying
|
||||
d ErrText 1000a varying
|
||||
|
||||
D Date_CYMD pr
|
||||
D NumericDate 8p 0 const
|
||||
d RealDate d
|
||||
D Indicators 5i 0 dim(1)
|
||||
D RetInd 5i 0
|
||||
d SQLSTATE 5a
|
||||
d FuncName 517a varying
|
||||
d SpecificName 128a varying
|
||||
d ErrText 1000a varying
|
||||
|
||||
D Date_MDY pr
|
||||
D NumericDate 8p 0 const
|
||||
d RealDate d
|
||||
D Indicators 5i 0 dim(1)
|
||||
D RetInd 5i 0
|
||||
d SQLSTATE 5a
|
||||
d FuncName 517a varying
|
||||
d SpecificName 128a varying
|
||||
d ErrText 1000a varying
|
||||
|
||||
//===============================================================
|
||||
// DATE_YMD
|
||||
// ========
|
||||
// SQL User Defined Function (UDF) converts a 6 or 8 digit
|
||||
// numeric date in YMD format to a true date.
|
||||
//
|
||||
// Returns
|
||||
// =======
|
||||
// If input date is valid, then a true date.
|
||||
// If input date is invalid, returns null with warning 01H99.
|
||||
|
||||
p Date_YMD b export
|
||||
d Date_YMD pi
|
||||
d pDateIn 8p 0 const
|
||||
d pDateOut d
|
||||
d pIndicators 5i 0 dim(1)
|
||||
d pRetInd 5i 0
|
||||
d pSQLSTATE 5a
|
||||
d pFuncName 517a varying
|
||||
d pSpecificName 128a varying
|
||||
d pErrText 1000a varying
|
||||
|
||||
/FREE
|
||||
pRetInd = 0;
|
||||
pSQLSTATE = '00000';
|
||||
monitor;
|
||||
select;
|
||||
// === 8 digit dates, yyyymmdd =================================
|
||||
when pDateIn > 999999;
|
||||
pDateOut = %date(pDateIn: *ISO);
|
||||
// === 6 digit dates, yymmdd ===================================
|
||||
other;
|
||||
pDateOut = %date(pDateIn: *YMD);
|
||||
endsl;
|
||||
on-error;
|
||||
pRetInd = -1;
|
||||
pDateOut = %date('9999-01-03');
|
||||
pSQLSTATE = '01H99';
|
||||
pErrText = %char(pDateIn) + ' is not a (numeric) date';
|
||||
endmon;
|
||||
return;
|
||||
/END-FREE
|
||||
p Date_YMD e
|
||||
|
||||
//===============================================================
|
||||
// DATE_CYMD
|
||||
// =========
|
||||
// SQL User Defined Function (UDF) converts a 7 digit
|
||||
// numeric date in CYMD format to a true date.
|
||||
//
|
||||
// Returns
|
||||
// =======
|
||||
// If input date is valid, then a true date.
|
||||
// If input date is invalid, returns null with warning 01H99.
|
||||
|
||||
p Date_CYMD b export
|
||||
d Date_CYMD pi
|
||||
d pDateIn 8p 0 const
|
||||
d pDateOut d
|
||||
d pIndicators 5i 0 dim(1)
|
||||
d pRetInd 5i 0
|
||||
d pSQLSTATE 5a
|
||||
d pFuncName 517a varying
|
||||
d pSpecificName 128a varying
|
||||
d pErrText 1000a varying
|
||||
|
||||
/FREE
|
||||
pRetInd = 0;
|
||||
pSQLSTATE = '00000';
|
||||
monitor;
|
||||
pDateOut = %date(pDateIn: *CYMD);
|
||||
on-error;
|
||||
pRetInd = -1;
|
||||
pDateOut = %date('9999-01-01');
|
||||
pSQLSTATE = '01H99';
|
||||
pErrText = %char(pDateIn) + ' is not a (numeric) date';
|
||||
endmon;
|
||||
return;
|
||||
/END-FREE
|
||||
p Date_CYMD e
|
||||
|
||||
//===============================================================
|
||||
// DATE_MDY
|
||||
// ========
|
||||
// SQL User Defined Function (UDF) converts a 6 or 8 digit
|
||||
// numeric date in MDY format to a true date.
|
||||
//
|
||||
// Returns
|
||||
// =======
|
||||
// If input date is valid, then a true date.
|
||||
// If input date is invalid, returns null with warning 01H99.
|
||||
|
||||
p Date_MDY b export
|
||||
d Date_MDY pi
|
||||
d pDateIn 8p 0 const
|
||||
d pDateOut d
|
||||
d pIndicators 5i 0 dim(1)
|
||||
d pRetInd 5i 0
|
||||
d pSQLSTATE 5a
|
||||
d pFuncName 517a varying
|
||||
d pSpecificName 128a varying
|
||||
d pErrText 1000a varying
|
||||
|
||||
/FREE
|
||||
pRetInd = 0;
|
||||
pSQLSTATE = '00000';
|
||||
monitor;
|
||||
select;
|
||||
// === 8 digit dates, mmddyyyy =================================
|
||||
when pDateIn > 999999;
|
||||
pDateOut = %date(pDateIn: *USA);
|
||||
// === 6 digit dates, mmddyy ===================================
|
||||
other;
|
||||
pDateOut = %date(pDateIn: *MDY);
|
||||
endsl;
|
||||
on-error;
|
||||
pRetInd = -1;
|
||||
pDateOut = %date('9999-01-02');
|
||||
pSQLSTATE = '01H99';
|
||||
pErrText = %char(pDateIn) + ' is not a (numeric) date';
|
||||
endmon;
|
||||
return;
|
||||
/END-FREE
|
||||
p Date_MDY e
|
||||
@ -10,7 +10,7 @@ Legacy databases on the IBM i stored dates in numeric (or character) fields. Doi
|
||||
|
||||
## Development
|
||||
|
||||
What these functions do can also be done, with some work, directly in SQL. And I'm aware there are other open source date UDFs avaliable, e.g. [iDate](https://www.think400.dk/downloads.htm).
|
||||
What these functions do can also be done, *with some work*, directly in SQL. And I'm aware there are other open source date UDFs avaliable, e.g. [iDate](https://www.think400.dk/downloads.htm).
|
||||
|
||||
However...
|
||||
|
||||
@ -41,15 +41,15 @@ An invalid input value will return a null value and give a 01H99 SQLSTATE warnin
|
||||
|
||||
## DATE_SQL
|
||||
|
||||
The RPG code for the DATE_SQL service program, which contains the functions. It is free format but the D-Specs are still fixed, and it can be edited in SEU. (When I originally wrote it, it was in fixed form RPGIV.)
|
||||
The RPG code for the DATE_SQL service program, which contains the functions.
|
||||
|
||||
## DATE_SQLFR
|
||||
## DATE_SQLFX
|
||||
|
||||
This is DATE_SQL but converted to totally free form. I converted it using [RpgFreeWeb](https://github.com/worksofbarry/rpgfreeweb), which does a nice job.
|
||||
This is DATE_SQL with the D-Specs in fixed form, as a convenience for any who might still be on older releases.
|
||||
|
||||
## DATECRTFN
|
||||
|
||||
This is SQL "Create Function" code that tells SQL where the functions are.
|
||||
This is SQL "Create Function" code that tells SQL where the functions are. Use the RUNSQLSTM command or iACS Run SQL Scripts.
|
||||
|
||||
## TEST_CYMD/TEST_MDY/TEST_YMD
|
||||
|
||||
|
||||
@ -40,4 +40,4 @@ This program is called from GRP to establish each group job. The command it runs
|
||||
|
||||
## GRP_ATN
|
||||
|
||||
This is called when the Attn key is pressed. **Shift+Esc is the Attn keys in most 5250 emulators.** It pops up a very functional but effective IBM menu to pick another group job.
|
||||
This is called when the Attn key is pressed. **Shift+Esc is the Attn keys in most 5250 emulators.** It pops up a very functional but effective IBM menu to pick another group job. You can add your own menu to make this more friendly.
|
||||
|
||||
@ -10,8 +10,10 @@ So far I have not found a decent manual or turorial. If you know of any please p
|
||||
|
||||
My primary approach was trial and error, with help
|
||||
from these articles on IT Jungle:
|
||||
[Ted HolT Article 1](https://www.itjungle.com/2017/06/12/guru-error-handling-sql-pl-part-1/) and
|
||||
[Ted Holt Article 2](https://www.itjungle.com/2017/10/16/guru-error-handling-sql-pl-part-2/)
|
||||
[Ted Holt Article 1](https://www.itjungle.com/2016/09/27/fhg092716-story02/) and
|
||||
[Ted Holt Article 2](https://www.itjungle.com/2016/10/18/fhg101816-story03/) and
|
||||
[Ted HolT Article 3](https://www.itjungle.com/2017/06/12/guru-error-handling-sql-pl-part-1/) and
|
||||
[Ted Holt Article 4](https://www.itjungle.com/2017/10/16/guru-error-handling-sql-pl-part-2/)
|
||||
and browsing [Scott Forstie Gists on Github](https://gist.github.com/forstie
|
||||
)
|
||||
|
||||
@ -41,7 +43,7 @@ You need to supply library and name. The type will default to `*PGM` and the dep
|
||||
|
||||
### Library list
|
||||
|
||||
Since many objects will have a library of `*LIBL`, that is what will get passed to DSPPGMREF for expansion. So you need to have your library list contain all libraries whose objects you want expanded.
|
||||
Since many objects will have a library of `*LIBL`, that is what will get passed to DSPPGMREF for expansion. So you need to make sure your library list contain all libraries whose objects you want expanded.
|
||||
|
||||
### DSPPGMREF Failure
|
||||
|
||||
|
||||
@ -20,8 +20,8 @@
|
||||
ctl-opt option(*srcstmt: *nodebugio)
|
||||
bnddir('SQL_BND')
|
||||
actgrp(*new) main(Main);
|
||||
/COPY copy_mbrs,prt_p
|
||||
/COPY copy_mbrs,srv_sql_p
|
||||
/COPY ../Copy_Mbrs/PRT_P.RPGLE
|
||||
/COPY ../Copy_Mbrs/SRV_SQL_P.RPGLE
|
||||
|
||||
dcl-proc Main;
|
||||
dcl-pi Main;
|
||||
@ -205,4 +205,4 @@ dcl-proc Main;
|
||||
endif;
|
||||
endsr;
|
||||
|
||||
end-proc main;
|
||||
end-proc Main;
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
**free
|
||||
// === Test program to exercise the PRT program =====================
|
||||
ctl-opt option(*srcstmt: *nodebugio) actgrp(*new) main(Main);
|
||||
/COPY copy_mbrs,prt_p
|
||||
/COPY ../Copy_Mbrs/PRT_P.RPGLE
|
||||
dcl-proc Main;
|
||||
dcl-pi Main;
|
||||
// pi_head char(132);
|
||||
@ -217,5 +217,4 @@ dcl-proc Main;
|
||||
|
||||
*inlr = *on;
|
||||
|
||||
|
||||
end-proc;
|
||||
|
||||
43
README.md
43
README.md
@ -1,15 +1,45 @@
|
||||
# RPGLE free format, SQL and CLP Code for the IBM i
|
||||
# RPGLE free format, SQL & CLP Code for the IBM i
|
||||
|
||||
More developers are learning about the **IBM i** as a wonderful business platform. (It was formerly known as the **AS/400**.)
|
||||
|
||||
This repository contains *working* example code, using RPGLE free-format, enbedded SQL and CLP for the IBM i.
|
||||
|
||||
My intent is to provide real programs that help you learn and/or improve your current understanding. Explore and adapt the code to your needs. Some of the code may be of use "as is" but no guarantee is provided.
|
||||
**This repository contains *working* example code, using RPGLE free-format, enbedded SQL and CLP for the IBM i. All RPG code here is totally free form.**.
|
||||
|
||||
**Each folder has its own ReadMe with additional infomation/documentation.**
|
||||
|
||||
My intent is to provide real programs that help you learn and/or improve your current understanding. Explore and adapt the code to your needs. Some of the code may be of use "as is" but no guarantee is provided.
|
||||
|
||||
Feel free to provide comments and feedback as issues.
|
||||
|
||||
# Source Control Philosophy
|
||||
|
||||
This code in this repository is based on having source in the file system (IFS) rather than the traditional approach of members in a PF-SRC file.
|
||||
|
||||
For these personal projects I use the free IBM i [PUB400.COM](https://pub400.com/).
|
||||
|
||||
I edit and compile using [VS Code](https://code.visualstudio.com/) with the ["Code for IBM i"](https://codefori.github.io/docs/#/) extension. My source is/was in PF-SRC members and for backup I created a SAVF file of my PF-SRC files and downloaded it to my PC. But I didn't do it regularly.
|
||||
|
||||
Now that ["Code for IBM i"](https://codefori.github.io/docs/#/) supports local development on a PC and will push code to the IFS, I am using Github as a permanent repository. Doing editing on my PC and pushing changes to Github and the IFS is easier than creating a save file and downloading it.
|
||||
|
||||
This means that on the IBM i, code is in directories in the IFS instead of being in PF-SRC file members.
|
||||
|
||||
This is my setup:
|
||||
|
||||
- Github contains my personal "production" source.
|
||||
- My PC has Git installed and the PC files are where I make changes.
|
||||
- I deploy to the IFS to compile with ["Code for IBM i"](https://codefori.github.io/docs/#/).
|
||||
|
||||
My PC has a directory structure like this:
|
||||
|
||||
| Directory shown in VS CODE |Directory shown in File Explorer |
|
||||
|----------------------------------------|---------------------------------------|
|
||||
|  |  |
|
||||
|
||||
The IFS directory after deployment looks like this:
|
||||
|
||||

|
||||
|
||||
The primary difference from moving away from PF-SRC file members is that COPY and INCLUDE statements must now reference an IFS file. I do not want to hard code directory names so I am using relative addressing, such as
|
||||
|
||||
``/INCLUDE ../Copy_Mbrs/SRV_MSG_P.RPGLE``.
|
||||
|
||||
## Copy_Mbrs
|
||||
|
||||
Code to be copied into other programs.
|
||||
@ -74,3 +104,4 @@ Developer Utilities.
|
||||
QRY - Qry (List) Contents of a file
|
||||
|
||||
RC - Display File Record count
|
||||
|
||||
|
||||
@ -1,67 +1,59 @@
|
||||
*==============================================================
|
||||
* Program that locks a record and then waits for input from
|
||||
* the operator.
|
||||
*
|
||||
* Call this program in two different sessions to see the effect.
|
||||
* Second program will typically get a error:
|
||||
* 'Unable to allocate a record in file' (RNX1218)
|
||||
* and the end user typically choses an unhelpful response.
|
||||
*==============================================================
|
||||
* Note: This is a poor technique because the record remains
|
||||
* locked to all other users until the transaction is
|
||||
* completed, which may be in a few seconds or after lunch.
|
||||
*
|
||||
*Note: Pgm reads by RRN for convenience. This is not a good
|
||||
* idea is a production program.
|
||||
*
|
||||
*Note: DSPLY is use to simulate a display file interaction
|
||||
* with the user.
|
||||
*
|
||||
*Note: QIWS/QCUSTCDT: believed to be on virtually all systems.
|
||||
*==============================================================
|
||||
**free
|
||||
// ==============================================================
|
||||
// Program that locks a record and then waits for input from
|
||||
// the operator.
|
||||
//
|
||||
// Call this program in two different sessions to see the effect.
|
||||
// Second program will typically get a error:
|
||||
// 'Unable to allocate a record in file' (RNX1218)
|
||||
// and the end user typically choses an unhelpful response.
|
||||
// ==============================================================
|
||||
// Note: This is a poor technique because the record remains
|
||||
// locked to all other users until the transaction is
|
||||
// completed, which may be in a few seconds or after lunch.
|
||||
//
|
||||
// Note: Pgm reads by RRN for convenience. This is not a good
|
||||
// idea is a production program.
|
||||
//
|
||||
// Note: DSPLY is use to simulate a display file interaction
|
||||
// with the user.
|
||||
//
|
||||
// Note: QIWS/QCUSTCDT: believed to be on virtually all systems.
|
||||
// ==============================================================
|
||||
|
||||
H DEBUG(*YES) OPTION(*NODEBUGIO:*SRCSTMT:*NOUNREF)
|
||||
H DFTACTGRP(*NO) ACTGRP(*NEW)
|
||||
|
||||
FQCUSTCDT UF E DISK USROPN EXTDESC('QIWS/QCUSTCDT')
|
||||
F RECNO(RRN)
|
||||
F* INFSR(*PSSR)
|
||||
|
||||
D QCmdexc PR EXTPGM('QCMDEXC')
|
||||
D CMD 512A
|
||||
D lgth 15P 5 const
|
||||
|
||||
D RRN s 10p 0 inz(10)
|
||||
D reply S 1A inz('*')
|
||||
D Cmd S 512A
|
||||
|
||||
/free
|
||||
*inlr = *on;
|
||||
|
||||
// Set update file to a short wait time. Otherwise the file or
|
||||
// system default wait time applies.
|
||||
cmd = ' OVRDBF FILE(QCUSTCDT) TOFILE(QIWS/QCUSTCDT) WAITRCD(1)';
|
||||
QCMDEXC(cmd:512);
|
||||
open QCUSTCDT;
|
||||
|
||||
chain RRN QCUSTCDT;
|
||||
|
||||
if %found(QCUSTCDT);
|
||||
// Logic to update the record would be here.
|
||||
dsply 'Read for update' ' ' reply;
|
||||
else;
|
||||
// Logic for record not found would be here
|
||||
dsply 'Record not found' ' ' reply;
|
||||
endif;
|
||||
|
||||
// === End of Program =========================================
|
||||
// Close file before returning
|
||||
close QCUSTCDT;
|
||||
return;
|
||||
|
||||
// Often found in old programs. Uncomment INFSR(*PSSR) in the
|
||||
// F-SPEC to make this active.
|
||||
BEGSR *PSSR;
|
||||
dsply 'In the *PSSR' ' ' reply;
|
||||
dump(a);
|
||||
ENDSR '*CANCL';
|
||||
Ctl-Opt DEBUG(*YES) OPTION(*NODEBUGIO:*SRCSTMT:*NOUNREF);
|
||||
Ctl-Opt DFTACTGRP(*NO) ACTGRP(*NEW);
|
||||
Dcl-F QCUSTCDT Usage(*Update:*Delete:*Output) USROPN EXTDESC('QIWS/QCUSTCDT') RECNO(RRN)
|
||||
// INFSR(*PSSR)
|
||||
;
|
||||
Dcl-PR QCmdexc EXTPGM('QCMDEXC');
|
||||
Cmd Char(512);
|
||||
lgth Packed(15:5) CONST;
|
||||
End-PR;
|
||||
Dcl-S RRN Packed(10:0) INZ(10);
|
||||
Dcl-S reply Char(1) INZ('*');
|
||||
Dcl-S Cmd Char(512);
|
||||
*inlr = *on;
|
||||
// Set update file to a short wait time. Otherwise the file or
|
||||
// system default wait time applies.
|
||||
Cmd = ' OVRDBF FILE(QCUSTCDT) TOFILE(QIWS/QCUSTCDT) WAITRCD(1)';
|
||||
QCmdexc(Cmd:512);
|
||||
open QCUSTCDT;
|
||||
chain RRN QCUSTCDT;
|
||||
if %found(QCUSTCDT);
|
||||
// Logic to update the record would be here.
|
||||
dsply 'Read for update' ' ' reply;
|
||||
else;
|
||||
// Logic for record not found would be here
|
||||
dsply 'Record not found' ' ' reply;
|
||||
endif;
|
||||
// === End of Program =========================================
|
||||
// Close file before returning
|
||||
close QCUSTCDT;
|
||||
return;
|
||||
// Often found in old programs. Uncomment INFSR(*PSSR) in the
|
||||
// F-SPEC to make this active.
|
||||
BEGSR *PSSR;
|
||||
dsply 'In the *PSSR' ' ' reply;
|
||||
dump(a);
|
||||
ENDSR '*CANCL';
|
||||
|
||||
@ -1,93 +1,89 @@
|
||||
*==============================================================
|
||||
* Program that locks a record and then waits for input from
|
||||
* the operator.
|
||||
*
|
||||
* Call this program in two different sessions to see the effect.
|
||||
*==============================================================
|
||||
* - Locking the record first is a poor technique because
|
||||
* the record remains locked to all other users until the
|
||||
* transaction is completed, which may be in a few seconds or
|
||||
* after lunch.
|
||||
* It is used here to demonstate the RCDLCKDSP processing.
|
||||
*==============================================================
|
||||
* - Pgm reads by RRN for convenience. This is generally not a
|
||||
* good idea is a production program.
|
||||
*
|
||||
*- DSPLY is use to simulate a display file interaction with
|
||||
* the user. Not normally done in production.
|
||||
*
|
||||
* - QIWS/QCUSTCDT: believed to be on virtually all systems.
|
||||
*==============================================================
|
||||
**free
|
||||
// ==============================================================
|
||||
// Program that locks a record and then waits for input from
|
||||
// the operator.
|
||||
//
|
||||
// Call this program in two different sessions to see the effect.
|
||||
// ==============================================================
|
||||
// - Locking the record first is a poor technique because
|
||||
// the record remains locked to all other users until the
|
||||
// transaction is completed, which may be in a few seconds or
|
||||
// after lunch.
|
||||
// It is used here to demonstate the RCDLCKDSP processing.
|
||||
// ==============================================================
|
||||
// - Pgm reads by RRN for convenience. This is generally not a
|
||||
// good idea is a production program.
|
||||
//
|
||||
// - DSPLY is use to simulate a display file interaction with
|
||||
// the user. Not normally done in production.
|
||||
//
|
||||
// - QIWS/QCUSTCDT: believed to be on virtually all systems.
|
||||
// ==============================================================
|
||||
|
||||
H DEBUG(*YES) OPTION(*NODEBUGIO:*SRCSTMT:*NOUNREF)
|
||||
H DFTACTGRP(*NO) ACTGRP(*NEW)
|
||||
Ctl-Opt DEBUG(*YES) OPTION(*NODEBUGIO:*SRCSTMT:*NOUNREF);
|
||||
Ctl-Opt DFTACTGRP(*NO) ACTGRP(*NEW);
|
||||
|
||||
FQCUSTCDT UF E DISK USROPN EXTDESC('QIWS/QCUSTCDT')
|
||||
F RECNO(RRN)
|
||||
F* INFSR(*PSSR)
|
||||
Dcl-F QCUSTCDT Usage(*Update:*Delete:*Output)
|
||||
USROPN EXTDESC('QIWS/QCUSTCDT') RECNO(RRN)
|
||||
// INFSR(*PSSR)
|
||||
;
|
||||
|
||||
D RCDLCKDSP PR EXTPGM('RCDLCKDSP')
|
||||
D poReply 1A
|
||||
D piPSDS *
|
||||
Dcl-PR RCDLCKDSP EXTPGM('RCDLCKDSP');
|
||||
poReply Char(1);
|
||||
piPSDS Pointer;
|
||||
End-PR;
|
||||
Dcl-PR QCmdexc EXTPGM('QCMDEXC');
|
||||
Cmd Char(512);
|
||||
lgth Packed(15:5) CONST;
|
||||
End-PR;
|
||||
Dcl-S RRN Packed(10:0) INZ(10);
|
||||
Dcl-S reply Char(1) INZ('*');
|
||||
Dcl-S Cmd Char(512);
|
||||
Dcl-DS myPSDS PSDS;
|
||||
End-DS;
|
||||
Dcl-S myPSDS_ptr Pointer INZ(%ADDR(myPSDS));
|
||||
*inlr = *on;
|
||||
// Set update file to a short wait time. Otherwise the file or
|
||||
// system default wait time applies.
|
||||
Cmd = ' OVRDBF FILE(QCUSTCDT) TOFILE(QIWS/QCUSTCDT) WAITRCD(1)';
|
||||
QCmdexc(Cmd:512);
|
||||
open QCUSTCDT;
|
||||
dou not %error;
|
||||
chain(e) RRN QCUSTCDT;
|
||||
if %error;
|
||||
RCDLCKDSP(reply: myPSDS_ptr);
|
||||
if reply = 'R';
|
||||
iter;
|
||||
endif;
|
||||
if reply = 'C';
|
||||
exsr Prog_Cancelled;
|
||||
endif;
|
||||
if reply = 'D';
|
||||
dump(a);
|
||||
exsr Prog_Cancelled;
|
||||
endif;
|
||||
endif;
|
||||
enddo;
|
||||
if %found(QCUSTCDT);
|
||||
// Logic to update the record would be here.
|
||||
dsply 'Read for update' ' ' reply;
|
||||
else;
|
||||
// Logic for record not found would be here
|
||||
dsply 'Record not found' ' ' reply;
|
||||
endif;
|
||||
// === End of Program =========================================
|
||||
// Close file before returning
|
||||
close QCUSTCDT;
|
||||
return;
|
||||
begsr Prog_Cancelled;
|
||||
close QCUSTCDT;
|
||||
// Put graceful ending logic & notification to user here
|
||||
return;
|
||||
endsr;
|
||||
|
||||
D QCmdexc PR EXTPGM('QCMDEXC')
|
||||
D CMD 512A
|
||||
D lgth 15P 5 const
|
||||
|
||||
D RRN s 10p 0 inz(10)
|
||||
D reply S 1A inz('*')
|
||||
D Cmd S 512A
|
||||
|
||||
D myPSDS SDS
|
||||
D myPSDS_ptr S * inz(%addr(myPSDS))
|
||||
|
||||
/free
|
||||
*inlr = *on;
|
||||
// Set update file to a short wait time. Otherwise the file or
|
||||
// system default wait time applies.
|
||||
cmd = ' OVRDBF FILE(QCUSTCDT) TOFILE(QIWS/QCUSTCDT) WAITRCD(1)';
|
||||
QCMDEXC(cmd:512);
|
||||
open QCUSTCDT;
|
||||
|
||||
dou not %error;
|
||||
chain(e) RRN QCUSTCDT;
|
||||
if %error;
|
||||
RCDLCKDSP(reply: myPSDS_ptr);
|
||||
if reply = 'R';
|
||||
iter;
|
||||
endif;
|
||||
if reply = 'C';
|
||||
exsr Prog_Cancelled;
|
||||
endif;
|
||||
if reply = 'D';
|
||||
dump(a);
|
||||
exsr Prog_Cancelled;
|
||||
endif;
|
||||
endif;
|
||||
enddo;
|
||||
|
||||
if %found(QCUSTCDT);
|
||||
// Logic to update the record would be here.
|
||||
dsply 'Read for update' ' ' reply;
|
||||
else;
|
||||
// Logic for record not found would be here
|
||||
dsply 'Record not found' ' ' reply;
|
||||
endif;
|
||||
|
||||
// === End of Program =========================================
|
||||
// Close file before returning
|
||||
close QCUSTCDT;
|
||||
return;
|
||||
|
||||
begsr Prog_Cancelled;
|
||||
close QCUSTCDT;
|
||||
// Put graceful ending logic & notification to user here
|
||||
return;
|
||||
endsr;
|
||||
|
||||
// Often found in old programs. Uncomment INFSR(*PSSR) in the
|
||||
// F-SPEC to make this active.
|
||||
BEGSR *PSSR;
|
||||
dsply 'In the *PSSR' ' ' reply;
|
||||
dump(a);
|
||||
ENDSR '*CANCL';
|
||||
// Often found in old programs. Uncomment INFSR(*PSSR) in the
|
||||
// F-SPEC to make this active.
|
||||
BEGSR *PSSR;
|
||||
dsply 'In the *PSSR' ' ' reply;
|
||||
dump(a);
|
||||
ENDSR '*CANCL';
|
||||
|
||||
@ -1,202 +1,173 @@
|
||||
*==============================================================
|
||||
* When an interactive program tries to update a record that is
|
||||
* locked by another user, often the program doesn't handle it.
|
||||
* The RPG error routines kick in and give the user a confusing
|
||||
* error message.
|
||||
*
|
||||
* Instead, trap the error and handle it by calling this program.
|
||||
*
|
||||
* This program communicates info about a locked record to an
|
||||
* interactive user telling who has the lock.
|
||||
**free
|
||||
// ==============================================================
|
||||
// When an interactive program tries to update a record that is
|
||||
// locked by another user, often the program doesn't handle it.
|
||||
// The RPG error routines kick in and give the user a confusing
|
||||
// error message.
|
||||
//
|
||||
// Instead, trap the error and handle it by calling this program.
|
||||
//
|
||||
// This program communicates info about a locked record to an
|
||||
// interactive user telling who has the lock.
|
||||
|
||||
* See program RCDLCKDEMO for a usage example.
|
||||
*
|
||||
* RCDLCKDSP accepts a continuation reply from the user and
|
||||
* passes it back to the caller.
|
||||
*
|
||||
* If the status is not 1218, then it is considered an
|
||||
* unexpected error and a slightly different dialog is
|
||||
* presented, asking the user to contact IT. You can
|
||||
* customize this as you see fit. Or add other statuses.
|
||||
*
|
||||
* Information is retrieved from the *PSDS passed from the caller.
|
||||
*
|
||||
*==============================================================
|
||||
* Parameters
|
||||
* ==========
|
||||
* 1 Output CL1 User's reply about what to do:
|
||||
* R - Retry the IO operation that failed
|
||||
* C - Cancel the program
|
||||
* D - DUmp the program and cancel
|
||||
* 2 Input * Pointer to the *PSDS in the calling program.
|
||||
* (A pointer is used because the *PDSD is not
|
||||
* always the same length in a program.)
|
||||
*==============================================================
|
||||
* Create with CRTBNDRPG
|
||||
* New activation group so we destroy nothing in the caller.
|
||||
* No worries about overhead since rarely called.
|
||||
h OPTION(*NODEBUGIO: *SRCSTMT)
|
||||
H DFTACTGRP(*NO) ACTGRP(*NEW)
|
||||
*==============================================================
|
||||
// See program RCDLCKDEMO for a usage example.
|
||||
//
|
||||
// RCDLCKDSP accepts a continuation reply from the user and
|
||||
// passes it back to the caller.
|
||||
//
|
||||
// If the status is not 1218, then it is considered an
|
||||
// unexpected error and a slightly different dialog is
|
||||
// presented, asking the user to contact IT. You can
|
||||
// customize this as you see fit. Or add other statuses.
|
||||
//
|
||||
// Information is retrieved from the *PSDS passed from the caller.
|
||||
//
|
||||
// ==============================================================
|
||||
// Parameters
|
||||
// ==========
|
||||
// 1 Output CL1 User's reply about what to do:
|
||||
// R - Retry the IO operation that failed
|
||||
// C - Cancel the program
|
||||
// D - DUmp the program and cancel
|
||||
// 2 Input * Pointer to the *PSDS in the calling program.
|
||||
// (A pointer is used because the *PDSD is not
|
||||
// always the same length in a program.)
|
||||
// ==============================================================
|
||||
// Create with CRTBNDRPG
|
||||
// New activation group so we destroy nothing in the caller.
|
||||
// No worries about overhead since rarely called.
|
||||
Ctl-Opt OPTION(*NODEBUGIO: *SRCSTMT);
|
||||
Ctl-Opt DFTACTGRP(*NO) ACTGRP(*NEW);
|
||||
// ==============================================================
|
||||
|
||||
FrcdlckdspdCF E WORKSTN
|
||||
Dcl-F rcdlckdspd WORKSTN;
|
||||
Dcl-PR RCDLCKDSP;
|
||||
poReply Char(1);
|
||||
piPSDS Pointer;
|
||||
End-PR;
|
||||
Dcl-PI RCDLCKDSP;
|
||||
poReply Char(1);
|
||||
piPSDS Pointer;
|
||||
End-PI;
|
||||
|
||||
d RCDLCKDSP pr
|
||||
D poReply 1A
|
||||
D piPSDS *
|
||||
// === The caller's Program Status Data Structure ===============
|
||||
// Many fields not currently used.
|
||||
Dcl-DS PSDS QUALIFIED BASED(PIPSDS);
|
||||
PROC_NAME Char(10) Pos(1); //* Procedure name
|
||||
PGM_STATUS Zoned(5:0) Pos(11); //* Status code
|
||||
PRV_STATUS Zoned(5:0) Pos(16); //* Previous status
|
||||
LINE_NUM Char(8) Pos(21); //* Src list line num
|
||||
ROUTINE Char(8) Pos(29); //* Routine name
|
||||
PARMS Char(3) Pos(37); //* Num passed parms
|
||||
EXCP_TYPE Char(3) Pos(40); //* Exception type
|
||||
EXCP_NUM Char(4) Pos(43); //* Exception number
|
||||
PGM_LIB Char(10) Pos(81); //* Program library
|
||||
EXCP_DATA Char(80) Pos(91); //* Exception data
|
||||
EXCP_ID Char(4) Pos(171); //* Exception Id
|
||||
LAST_FILE_IO Char(10) Pos(175); //* Last file used
|
||||
DATE Char(8) Pos(191); //* Date (*DATE fmt)
|
||||
YEAR Zoned(2:0) Pos(199); //* Year (*YEAR fmt)
|
||||
LAST_FILE Char(8) Pos(201); //* Last file used
|
||||
FILE_INFO_STATUS Zoned(5:0) Pos(209) ; //* Last file status
|
||||
FILE_INFO_OPCODE Char(6) Pos(214); //* Last file opcode
|
||||
FILE_INFO_ROUTINE Char(8) Pos(220) ; //* Last file RPG
|
||||
FILE_INFO_LIST_NUM Char(8) Pos(228) ; //* Last file listing
|
||||
FILE_INFO_RECORD Int(20) Pos(236) ; //* Last file record
|
||||
JOB_NAME Char(10) Pos(244); //* Job name
|
||||
USER Char(10) Pos(254); //* User name
|
||||
JOB_NUM Zoned(6:0) Pos(264); //* Job number
|
||||
JOB_DATE Zoned(6:0) Pos(270); //* Date (UDATE fmt)
|
||||
RUN_DATE Zoned(6:0) Pos(276); //* Run date (UDATE)
|
||||
RUN_TIME Zoned(6:0) Pos(282); //* Run time (UDATE)
|
||||
CRT_DATE Char(6) Pos(288); //* Create date
|
||||
CRT_TIME Char(6) Pos(294); //* Create time
|
||||
CPL_LEVEL Char(4) Pos(300); //* Compiler level
|
||||
SRC_FILE Char(10) Pos(304); //* Source file
|
||||
SRC_LIB Char(10) Pos(314); //* Source file lib
|
||||
SRC_MBR Char(10) Pos(324); //* Source file mbr
|
||||
PROC_PGM Char(10) Pos(334); //* Pgm Proc is in
|
||||
PROC_MOD Char(10) Pos(344); //* Mod Proc is in
|
||||
LINE_NUM_SRCID Int(5) Pos(354); //* Src list source ID
|
||||
FILE_INFO_LIST_NUM_SRCID Int(5) Pos(356) ; //* Last file listing
|
||||
CURR_USER Char(10) Pos(358) ; //* Current user
|
||||
EXTERNAL_RC Int(10) Pos(368) ; //* External return
|
||||
NUM_XML_ELEMS Int(20) Pos(372) ; //* Number of XML
|
||||
End-DS;
|
||||
// === My Variables ==============================================
|
||||
Dcl-DS MyPSDS PSDS;
|
||||
MyName Char(10) Pos(1); //* This program
|
||||
End-DS;
|
||||
|
||||
d RCDLCKDSP pi
|
||||
D poReply 1A
|
||||
D piPSDS *
|
||||
|
||||
* === The caller's Program Status Data Structure ===============
|
||||
* Many fields not currently used.
|
||||
D PSDS DS qualified based(piPSDS)
|
||||
D PROC_NAME 1 10 * Procedure name
|
||||
D PGM_STATUS 11 15s 0 * Status code
|
||||
D PRV_STATUS 16 20S 0 * Previous status
|
||||
D LINE_NUM 21 28 * Src list line num
|
||||
D ROUTINE 29 36 * Routine name
|
||||
D PARMS 37 39 * Num passed parms
|
||||
D EXCP_TYPE 40 42 * Exception type
|
||||
D EXCP_NUM 43 46 * Exception number
|
||||
D PGM_LIB 81 90 * Program library
|
||||
D EXCP_DATA 91 170 * Exception data
|
||||
D EXCP_ID 171 174 * Exception Id
|
||||
D LAST_FILE_IO 175 184 * Last file used
|
||||
D DATE 191 198 * Date (*DATE fmt)
|
||||
D YEAR 199 200S 0 * Year (*YEAR fmt)
|
||||
D LAST_FILE 201 208 * Last file used
|
||||
D FILE_INFO_STATUS...
|
||||
D 209 213S 0 * Last file status
|
||||
D * Code
|
||||
D FILE_INFO_OPCODE...
|
||||
D 214 219 * Last file opcode
|
||||
D FILE_INFO_ROUTINE...
|
||||
D 220 227 * Last file RPG
|
||||
D * routine
|
||||
D FILE_INFO_LIST_NUM...
|
||||
D 228 235 * Last file listing
|
||||
D * line
|
||||
D FILE_INFO_RECORD...
|
||||
D 236 243I 0 * Last file record
|
||||
D * name
|
||||
D JOB_NAME 244 253 * Job name
|
||||
D USER 254 263 * User name
|
||||
D JOB_NUM 264 269S 0 * Job number
|
||||
D JOB_DATE 270 275S 0 * Date (UDATE fmt)
|
||||
D RUN_DATE 276 281S 0 * Run date (UDATE)
|
||||
D RUN_TIME 282 287S 0 * Run time (UDATE)
|
||||
D CRT_DATE 288 293 * Create date
|
||||
D CRT_TIME 294 299 * Create time
|
||||
D CPL_LEVEL 300 303 * Compiler level
|
||||
D SRC_FILE 304 313 * Source file
|
||||
D SRC_LIB 314 323 * Source file lib
|
||||
D SRC_MBR 324 333 * Source file mbr
|
||||
D PROC_PGM 334 343 * Pgm Proc is in
|
||||
D PROC_MOD 344 353 * Mod Proc is in
|
||||
D LINE_NUM_SRCID...
|
||||
D 354 355I 0 * Src list source ID
|
||||
D FILE_INFO_LIST_NUM_SRCID...
|
||||
D 356 357I 0 * Last file listing
|
||||
D * source ID
|
||||
D CURR_USER 358 367 * Current user
|
||||
D * profile
|
||||
D EXTERNAL_RC 368 371I 0 * External return
|
||||
D * code
|
||||
D NUM_XML_ELEMS 372 379I 0 * Number of XML
|
||||
d * elements
|
||||
*=== My Variables ==============================================
|
||||
D MyPSDS sDS
|
||||
D MyName 1 10 * This program
|
||||
|
||||
D User c 'User: '
|
||||
D UserPrf S 10A inz(' ')
|
||||
D UserName S 40A inz(' ')
|
||||
|
||||
D wkI s 10I 0
|
||||
D wkJ s 10I 0
|
||||
|
||||
d myStatus s 4S 0
|
||||
D*AAA DS likeds(PSDS)
|
||||
/FREE
|
||||
// AAA = PSDS; // Eases Debugging...
|
||||
|
||||
SH_PGM = MyName;
|
||||
|
||||
// Sometimes the Status is not numeric
|
||||
monitor;
|
||||
myStatus = psds.FILE_INFO_STATUS;
|
||||
on-error;
|
||||
myStatus = -0;
|
||||
ENDMON;
|
||||
|
||||
// Display fields are prefixed with SC_.
|
||||
select;
|
||||
when myStatus = 1218; //Record locked
|
||||
SC_USER1 = 'Cannot continue until the user below completes';
|
||||
SC_USER2 = 'their transaction or exits their application.';
|
||||
exsr GetUserPrf;
|
||||
//exsr GetUserName;
|
||||
|
||||
// Fill in user profile and user name
|
||||
select;
|
||||
when UserPrf = ' ' and UserName = ' ';
|
||||
SC_USER3 = User + '*Unknown* -- Call IT Now.';
|
||||
when UserName = ' ';
|
||||
SC_USER3 = User + UserPrf;
|
||||
other;
|
||||
SC_USER3 = User + UserName;
|
||||
endsl;
|
||||
|
||||
SC_INSTR = 'Enter R to Retry, C to Cancel';
|
||||
|
||||
other; //Unknown error
|
||||
SC_USER1 = 'An unexpected error has occurred.';
|
||||
SC_USER2 = 'Please contact IT now.';
|
||||
SC_INSTR = 'IT: D=Dump, C=Cancel; R=Retry';
|
||||
endsl;
|
||||
|
||||
// We try to fill in this info for all conditions
|
||||
SC_IT_PGM = PSDS.PROC_NAME;
|
||||
SC_IT_STS = myStatus;
|
||||
SC_IT_FILE = PSDS.LAST_FILE;
|
||||
SC_IT_OPCD = PSDS.FILE_INFO_OPCODE;
|
||||
|
||||
SC_IT_EM1 = %subst(PSDS.EXCP_DATA: 1: %len(SC_IT_EM1));
|
||||
SC_IT_EM2 = %subst(PSDS.EXCP_DATA: %len(SC_IT_EM1)+1);
|
||||
|
||||
exfmt dspwin;
|
||||
|
||||
poReply = 'R'; //Default to R
|
||||
if SC_RESP = 'C' or SC_RESP = 'R' or SC_RESP = 'D';
|
||||
poReply = SC_RESP;
|
||||
endif;
|
||||
|
||||
*inlr = *on;
|
||||
return;
|
||||
|
||||
begsr GetUserPrf;
|
||||
// Dig the user profile out of the error message (EXCP_DATA)
|
||||
// which looks like this:
|
||||
// Record 3317 in use by job 018249/SLENNON/MISREMSAM
|
||||
UserPrf = ' ';
|
||||
wkI = %scan('/':PSDS.EXCP_DATA);
|
||||
if wkI <> 0;
|
||||
wkI = wkI +1;
|
||||
wkJ = %scan('/' :PSDS.EXCP_DATA: wkI);
|
||||
if WkJ <> 0;
|
||||
wkJ = WkJ - wkI;
|
||||
if wkI > 0;
|
||||
UserPrf = %subst(PSDS.EXCP_DATA: wkI: wkJ);
|
||||
endif;
|
||||
endif;
|
||||
endif;
|
||||
endsr;
|
||||
|
||||
begsr GetUserName;
|
||||
// If you have a way to connect a user name to a user
|
||||
// then set UserName here.
|
||||
UserName = ' ';
|
||||
endsr;
|
||||
/END-FREE
|
||||
Dcl-C USER 'USER: ';
|
||||
Dcl-S UserPrf Char(10) INZ(' ');
|
||||
Dcl-S UserName Char(40) INZ(' ');
|
||||
Dcl-S wkI Int(10);
|
||||
Dcl-S wkJ Int(10);
|
||||
Dcl-S myStatus Zoned(4:0);
|
||||
//Dcl-DS AAA LIKEDS(PSDS);
|
||||
// AAA = PSDS; // Eases Debugging...
|
||||
SH_PGM = MyName;
|
||||
// Sometimes the Status is not numeric
|
||||
monitor;
|
||||
myStatus = PSDS.FILE_INFO_STATUS;
|
||||
on-error;
|
||||
myStatus = -0;
|
||||
ENDMON;
|
||||
// Display fields are prefixed with SC_.
|
||||
select;
|
||||
when myStatus = 1218; //Record locked
|
||||
SC_USER1 = 'Cannot continue until the user below completes';
|
||||
SC_USER2 = 'their transaction or exits their application.';
|
||||
exsr GetUserPrf;
|
||||
//exsr GetUserName;
|
||||
// Fill in user profile and user name
|
||||
select;
|
||||
when UserPrf = ' ' and UserName = ' ';
|
||||
SC_USER3 = USER + '*Unknown* -- Call IT Now.';
|
||||
when UserName = ' ';
|
||||
SC_USER3 = USER + UserPrf;
|
||||
other;
|
||||
SC_USER3 = USER + UserName;
|
||||
endsl;
|
||||
SC_INSTR = 'Enter R to Retry, C to Cancel';
|
||||
other; //Unknown error
|
||||
SC_USER1 = 'An unexpected error has occurred.';
|
||||
SC_USER2 = 'Please contact IT now.';
|
||||
SC_INSTR = 'IT: D=Dump, C=Cancel; R=Retry';
|
||||
endsl;
|
||||
// We try to fill in this info for all conditions
|
||||
SC_IT_PGM = PSDS.PROC_NAME;
|
||||
SC_IT_STS = myStatus;
|
||||
SC_IT_FILE = PSDS.LAST_FILE;
|
||||
SC_IT_OPCD = PSDS.FILE_INFO_OPCODE;
|
||||
SC_IT_EM1 = %subst(PSDS.EXCP_DATA: 1: %len(SC_IT_EM1));
|
||||
SC_IT_EM2 = %subst(PSDS.EXCP_DATA: %len(SC_IT_EM1)+1);
|
||||
exfmt DSPWIN;
|
||||
poReply = 'R'; //Default to R
|
||||
if SC_RESP = 'C' or SC_RESP = 'R' or SC_RESP = 'D';
|
||||
poReply = SC_RESP;
|
||||
endif;
|
||||
*inlr = *on;
|
||||
return;
|
||||
begsr GetUserPrf;
|
||||
// Dig the user profile out of the error message (EXCP_DATA)
|
||||
// which looks like this:
|
||||
// Record 3317 in use by job 018249/SLENNON/MISREMSAM
|
||||
UserPrf = ' ';
|
||||
wkI = %scan('/':PSDS.EXCP_DATA);
|
||||
if wkI <> 0;
|
||||
wkI = wkI +1;
|
||||
wkJ = %scan('/' :PSDS.EXCP_DATA: wkI);
|
||||
if wkJ <> 0;
|
||||
wkJ = wkJ - wkI;
|
||||
if wkI > 0;
|
||||
UserPrf = %subst(PSDS.EXCP_DATA: wkI: wkJ);
|
||||
endif;
|
||||
endif;
|
||||
endif;
|
||||
endsr;
|
||||
begsr GetUserName;
|
||||
// If you have a way to connect a user name to a user
|
||||
// then set UserName here.
|
||||
UserName = ' ';
|
||||
endsr;
|
||||
|
||||
@ -16,7 +16,7 @@ The top half of the window is information for the current user of the interactiv
|
||||
|
||||
The bottom half provides information for the IT Department should the need arise.
|
||||
|
||||
## RCDLCKDSP
|
||||
## RCDLCKDSP.RPGLE
|
||||
|
||||
This is the standalone RPG program that handles the window display. It is passed two parameters:
|
||||
|
||||
|
||||
@ -26,14 +26,14 @@
|
||||
main(SQL_SKEL);
|
||||
|
||||
//=== Prototypes ======================================
|
||||
/include copy_mbrs,srv_sql_p
|
||||
/include ../Copy_Mbrs/SRV_SQL_P.RPGLE
|
||||
|
||||
//=== SQL State Constants =============================
|
||||
dcl-c SQLSuccess '00000';
|
||||
dcl-c SQLNoData '02000';
|
||||
dcl-c SQLNoMoreData '02000';
|
||||
dcl-c SQLDupRecd '23505';
|
||||
dcl-c SQLRowLocked '57033';
|
||||
dcl-c SQLSUCCESS '00000';
|
||||
dcl-c SQLNODATA '02000';
|
||||
dcl-c SQLNOMOREDATA '02000';
|
||||
dcl-c SQLDUPRECD '23505';
|
||||
dcl-c SQLROWLOCKED '57033';
|
||||
|
||||
//=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=
|
||||
// Main Program =
|
||||
@ -47,7 +47,7 @@ dcl-proc SQL_SKEL;
|
||||
dcl-ds InTbl extname('QIWS/QCUSTCDT') template
|
||||
end-ds;
|
||||
|
||||
dcl-s MyCusnum like(cusnum);
|
||||
dcl-s MyCusNum like(cusnum);
|
||||
dcl-s MyLstNam like(lstnam);
|
||||
dcl-s MyInit like(init);
|
||||
dcl-s MyState like(state);
|
||||
@ -73,12 +73,12 @@ dcl-proc SQL_SKEL;
|
||||
;
|
||||
//=== Initialization ================================
|
||||
exec sql open DemoCursor;
|
||||
if SQLSTT <> SQLSuccess;
|
||||
if SQLSTT <> SQLSUCCESS;
|
||||
SQLProblem('open DemoCursor');
|
||||
endif;
|
||||
//=== Main Logic ====================================
|
||||
exsr FetchCur;
|
||||
dow SQLSTT = SQLSuccess;
|
||||
dow SQLSTT = SQLSUCCESS;
|
||||
RecordsRead += 1;
|
||||
// Real program logic goes here <<<<<<<<<<
|
||||
exsr FetchCur;
|
||||
@ -89,7 +89,7 @@ dcl-proc SQL_SKEL;
|
||||
// ---- Deliberate bug to exercise SQLProblem -----
|
||||
exec sql close DemoCursor;
|
||||
// ------------------------------------------------
|
||||
if SQLSTT <> SQLSuccess;
|
||||
if SQLSTT <> SQLSUCCESS;
|
||||
SQLProblem('close DemoCursor');
|
||||
endif;
|
||||
*inlr = *on;
|
||||
@ -111,8 +111,8 @@ dcl-proc SQL_SKEL;
|
||||
:MyState,
|
||||
:MyBalDue
|
||||
;
|
||||
if SQLSTT <> SQLSuccess
|
||||
and SQLSTT <> SQLNoMoreData;
|
||||
if SQLSTT <> SQLSUCCESS
|
||||
and SQLSTT <> SQLNOMOREDATA;
|
||||
SQLProblem('fetch DemoCursor');
|
||||
endif;
|
||||
endsr;
|
||||
|
||||
17
Service_Pgms/CRTBNDDIR.CLLE
Normal file
17
Service_Pgms/CRTBNDDIR.CLLE
Normal file
@ -0,0 +1,17 @@
|
||||
PGM
|
||||
/* === Create UTIL_BND binding directory ======================== */
|
||||
|
||||
/* === Set your target library here ================ */
|
||||
DCL VAR(&TGT_LIB) TYPE(*CHAR) LEN(10) +
|
||||
VALUE('*CURLIB')
|
||||
/* ================================================= */
|
||||
|
||||
DLTBNDDIR BNDDIR(&TGT_LIB/UTIL_BND)
|
||||
MONMSG MSGID(CPF0000)
|
||||
|
||||
CRTBNDDIR BNDDIR(&TGT_LIB/UTIL_BND) TEXT('Utilities +
|
||||
Service PGMs')
|
||||
|
||||
ADDBNDDIRE BNDDIR(UTIL_BND) OBJ((SRV_MSG *SRVPGM *DEFER))
|
||||
ADDBNDDIRE BNDDIR(UTIL_BND) OBJ((SRV_STR *SRVPGM *DEFER))
|
||||
ENDPGM
|
||||
@ -10,13 +10,13 @@ Contains procedures to send messages from an RPG program.
|
||||
|
||||
**ClrMsgPgmQ**: Clear all messages from the provided program queue. (Interactive programming.)
|
||||
|
||||
**SndEscMsg**: Send provided text as an escape message.
|
||||
**SndEscMsg**: Send provided text as an escape message. (Note that the SND-MSG opcode can replace this in newer compiler versions.)
|
||||
|
||||
**SndInfMsg**: Send provided text as info message to the external message queue.
|
||||
**SndInfMsg**: Send provided text as info message to the external message queue. (Note that the SND-MSG opcode can replace this in newer compiler versions.)
|
||||
|
||||
**JobLogMsg**: Send provided text to the job log using Qp0zLprintf, a C function. For testing, a convenient alternative to the DSPLY opcode for longer messages.
|
||||
|
||||
## SRV_RANDON
|
||||
## SRV_RANDOM
|
||||
|
||||
Convenience procedures relating to pseudo random number generation.
|
||||
|
||||
@ -63,6 +63,6 @@ Contains procedures to manipulate strings in an RPG program.
|
||||
## SHOW
|
||||
|
||||
RPG program to display a 5250 message using the QUILNGTX API. Useful for testing, but possibly
|
||||
JobLogMsg in SRV_MSG is more useful. Really should be part of SRV_MSG, but it is totally *FREE for and I have left SRV_MSG partially fixed.
|
||||
JobLogMsg in SRV_MSG is more useful. Really should be part of SRV_MSG.
|
||||
|
||||
* SHOW_T RPG program to test & exercise SHOW.
|
||||
|
||||
@ -8,7 +8,7 @@
|
||||
//
|
||||
// Uses the Display Long Text (QUILNGTX) API to display a pop-up
|
||||
// window containing the passed string.
|
||||
// API doesn't display bidirectional right to left text.
|
||||
// API doesn't display bidirectional right to left text.
|
||||
//
|
||||
// Error Messages
|
||||
// Message ID Error Message Text
|
||||
|
||||
@ -4,7 +4,7 @@ Ctl-Opt DftActGrp(*NO) ActGrp(*CALLER) option(*nodebugio: *srcstmt);
|
||||
Ctl-Opt BndDir('UTIL_BND');
|
||||
|
||||
//=== Service Program Prototypes ==============================
|
||||
/include copy_mbrs,Srv_Msg_P
|
||||
/include ../Copy_Mbrs/SRV_MSG_P.RPGLE
|
||||
|
||||
dcl-s short1 char(30) inz('A typical short msg.');
|
||||
|
||||
|
||||
@ -1,113 +1,116 @@
|
||||
**free
|
||||
//==============================================================
|
||||
//=== SRV_MSG service program contains prodcedure for sending
|
||||
//=== messages:
|
||||
// 1) With QMHSNDPM
|
||||
// 2) With Qp0zLprintf (to job log.)
|
||||
//==============================================================
|
||||
// CRTRPGMOD MODULE(SRV_MSG)
|
||||
//
|
||||
// CRTSRVPGM SRVPGM(SRV_MSG)
|
||||
// SRCFILE(*LIBL/SRV_PGMS) SRCMBR(SRV_MSGBND)
|
||||
// TEXT('Messages service program')
|
||||
//
|
||||
// ADDBNDDIRE BNDDIR(UTIL_BND) OBJ((SRV_MSG *SRVPGM *DEFER))
|
||||
//==============================================================
|
||||
// 12/2023 Convert to totally **FREE
|
||||
//==============================================================
|
||||
|
||||
//==============================================================
|
||||
//=== SRV_MSG service program contains prodcedure for sending
|
||||
//=== messages:
|
||||
// With QMHSNDPM
|
||||
// With Qp0zLprintf (to job log.)
|
||||
//==============================================================
|
||||
// CRTRPGMOD MODULE(SRV_MSG)
|
||||
//
|
||||
// CRTSRVPGM SRVPGM(SRV_MSG)
|
||||
// SRCFILE(*LIBL/SRV_PGMS) SRCMBR(SRV_MSGBND)
|
||||
// TEXT('Messages service program')
|
||||
//
|
||||
// ADDBNDDIRE BNDDIR(UTIL_BND) OBJ((SRV_MSG *SRVPGM *DEFER))
|
||||
ctl-opt nomain option(*nodebugio: *srcstmt);
|
||||
/INCLUDE ../Copy_Mbrs/SRV_MSG_P.RPGLE
|
||||
|
||||
h nomain option(*NoDebugIo: *srcstmt)
|
||||
/include copy_mbrs,Srv_Msg_P
|
||||
//=== QMHSNDPM internal prototype =============================
|
||||
dcl-pr QMHSNDPM extpgm('QMHSNDPM');
|
||||
*n char(7) const; // piMsgId
|
||||
*n char(20) const; // piMsgFile
|
||||
*n char(1024) const options(*varsize); // piMsgData
|
||||
*n int(10) const; // piMsgDataLgth
|
||||
*n char(10) const; // piMsgType
|
||||
*n char(10) const; // piCallStk
|
||||
*n int(10) const; // piRelCallStk
|
||||
*n char(4); // piRtnMsgKey
|
||||
*n char(17); // apiErrorDS
|
||||
end-pr;
|
||||
|
||||
//=== QMHSNDPM internal prototype =============================
|
||||
D QMHSNDPM pr ExtPgm('QMHSNDPM')
|
||||
D piMsgId 7a Const
|
||||
D piMsgFile 20a Const
|
||||
D piMsgData 1024a Const OPTIONS(*varsize)
|
||||
D piMsgDataLgth 10i 0 Const
|
||||
D piMsgType 10a Const
|
||||
D piCallStk 10a Const
|
||||
D piRelCallStk 10i 0 Const
|
||||
D piRtnMsgKey 4a
|
||||
D apiErrorDS 17a
|
||||
//=== QMHRMVPM internal prototype =============================
|
||||
dcl-pr QMHRMVPM extpgm('QMHRMVPM');
|
||||
*n char(10); // pPgmMsgQ
|
||||
*n int(10); // PgmStk
|
||||
*n char(4); // MsgKey
|
||||
*n char(10); // Remove
|
||||
*n char(17); // apiErrorDS
|
||||
end-pr;
|
||||
|
||||
//=== QMHRMVPM internal prototype =============================
|
||||
d QMHRMVPM pr Extpgm('QMHRMVPM')
|
||||
d pPgmMsgQ 10a
|
||||
d PgmStk 10i 0
|
||||
d MsgKey 4a
|
||||
d Remove 10a
|
||||
D apiErrorDS 17a
|
||||
//=== Qp0zLprintf =============================================
|
||||
dcl-pr printF extproc('Qp0zLprintf');
|
||||
*n pointer value options(*string); // piMsg
|
||||
end-pr;
|
||||
|
||||
//=== Qp0zLprintf =============================================
|
||||
d printF pr extproc('Qp0zLprintf')
|
||||
d piMsg * value options(*string)
|
||||
|
||||
//=== SNDMSGPGMQ ===============================================
|
||||
// SeND a MeSsaGe to a ProGraM message Queue.
|
||||
// Sends a pre-defined message to a program message queue
|
||||
// that you provide as a parameter.
|
||||
|
||||
// Primarily designed to be used in interactive programs
|
||||
// that send messages via a message subfile.
|
||||
|
||||
// See also CLRMSGPGMQ which clears messages from a program
|
||||
// message queue.
|
||||
//==============================================================
|
||||
// Conceptual call:
|
||||
//=================
|
||||
// H BndDir('UTIL_BND')
|
||||
// /include copy_mbrs,Srv_Msg_P
|
||||
// D ProgStatus sds
|
||||
// D PgmName *PROC
|
||||
// SNDMSGPGMQ(PgmName:
|
||||
// Msgid:
|
||||
// MsgFile:
|
||||
// MsgDta);
|
||||
//==============================================================
|
||||
P SndMsgPgmQ b export
|
||||
d SndMsgPgmQ pi
|
||||
d pMsgQ 10
|
||||
d pMsgid 7
|
||||
d pMsgFile 10
|
||||
d pMsgDta 512 options(*NOPASS)
|
||||
d Varying
|
||||
//=== Calling Parameters =======================================
|
||||
// Parm I/O/B Description
|
||||
// ---- ----- -----------
|
||||
// pMsgQ I Message queue to send to. Usually the
|
||||
// program name, or the MAIN procedure name
|
||||
// obtained with %proc().
|
||||
// pMsgId I Predefined message id, e.g. CPF9898.
|
||||
// pMsgFile I Message file containing pMsgid. (Library
|
||||
// is assumed as *LIBL.)
|
||||
// pMsgDta I Optional: Data to substitute into the message.
|
||||
// (Trailing blanks will be truncated before use.)
|
||||
|
||||
//=== API Error Code Structure ==================================
|
||||
// We don't provide any bytes, so an error will cause a crash,
|
||||
// because if we get an error here something bad has happened.
|
||||
dAPIError ds 272
|
||||
d APIEProv 1 4b 0 inz(0)
|
||||
d APIEAvail 5 8b 0 inz(0)
|
||||
d APIErrId 9 15 inz(*blanks)
|
||||
//=== QMHSNDPM Parameters =======================================
|
||||
d QMsgFile s 20
|
||||
d MsgType s 10 inz('*INFO')
|
||||
d StackCntr s 10i 0 inz(0)
|
||||
d MsgKey s 4 inz(' ')
|
||||
d MsgDta s 256 inz(' ')
|
||||
d MsgDtaLgth s 10i 0
|
||||
//=== SNDMSGPGMQ execution starts here ==========================
|
||||
/free
|
||||
QMsgFile = pMsgFile + '*LIBL';
|
||||
//=== SNDMSGPGMQ ===============================================
|
||||
// SeND a MeSsaGe to a ProGraM message Queue.
|
||||
// Sends a pre-defined message to a program message queue
|
||||
// that you provide as a parameter.
|
||||
// Primarily designed to be used in interactive programs
|
||||
// that send messages via a message subfile.
|
||||
// See also CLRMSGPGMQ which clears messages from a program
|
||||
// message queue.
|
||||
//==============================================================
|
||||
// Conceptual call:
|
||||
//=================
|
||||
// H BndDir('UTIL_BND')
|
||||
// /include ../Copy_Mbrs/SRV_MSG_P.RPGLE
|
||||
// D ProgStatus sds
|
||||
// D PgmName *PROC
|
||||
// SNDMSGPGMQ(PgmName:
|
||||
// Msgid:
|
||||
// MsgFile:
|
||||
// MsgDta);
|
||||
//==============================================================
|
||||
dcl-proc SndMsgPgmQ export;
|
||||
dcl-pi SndMsgPgmQ;
|
||||
pMsgQ char(10);
|
||||
pMsgid char(7);
|
||||
pMsgFile char(10);
|
||||
pMsgDta varchar(512) options(*nopass);
|
||||
end-pi;
|
||||
//=== Calling Parameters =======================================
|
||||
// Parm I/O/B Description
|
||||
// ---- ----- -----------
|
||||
// pMsgQ I Message queue to send to. Usually the
|
||||
// program name, or the MAIN procedure name
|
||||
// obtained with %proc().
|
||||
// pMsgId I Predefined message id, e.g. CPF9898.
|
||||
// pMsgFile I Message file containing pMsgid. (Library
|
||||
// is assumed as *LIBL.)
|
||||
// pMsgDta I Optional: Data to substitute into the message.
|
||||
// (Trailing blanks will be truncated before use.)
|
||||
//=== API Error Code Structure ==================================
|
||||
// We don't provide any bytes, so an error will cause a crash,
|
||||
// because if we get an error here something bad has happened.
|
||||
dcl-ds APIError len(272);
|
||||
APIEProv int(10) inz(0) pos(1);
|
||||
APIEAvail int(10) inz(0) pos(5);
|
||||
APIErrId char(7) inz(*blanks) pos(9);
|
||||
end-ds;
|
||||
//=== QMHSNDPM Parameters =======================================
|
||||
dcl-s QMsgFile char(20);
|
||||
dcl-s MsgType char(10) inz('*INFO');
|
||||
dcl-s StackCntr int(10) inz(0);
|
||||
dcl-s MsgKey char(4) inz(' ');
|
||||
dcl-s MsgDta char(256) inz(' ');
|
||||
dcl-s MsgDtaLgth int(10);
|
||||
//=== SNDMSGPGMQ execution starts here ==========================
|
||||
QMsgFile = pMsgFile + '*LIBL';
|
||||
// Message data length for QMHSNDPM is optional. If supplied,
|
||||
// use, else default to 0.
|
||||
if %parms > 3;
|
||||
MsgDta = pMsgDta;
|
||||
MsgDtaLgth = %len(%trimr(MsgDta));
|
||||
else;
|
||||
MsgDtaLgth = 0;
|
||||
endif;
|
||||
//=== Send message with API =====================================
|
||||
QMHSNDPM (pMsgid
|
||||
if %parms > 3;
|
||||
MsgDta = pMsgDta;
|
||||
MsgDtaLgth = %len(%trimr(MsgDta));
|
||||
else;
|
||||
MsgDtaLgth = 0;
|
||||
endif;
|
||||
//=== Send message with API =====================================
|
||||
QMHSNDPM (pMsgid
|
||||
:QMsgFile
|
||||
:MsgDta
|
||||
:MsgDtaLgth
|
||||
@ -116,179 +119,166 @@
|
||||
:StackCntr
|
||||
:MsgKey
|
||||
:APIError);
|
||||
// Exit with LR off. This is a tiny routine which will probably
|
||||
// be called again.
|
||||
return;
|
||||
/end-free
|
||||
p SndMsgPgmQ e
|
||||
// Exit with LR off. This is a tiny routine which will probably
|
||||
// be called again.
|
||||
return;
|
||||
end-proc;
|
||||
//=== CLRMSGPGMQ =-=============================================
|
||||
// CLeaRs all MeSsaGes from a ProGraM message Queue
|
||||
// Clears all the messages from a program message queue that
|
||||
// you specify as a parameter.
|
||||
// It is primarily designed for use by interactive programs that
|
||||
// send messages through a message subfile.
|
||||
// See also SNDMSGPGMQ which sends a message to the program queue.
|
||||
//
|
||||
// Always returns *OFF
|
||||
//===============================================================
|
||||
// Conceptual call:
|
||||
//=================
|
||||
// H BndDir('UTIL_BND')
|
||||
// /include ../Copy_Mmbrs/SRV_MSG_P.RPGLE
|
||||
// D ProgStatus sds
|
||||
// D PgmName *PROC
|
||||
// CLRMSGPGMQ(PgmName)
|
||||
|
||||
//=== CLRMSGPGMQ =-=============================================
|
||||
// CLeaRs all MeSsaGes from a ProGraM message Queue
|
||||
// Clears all the messages from a program message queue that
|
||||
// you specify as a parameter.
|
||||
dcl-proc ClrMsgPgmQ export;
|
||||
dcl-pi ClrMsgPgmQ ind;
|
||||
pPgmMsgQ char(10);
|
||||
end-pi;
|
||||
|
||||
// It is primarily designed for use by interactive programs that
|
||||
// send messages through a message subfile.
|
||||
//=== API Error Code Structure ==================================
|
||||
// We don't provide any bytes, so an error will cause a crash,
|
||||
// because if we get an error here something bad has happened.
|
||||
dcl-ds APIError len(272);
|
||||
APIEProv int(10) inz(0) pos(1);
|
||||
APIEAvail int(10) inz(0) pos(5);
|
||||
APIErrId char(7) inz(*blanks) pos(9);
|
||||
end-ds;
|
||||
//=== Parameters for QMHRMVPM API ===============================
|
||||
dcl-s PgmStk int(10) inz(0);
|
||||
dcl-s MSgKey char(4) inz(*blanks);
|
||||
dcl-s Remove char(10) inz('*ALL');
|
||||
|
||||
// See also SNDMSGPGMQ which sends a message to the program queue.
|
||||
//
|
||||
// Always returns *OFF
|
||||
//===============================================================
|
||||
|
||||
// Conceptual call:
|
||||
//=================
|
||||
// H BndDir('UTIL_BND')
|
||||
// /include copy_mbrs,Srv_Msg_P
|
||||
// D ProgStatus sds
|
||||
// D PgmName *PROC
|
||||
// CLRMSGPGMQ(PgmName)
|
||||
|
||||
p ClrMsgPgmQ b export
|
||||
D ClrMsgPgmQ pi N
|
||||
d pPgmMsgQ 10
|
||||
|
||||
//=== API Error Code Structure ==================================
|
||||
// We don't provide any bytes, so an error will cause a crash,
|
||||
// because if we get an error here something bad has happened.
|
||||
dAPIError ds 272
|
||||
d APIEProv 1 4b 0 inz(0)
|
||||
d APIEAvail 5 8b 0 inz(0)
|
||||
d APIErrId 9 15 inz(*blanks)
|
||||
//=== Parameters for QMHRMVPM API ===============================
|
||||
d PgmStk s 10i 0 inz(0)
|
||||
d MSgKey s 4 inz(*blanks)
|
||||
d Remove s 10 inz('*ALL')
|
||||
|
||||
//=== Calling Parameters =============================================
|
||||
// Parm I/O/B Description
|
||||
// ---- ----- -----------
|
||||
// pPGMMsgQ I Program message queue to clear.
|
||||
|
||||
//=== ClrMsgPgmQ execution starts here ==========================
|
||||
/free
|
||||
QMHRMVPM(pPgmMsgQ
|
||||
//=== Calling Parameters =============================================
|
||||
// Parm I/O/B Description
|
||||
// ---- ----- -----------
|
||||
// pPGMMsgQ I Program message queue to clear.
|
||||
//=== ClrMsgPgmQ execution starts here ==========================
|
||||
QMHRMVPM(pPgmMsgQ
|
||||
:PgmStk
|
||||
:MsgKey
|
||||
:MSgKey
|
||||
:Remove
|
||||
:APIError);
|
||||
|
||||
/free
|
||||
// Exit with LR off. This is a tiny routine which will probably
|
||||
// be called again.
|
||||
RETURN *off;
|
||||
/end-free
|
||||
// Exit with LR off. This is a tiny routine which will probably
|
||||
// be called again.
|
||||
return *off;
|
||||
|
||||
p ClrMsgPgmQ e
|
||||
end-proc;
|
||||
|
||||
//=== SndEscMsg ===============================================
|
||||
// Sends CPF9898 Escape message of the provided text.
|
||||
// This will kill the current program and cause an
|
||||
// exception in the one that called it.
|
||||
//=== SndEscMsg ===============================================
|
||||
// Sends CPF9898 Escape message of the provided text.
|
||||
// This will kill the current program and cause an
|
||||
// exception in the one that called it.
|
||||
|
||||
P SndEscMsg B Export
|
||||
dcl-proc SndEscMsg export;
|
||||
|
||||
D SndEscMsg PI
|
||||
D piMsg 512a Const Varying
|
||||
D piStackEnt 10i 0 Const options(*Nopass)
|
||||
dcl-pi SndEscMsg;
|
||||
piMsg varchar(512) const;
|
||||
piStackEnt int(10) const options(*nopass);
|
||||
end-pi;
|
||||
|
||||
//--- Parameters for QMHSNDPM -------------------------
|
||||
D MsgId c const('CPF9898')
|
||||
d MsgF c const('QCPFMSG *LIBL ')
|
||||
d MsgType c const('*ESCAPE ')
|
||||
d PgmQue c const('* ')
|
||||
d InvCount s 10i 0 inz(2)
|
||||
d ApiError s 17a inz(X'00')
|
||||
d RetMsgKey s 4a
|
||||
D DataLen s 10i 0
|
||||
dcl-c MSGID const('CPF9898');
|
||||
dcl-c MSGF const('QCPFMSG *LIBL ');
|
||||
dcl-c MSGTYPE const('*ESCAPE ');
|
||||
dcl-c PGMQUE const('* ');
|
||||
dcl-s InvCount int(10) inz(2);
|
||||
dcl-s ApiError char(17) inz(x'00');
|
||||
dcl-s RetMsgKey char(4);
|
||||
dcl-s DataLen int(10);
|
||||
|
||||
//--- Local Variables ---------------------------------
|
||||
D MsgData s 1024a
|
||||
//--- Local Variables ---------------------------------
|
||||
dcl-s MsgData char(1024);
|
||||
|
||||
/FREE
|
||||
DataLen = %len(piMsg);
|
||||
MsgData = piMsg;
|
||||
|
||||
DataLen = %len(PiMSG);
|
||||
MsgData = piMsg;
|
||||
if %parms = 2;
|
||||
InvCount = piStackEnt;
|
||||
else;
|
||||
InvCount = 2;
|
||||
endif;
|
||||
|
||||
if %parms = 2;
|
||||
InvCount = piStackEnt;
|
||||
else;
|
||||
InvCount = 2;
|
||||
endif;
|
||||
|
||||
QMHSNDPM(MsgId
|
||||
:MsgF
|
||||
QMHSNDPM(MSGID
|
||||
:MSGF
|
||||
:MsgData
|
||||
:DataLen
|
||||
:MsgType
|
||||
:PgmQue
|
||||
:MSGTYPE
|
||||
:PGMQUE
|
||||
:InvCount
|
||||
:RetMsgKey
|
||||
:APIError);
|
||||
return;
|
||||
:ApiError);
|
||||
return;
|
||||
|
||||
/end-free
|
||||
|
||||
P SndEscMsg E
|
||||
end-proc;
|
||||
|
||||
//=== SndInfMsg ===============================================
|
||||
// Sends CPF9898 Info message of the provided text to the
|
||||
// external message queue.
|
||||
// Useful for debugging. See also JobLogMsg.
|
||||
//=== SndInfMsg ===============================================
|
||||
// Sends CPF9898 Info message of the provided text to the
|
||||
// external message queue.
|
||||
// Useful for debugging. See also JobLogMsg.
|
||||
|
||||
P SndInfMsg B Export
|
||||
dcl-proc SndInfMsg export;
|
||||
|
||||
D SndInfMsg PI
|
||||
D piMsg 512a Const Varying
|
||||
dcl-pi SndInfMsg;
|
||||
piMsg varchar(512) const;
|
||||
end-pi;
|
||||
|
||||
//--- Parameters for QMHSNDPM -------------------------
|
||||
D MsgId c const('CPF9898')
|
||||
d MsgF c const('QCPFMSG *LIBL ')
|
||||
d MsgType c const('*INFO ')
|
||||
d PgmQue c const('*EXT ')
|
||||
d InvCount c const(2)
|
||||
d ApiError s 17a inz(X'00')
|
||||
d RetMsgKey s 4a
|
||||
D DataLen s 10i 0
|
||||
//--- Parameters for QMHSNDPM -------------------------
|
||||
dcl-c MSGID const('CPF9898');
|
||||
dcl-c MSGF const('QCPFMSG *LIBL ');
|
||||
dcl-c MSGTYPE const('*INFO ');
|
||||
dcl-c PGMQUE const('*EXT ');
|
||||
dcl-c INVCOUNT const(2);
|
||||
dcl-s ApiError char(17) inz(x'00');
|
||||
dcl-s RetMsgKey char(4);
|
||||
dcl-s DataLen int(10);
|
||||
|
||||
//--- Local Variables ---------------------------------
|
||||
D MsgData s 1024a
|
||||
//--- Local Variables ---------------------------------
|
||||
dcl-s MsgData char(1024);
|
||||
|
||||
/FREE
|
||||
DataLen = %len(piMsg);
|
||||
MsgData = piMsg;
|
||||
|
||||
DataLen = %len(PiMSG);
|
||||
MsgData = piMsg;
|
||||
|
||||
QMHSNDPM(MsgId
|
||||
:MsgF
|
||||
QMHSNDPM(MSGID
|
||||
:MSGF
|
||||
:MsgData
|
||||
:DataLen
|
||||
:MsgType
|
||||
:PgmQue
|
||||
:InvCount
|
||||
:MSGTYPE
|
||||
:PGMQUE
|
||||
:INVCOUNT
|
||||
:RetMsgKey
|
||||
:APIError);
|
||||
return;
|
||||
:ApiError);
|
||||
return;
|
||||
|
||||
/end-free
|
||||
end-proc;
|
||||
|
||||
P SndInfMsg E
|
||||
//=== JobLogMsg ===============================================
|
||||
// Write arbitray message to the Job log.
|
||||
// Uses Qp0zLprintf, which is a C function.
|
||||
// Useful for debugging. See also SndInfMsg.
|
||||
|
||||
//=== JobLogMsg ===============================================
|
||||
// Write arbitray message to the Job log.
|
||||
// Uses Qp0zLprintf, which is a C function.
|
||||
// Useful for debugging. See also SndInfMsg.
|
||||
dcl-proc JobLogMsg export;
|
||||
|
||||
P JobLogMsg B Export
|
||||
dcl-pi JobLogMsg;
|
||||
piMsg varchar(512) value;
|
||||
end-pi;
|
||||
|
||||
D JobLogMsg PI
|
||||
D piMsg 512a Value Varying
|
||||
dcl-s wkMsg like(piMsg:+1);
|
||||
dcl-c EOL x'25';
|
||||
|
||||
d wkMsg s +1 like(piMSg)
|
||||
d EOL c x'25'
|
||||
|
||||
/FREE
|
||||
wkMsg = piMsg + EOL;
|
||||
printF(wkMsg);
|
||||
return;
|
||||
/end-free
|
||||
P JobLogMsg E
|
||||
wkMsg = piMsg + EOL;
|
||||
printF(wkMsg);
|
||||
return;
|
||||
end-proc;
|
||||
|
||||
@ -2,10 +2,10 @@
|
||||
//=== Tests JobLogMsg procedures in SRV_MSG service program ========
|
||||
ctl-opt option(*NoDebugIo: *SrcStmt :*NoUnref) indent(' |')
|
||||
ActGrp('QILE') DftActGrp(*no)
|
||||
BndDir('UTIL_BND':'SQL_BND')
|
||||
BndDir('UTIL_BND')
|
||||
Main(Main);
|
||||
|
||||
/include copy_mbrs,Srv_Msg_P
|
||||
/INCLUDE ../Copy_Mbrs/SRV_MSG_P.RPGLE
|
||||
|
||||
dcl-proc Main ;
|
||||
dcl-pi *n extpgm('SRV_MSGTL');
|
||||
@ -36,5 +36,5 @@ dcl-proc Main ;
|
||||
// JobLogMsg(scale );
|
||||
|
||||
SndInfMsg('SndInfMsg - to compare to JobLogMsg');
|
||||
JobLogmsg('JobLogMsg - to compare to SndInfMsg');
|
||||
JobLogMsg('JobLogMsg - to compare to SndInfMsg');
|
||||
end-proc;
|
||||
|
||||
@ -1,179 +1,171 @@
|
||||
**free
|
||||
//=== Tests procedures in SRV_MSG service program =============
|
||||
ctl-opt dftactgrp(*no) actgrp(*caller) option(*nodebugio: *srcstmt)
|
||||
bnddir('UTIL_BND');
|
||||
|
||||
//=== Tests procedures in SRV_MSG service program =============
|
||||
H DftActGrp(*NO) ActGrp(*CALLER) option(*nodebugio: *srcstmt)
|
||||
H BndDir('UTIL_BND')
|
||||
//=== Display File ============================================
|
||||
dcl-f SRV_MSGTD workstn infds(dfInfDS) indds(dfIndDS) usropn;
|
||||
|
||||
//=== Display File ============================================
|
||||
FSRV_MSGTD CF E WorkStn INFDS(dfInfDS)
|
||||
F INDDS(dfIndDS)
|
||||
F USROPN
|
||||
//=== Service Program Prototypes ==============================
|
||||
/INCLUDE ../Copy_Mbrs/SRV_MSG_P.RPGLE
|
||||
|
||||
//=== Service Program Prototypes ==============================
|
||||
/include copy_mbrs,Srv_Msg_P
|
||||
//=== Named hexadecimal constants for function keys ===========
|
||||
/INCLUDE ../Copy_Mbrs/AIDBYTES.RPGLE
|
||||
|
||||
//=== Named hexadecimal constants for function keys ===========
|
||||
/include copy_mbrs,##AIDBYTES
|
||||
//=== Display File Information Data Structure =================
|
||||
// Allows us to determine which function key was pressed
|
||||
dcl-ds dfInfDS;
|
||||
Key char(1) pos(369);
|
||||
end-ds;
|
||||
//=== Display File Indicator Data Structure ===================
|
||||
// This is a "private" indicator area for the display file.
|
||||
dcl-ds dfIndDS len(99);
|
||||
SH_ERR ind pos(40);
|
||||
end-ds;
|
||||
|
||||
//=== Display File Information Data Structure =================
|
||||
// Allows us to determine which function key was pressed
|
||||
D dfInfDS DS
|
||||
D Key 369 369
|
||||
//=== Display File Indicator Data Structure ===================
|
||||
//=== Global Switches =========================================
|
||||
dcl-s SflMsgSnt ind;
|
||||
dcl-c COWSCOMEHOME const('0');
|
||||
|
||||
// This is a "private" indicator area for the display file.
|
||||
D dfIndDS ds 99
|
||||
D SH_ERR 40 40n
|
||||
//=== Work Fields =============================================
|
||||
dcl-s inx int(10);
|
||||
|
||||
|
||||
//=== Global Switches =========================================
|
||||
D SflMsgSnt s n
|
||||
D CowsComeHome c const('0')
|
||||
//=== Program Status Data Structure ===========================
|
||||
dcl-ds ProgStatus PSDS;
|
||||
PgmName *PROC;
|
||||
end-ds;
|
||||
|
||||
//=== Work Fields =============================================
|
||||
D inx s 10i 0
|
||||
//=============================================================
|
||||
// === Main Program Loop ======================================
|
||||
//=============================================================
|
||||
Init();
|
||||
SFT_KEYS='F3/F12=Exit';
|
||||
SH_Cnt = 2;
|
||||
SH_MSG = 'This is a fine pickle Ollie!';
|
||||
|
||||
//=== Program Status Data Structure ===========================
|
||||
D ProgStatus sds
|
||||
D PgmName *PROC
|
||||
dou COWSCOMEHOME;
|
||||
write SH_HDR;
|
||||
write SFT_FKEY;
|
||||
if SflMsgSnt = *on;
|
||||
write MSGCTL;
|
||||
endif;
|
||||
|
||||
/FREE
|
||||
//=============================================================
|
||||
// === Main Program Loop ======================================
|
||||
//=============================================================
|
||||
exsr init;
|
||||
SFT_KEYS='F3/F12=Exit';
|
||||
SH_Cnt = 2;
|
||||
SH_MSG = 'This is a fine pickle Ollie!';
|
||||
exfmt SH_HDR;
|
||||
SH_ERR = *off;
|
||||
|
||||
dou CowsComeHome;
|
||||
write SH_HDR;
|
||||
write SFT_FKEY;
|
||||
if SflMsgSnt = *on;
|
||||
write MSGCTL;
|
||||
endif;
|
||||
if key = F03 or Key = F12;
|
||||
CloseDownPgm();
|
||||
return;
|
||||
endif;
|
||||
|
||||
exfmt SH_HDR;
|
||||
SH_ERR = *off;
|
||||
if SH_MSG = ' ';
|
||||
SH_ERR = *ON; // Please enter a message
|
||||
iter;
|
||||
endif;
|
||||
|
||||
if key = F03 or Key = F12;
|
||||
exsr CloseDownPgm;
|
||||
return;
|
||||
endif;
|
||||
|
||||
if SH_MSG = ' ';
|
||||
SH_ERR = *ON; // Please enter a message
|
||||
iter;
|
||||
endif;
|
||||
|
||||
select;
|
||||
select;
|
||||
//-- Enter Key ---------------------------------------------
|
||||
when Key = Enter;
|
||||
when Key = Enter;
|
||||
|
||||
//--- F04 --------------------------------------------------
|
||||
when Key = F04;
|
||||
SflMsgSnt= SndSflMsg('CPF9898' : SH_MSG);
|
||||
iter;
|
||||
when Key = F04;
|
||||
SflMsgSnt= SndSflMsg('CPF9898' : SH_MSG);
|
||||
iter;
|
||||
|
||||
//--- F05 --------------------------------------------------
|
||||
when Key = F05;
|
||||
if SflMsgSnt = *on;
|
||||
SflMsgSnt = ClrMsgPgmQ(PgmName);
|
||||
write MSGCTL;
|
||||
iter;
|
||||
endif;
|
||||
when Key = F05;
|
||||
if SflMsgSnt = *on;
|
||||
SflMsgSnt = ClrMsgPgmQ(PgmName);
|
||||
write MSGCTL;
|
||||
iter;
|
||||
endif;
|
||||
|
||||
//--- F06 --------------------------------------------------
|
||||
when Key = F06;
|
||||
when Key = F06;
|
||||
|
||||
SndInfMsg(SH_MSG);
|
||||
iter;
|
||||
SndInfMsg(SH_MSG);
|
||||
iter;
|
||||
|
||||
//--- F07 --------------------------------------------------
|
||||
when Key = F07;
|
||||
if SH_CNT = 0;
|
||||
SndEscMsg(SH_MSG);
|
||||
else;
|
||||
SndEscMsg(SH_MSG : SH_CNT);
|
||||
endif;
|
||||
iter;
|
||||
when Key = F07;
|
||||
if SH_CNT = 0;
|
||||
SndEscMsg(SH_MSG);
|
||||
else;
|
||||
SndEscMsg(SH_MSG : SH_CNT);
|
||||
endif;
|
||||
iter;
|
||||
|
||||
//--- F08 --------------------------------------------------
|
||||
when Key = F08;
|
||||
JobLogMsg(SH_MSG);
|
||||
iter;
|
||||
when Key = F08;
|
||||
JobLogMsg(SH_MSG);
|
||||
iter;
|
||||
other;
|
||||
|
||||
endsl;
|
||||
enddo;
|
||||
endsl;
|
||||
enddo;
|
||||
|
||||
//=============================================================
|
||||
//=== End of Main Program Loop ================================
|
||||
//=============================================================
|
||||
//=============================================================
|
||||
//=== End of Main Program Loop ================================
|
||||
//=============================================================
|
||||
|
||||
//=== CloseDownPgm ============================================
|
||||
// Things to do before we issue a return to the caller
|
||||
Dcl-Proc CloseDownPgm;
|
||||
*inlr = *on;
|
||||
close SRV_MSGTD;
|
||||
End-Proc;
|
||||
|
||||
//=== CloseDownPgm ============================================
|
||||
// Things to do before we issue a return to the caller
|
||||
begsr CloseDownPgm;
|
||||
*inlr = *on;
|
||||
close SRV_MSGTD;
|
||||
endsr;
|
||||
//=== Init ====================================================
|
||||
Dcl-Proc Init;
|
||||
MSGPGMQ = PgmName;
|
||||
SH_PGM = PgmName;
|
||||
if not %open(SRV_MSGTD);
|
||||
open SRV_MSGTD;
|
||||
endif;
|
||||
End-Proc;
|
||||
|
||||
//=== Init ====================================================
|
||||
begsr Init;
|
||||
MSGPGMQ = PgmName;
|
||||
SH_PGM = PgmName;
|
||||
if not %open(SRV_MSGTD);
|
||||
open SRV_MSGTD;
|
||||
endif;
|
||||
endsr;
|
||||
//=============================================================
|
||||
// S u b P r o c e d u r e s
|
||||
//=============================================================
|
||||
//=== SndSflMsg ===============================================
|
||||
// Send a message to the Error Subfile
|
||||
// Returns: *ON
|
||||
// Parameter: ErrMsgId => Msg Id to Send
|
||||
// Parameter: ErrMsgData => Optional Error Message Data
|
||||
// Parameter: ErrMsgFile => Optional Error Message File
|
||||
// Defaults to CUSTMSGF
|
||||
//------------------------------------------------------------
|
||||
dcl-proc SndSflMsg;
|
||||
dcl-pi SndSflMsg ind;
|
||||
ErrMsgId char(7) const;
|
||||
ErrMsgData char(80) const options(*nopass:*varsize);
|
||||
ErrMsgFile char(10) const options(*nopass);
|
||||
end-pi;
|
||||
|
||||
//=============================================================
|
||||
// S u b P r o c e d u r e s
|
||||
//=============================================================
|
||||
// Local fields
|
||||
dcl-s retField ind;
|
||||
dcl-s wkMsgId char(7);
|
||||
dcl-s wkMsgFile char(10);
|
||||
dcl-s wkMsgData varchar(512);
|
||||
|
||||
//=== SndSflMsg ===============================================
|
||||
// Send a message to the Error Subfile
|
||||
// Returns: *ON
|
||||
// Parameter: ErrMsgId => Msg Id to Send
|
||||
// Parameter: ErrMsgData => Optional Error Message Data
|
||||
// Parameter: ErrMsgFile => Optional Error Message File
|
||||
// Defaults to CUSTMSGF
|
||||
//------------------------------------------------------------
|
||||
/END-FREE
|
||||
P SndSflMsg B
|
||||
D SndSflMsg PI N
|
||||
D ErrMsgId 7A CONST
|
||||
D ErrMsgData 80A CONST
|
||||
D OPTIONS(*NOPASS:*VARSIZE)
|
||||
D ErrMsgFile 10A CONST
|
||||
D OPTIONS(*NOPASS)
|
||||
|
||||
// Local fields
|
||||
D retField S N
|
||||
D wkMsgId s 7a
|
||||
D wkMsgFile s 10a
|
||||
D wkMsgData s 512a varying
|
||||
|
||||
/FREE
|
||||
if %parms >2;
|
||||
wkMsgFile = ErrMsgFile;
|
||||
else;
|
||||
wkMsgFile = 'QCPFMSG';
|
||||
ENDIF;
|
||||
if %parms > 1;
|
||||
wkMsgData = ErrMsgData;
|
||||
else;
|
||||
wkMsgData = ' ';
|
||||
ENDIF;
|
||||
wkMsgId = ErrMsgId;
|
||||
SNDMSGPGMQ(PgmName:
|
||||
wkMsgid:
|
||||
if %parms >2;
|
||||
wkMsgFile = ErrMsgFile;
|
||||
else;
|
||||
wkMsgFile = 'QCPFMSG';
|
||||
ENDIF;
|
||||
if %parms > 1;
|
||||
wkMsgData = ErrMsgData;
|
||||
else;
|
||||
wkMsgData = ' ';
|
||||
ENDIF;
|
||||
wkMsgId = ErrMsgId;
|
||||
SndMsgPgmQ(PgmName:
|
||||
wkMsgId:
|
||||
wkMsgFile:
|
||||
wkMsgData);
|
||||
|
||||
retField = *on;
|
||||
RETURN retField;
|
||||
|
||||
/END-FREE
|
||||
P SndSflMsg E
|
||||
|
||||
retField = *on;
|
||||
RETURN retField;
|
||||
|
||||
end-proc;
|
||||
|
||||
@ -3,7 +3,7 @@
|
||||
// writing them to file RNUM.
|
||||
ctl-opt DftActGrp(*NO) ActGrp(*CALLER) option(*nodebugio: *srcstmt)
|
||||
BndDir('UTIL_BND');
|
||||
/COPY copy_mbrs,srv_rand_p
|
||||
/COPY ../Copy_Mbrs/SRV_RAND_P.RPGLE
|
||||
exec sql set option datfmt=*iso,
|
||||
commit=*none,
|
||||
closqlcsr=*endmod;
|
||||
|
||||
@ -9,7 +9,8 @@
|
||||
|
||||
ctl-opt nomain
|
||||
bnddir('UTIL_BND')
|
||||
option(*NoDebugIo: *srcstmt);
|
||||
option(*NoDebugIo: *srcstmt)
|
||||
;
|
||||
|
||||
//=== SQLProblem ===============================================
|
||||
// For those "Never should happen" SQL errors.
|
||||
@ -21,7 +22,7 @@ dcl-proc SQLProblem export;
|
||||
piSQLDebug varchar(200) const;
|
||||
end-pi;
|
||||
|
||||
/include copy_mbrs,Srv_Msg_P
|
||||
/include ../Copy_Mbrs/SRV_MSG_P.RPGLE
|
||||
|
||||
//--- Local Variables ---------------------------------
|
||||
dcl-s myDebugMsg varchar(512); //Max CPF9898 supports
|
||||
|
||||
@ -1,45 +1,48 @@
|
||||
//==============================================================
|
||||
//=== SRV_STR service program contains procedures working
|
||||
//=== with strings
|
||||
//==============================================================
|
||||
// CRTRPGMOD MODULE(SRV_STR)
|
||||
// CRTSRVPGM SRVPGM(SRV_STR) EXPORT(*ALL)
|
||||
// ADDBNDDIRE BNDDIR(UTIL_BND) OBJ((SRV_STR *SRVPGM *DEFER))
|
||||
**free
|
||||
//==============================================================
|
||||
//=== SRV_STR service program contains procedures working
|
||||
//=== with fixed length strings
|
||||
//==============================================================
|
||||
// CRTRPGMOD MODULE(SRV_STR)
|
||||
// CRTSRVPGM SRVPGM(SRV_STR) EXPORT(*ALL)
|
||||
// ADDBNDDIRE BNDDIR(UTIL_BND) OBJ((SRV_STR *SRVPGM *DEFER))
|
||||
|
||||
//=== CenterStr ================================================
|
||||
// Return the centered string. The input string is normally
|
||||
// fixed length and RPG will promote it to varying on the
|
||||
// call. A varying string is returned which RPG will reset
|
||||
// to fixed if needed.
|
||||
// It will also execute with a varying string input but the
|
||||
// result may not be what you expect.
|
||||
//
|
||||
// Conceptual call:
|
||||
//=================
|
||||
// H BndDir('UTIL_BND')
|
||||
// /include copy_mbrs,Srv_Str_P
|
||||
// d Head S 20A inz('Inquiry')
|
||||
// Head = CenterStr(Head);
|
||||
// Notes:
|
||||
// CenterStr is small, but it is convenient.
|
||||
// Could add left and right justify, but...
|
||||
// Left justify is simple in RPG:
|
||||
// str = %trim(str);
|
||||
// Right justify is also simple:
|
||||
// evalr str = %trim(str);
|
||||
//=== CenterStr ================================================
|
||||
// Return the centered string. The input string is normally
|
||||
// fixed length and RPG will promote it to varying on the
|
||||
// call. A varying string is returned which RPG will reset
|
||||
// to fixed.
|
||||
|
||||
h nomain option(*NoDebugIo: *srcstmt)
|
||||
/include copy_mbrs,SRV_STR_P
|
||||
p CenterStr b export
|
||||
d CenterStr pi 256a varying
|
||||
d InStr 256a varying const
|
||||
d
|
||||
d blanks s 256a varying inz
|
||||
d trimInStr s 256a varying
|
||||
/free
|
||||
trimInStr = %trim(InStr);
|
||||
// Set length to materialize required leading blanks.
|
||||
%len(blanks) = %int((%len(inStr) - %len(trimInStr))/2);
|
||||
return blanks + trimInStr;
|
||||
/end-free
|
||||
p CenterStr e
|
||||
// **********************************************************
|
||||
// *** It will also execute with a varying string input ***
|
||||
// *** but the result probably wont't be what you expect. ***
|
||||
// *** So don't use it on a varchar string. ***
|
||||
// **********************************************************
|
||||
|
||||
// Conceptual call:
|
||||
//=================
|
||||
// H BndDir('UTIL_BND')
|
||||
// /include ../Copy_Mbrs,SRV_STR_P.RPGLE
|
||||
// d Head S 20A inz('Inquiry')
|
||||
// Head = CenterStr(Head);
|
||||
// Notes:
|
||||
// CenterStr is small, but it is convenient.
|
||||
// Could add left and right justify, but...
|
||||
// Left justify is simple in RPG:
|
||||
// str = %trim(str);
|
||||
// Right justify is also simple:
|
||||
// evalr str = %trim(str);
|
||||
|
||||
ctl-opt nomain option(*nodebugio: *srcstmt);
|
||||
/INCLUDE ../Copy_Mbrs/SRV_STR_P.RPGLE
|
||||
dcl-proc CenterStr export;
|
||||
dcl-pi CenterStr varchar(256);
|
||||
InStr varchar(256) const;
|
||||
end-pi;
|
||||
dcl-s blanks varchar(256) inz;
|
||||
dcl-s trimInStr varchar(256);
|
||||
trimInStr = %trim(InStr);
|
||||
// Set length to materialize required leading blanks.
|
||||
%len(blanks) = %int((%len(InStr) - %len(trimInStr))/2);
|
||||
return blanks + trimInStr;
|
||||
end-proc;
|
||||
|
||||
@ -1,78 +1,82 @@
|
||||
**free
|
||||
// === Test the SRV_STR service program========================
|
||||
|
||||
//=== Test the SRV_STR service program========================
|
||||
ctl-opt dftactgrp(*no) actgrp(*caller) option(*nodebugio: *srcstmt)
|
||||
bnddir('UTIL_BND');
|
||||
|
||||
H DftActGrp(*NO) ActGrp(*CALLER) option(*nodebugio: *srcstmt)
|
||||
H BndDir('UTIL_BND')
|
||||
dcl-s X1 char(1) inz('1');
|
||||
dcl-s X2 char(2) inz('2 ');
|
||||
dcl-s X3 char(3) inz('3 ');
|
||||
dcl-s X4 char(4) inz('4 ');
|
||||
dcl-s X5 char(5) inz('5 ');
|
||||
dcl-s X6 char(6) inz('6 ');
|
||||
dcl-s X7 char(7) inz(' 7 ');
|
||||
dcl-s X8 char(8) inz(' 8 ');
|
||||
dcl-s X0 char(5) inz(' '); // all blank
|
||||
dcl-s XL char(20) inz(' 20-chars'); // longer
|
||||
dcl-s XM char(21) inz(' 21-Chars'); // longer
|
||||
dcl-s XV varchar(20) inz('20-vary'); // Varying-fails
|
||||
dcl-s XW varchar(21) inz(' 21-vary '); // Varying-fails
|
||||
|
||||
d X1 S 1A inz('A') One char
|
||||
d X2 S 2A inz('B ') Two char
|
||||
d X3 S 4A inz('C ') 3 blanks
|
||||
d X4 S 5A inz('D ') 4 blanks
|
||||
d X5 S 6A inz('E ') 5 blanks
|
||||
d X0 S 5A inz(' ') all blank
|
||||
d Xl S 20A inz('20-chars ') longer
|
||||
d Xm S 21A inz(' 21-Chars') longer
|
||||
d Xv S 24 inz(' 24-varying ') varying Varying-note result
|
||||
d l1 S 20A inz(' ABCDE ') Left align
|
||||
d l2 S 20A inz('Left already ') Left align
|
||||
d r1 S 20A inz('abc') Right align
|
||||
d r2 S 20A inz(' defgh ') Right align
|
||||
/include copy_mbrs,SRV_STR_P
|
||||
/free
|
||||
x1 = tst(x1);
|
||||
dsply ('-' + x1 + '-');
|
||||
// dcl-s l1 char(20) inz(' ABCDE '); // Left align
|
||||
// dcl-s l2 char(20) inz('Left already '); // Left align
|
||||
// dcl-s r1 char(20) inz('abc'); // Right align
|
||||
// dcl-s r2 char(20) inz(' defgh '); // Right align
|
||||
|
||||
x2 = tst(x2);
|
||||
dsply ('-' + x2 + '-');
|
||||
/include ../Copy_Mbrs/SRV_STR_P.RPGLE
|
||||
/include ../Copy_Mbrs/PRT_P.RPGLE
|
||||
|
||||
x3 = tst(x3);
|
||||
dsply ('-' + x3 + '-');
|
||||
PRT('*** Testing SRV_STR Service Program ***' : '*H1');
|
||||
CenterIt(X1);
|
||||
CenterIt(X2);
|
||||
CenterIt(X3);
|
||||
CenterIt(X4);
|
||||
CenterIt(X5);
|
||||
|
||||
x4=tst(x4);
|
||||
dsply ('-' + x4 + '-');
|
||||
CenterIt(X6);
|
||||
CenterIt(X7);
|
||||
CenterIt(X8);
|
||||
|
||||
x5 = tst(x5);
|
||||
dsply ('-' + x5 + '-');
|
||||
CenterIt(X0);
|
||||
|
||||
x0 = tst(x0);
|
||||
dsply ('-' + x0 + '-');
|
||||
CenterIt(XL);
|
||||
|
||||
xl = tst(xl);
|
||||
dsply ('-' + xl + '-');
|
||||
CenterIt(XM);
|
||||
|
||||
xm = tst(xm);
|
||||
dsply ('-' + xm + '-');
|
||||
CenterIt(XV);
|
||||
CenterIt(XW);
|
||||
|
||||
xv = tst(xv);
|
||||
dsply ('-' + xv + '-');
|
||||
// dsply ('---- Left Justify ---');
|
||||
// dsply ('-' + l1 + '-');
|
||||
// l1 =%trim(l1);
|
||||
// dsply ('-' + l1 + '-');
|
||||
|
||||
dsply ('---- Left Justify ---');
|
||||
dsply ('-' + l1 + '-');
|
||||
l1 =%trim(l1);
|
||||
dsply ('-' + l1 + '-');
|
||||
// dsply ('-' + l2 + '-');
|
||||
// l2 =%trim(l2);
|
||||
// dsply ('-' + l2 + '-');
|
||||
|
||||
dsply ('-' + l2 + '-');
|
||||
l2 =%trim(l2);
|
||||
dsply ('-' + l2 + '-');
|
||||
// dsply ('---- Right Justify ---');
|
||||
// dsply ('-' + r1 + '-');
|
||||
// evalr r1 = %trim(r1);
|
||||
// dsply ('-' + r1 + '-');
|
||||
|
||||
dsply ('---- Right Justify ---');
|
||||
dsply ('-' + r1 + '-');
|
||||
evalr r1 = %trim(r1);
|
||||
dsply ('-' + r1 + '-');
|
||||
// dsply ('-' + r2 + '-');
|
||||
// evalr r2 = %trim(r2);
|
||||
// dsply ('-' + r2 + '-');
|
||||
|
||||
dsply ('-' + r2 + '-');
|
||||
evalr r2 = %trim(r2);
|
||||
dsply ('-' + r2 + '-');
|
||||
PRT(' ' :'*CLOSE');
|
||||
*inlr = *on;
|
||||
return;
|
||||
|
||||
*inlr = *on;
|
||||
return;
|
||||
/END-FREE
|
||||
p tst b
|
||||
d tst pi 50a varying
|
||||
d II 50a varying const
|
||||
/free
|
||||
dsply '---------------------';
|
||||
DSPLY ('-' + ii + '-');
|
||||
return CenterStr(ii);
|
||||
/end-free
|
||||
p tst e
|
||||
dcl-proc CenterIt;
|
||||
dcl-pi CenterIt;
|
||||
II varchar(50) const;
|
||||
end-pi;
|
||||
dcl-s wk varchar(50) inz;
|
||||
wk = CenterStr(II);
|
||||
%len(wk) = %len(II);
|
||||
PRT('-1234567890123456789012345');
|
||||
PRT('-' + II + '-');
|
||||
PRT('-' + wk + '-');
|
||||
return;
|
||||
end-proc;
|
||||
|
||||
@ -40,21 +40,22 @@
|
||||
//=============================================================
|
||||
|
||||
ctl-opt dftactgrp(*no) actgrp(*caller) option(*nodebugio: *srcstmt)
|
||||
bnddir('UTIL_BND':'ADRVAL_BND') main(main);
|
||||
bnddir('UTIL_BND': 'ADRVAL_BND': 'SRV_BASE36') main(Main);
|
||||
|
||||
//=== Display File =============================================
|
||||
dcl-f MTNCUSTD workstn infds(dfinfds) indds(dfindds) usropn;
|
||||
dcl-f MTNCUSTD workstn infds(dfInfDS) indds(dfIndDS) usropn;
|
||||
|
||||
//=== Service Program Prototypes ===============================
|
||||
/include copy_mbrs,Srv_Msg_P
|
||||
/include copy_mbrs,Srv_Str_P
|
||||
/include usps,USAdrVal_p
|
||||
/include ../Copy_Mbrs/SRV_MSG_P.RPGLE
|
||||
/include ../Copy_Mbrs/SRV_STR_P.RPGLE
|
||||
/include ../Copy_Mbrs/USADRVAL_P.RPGLE
|
||||
/include ../Copy_Mbrs/BASE36_P.RPGLE
|
||||
|
||||
//=== Named hexadecimal constants for function keys ============
|
||||
/include copy_mbrs,##AIDBYTES
|
||||
/include ../Copy_Mbrs/AIDBYTES.RPGLE
|
||||
|
||||
//=== USAdrVal Paramter DS ======================================
|
||||
/include usps,USAdrvalDS
|
||||
/include ../Copy_Mbrs/USADRVALDS.RPGLE
|
||||
dcl-ds AdrIn likeds (USAdrValDS);
|
||||
dcl-ds AdrOut likeds (USAdrValDS);
|
||||
|
||||
@ -133,12 +134,9 @@ dcl-s NoErrors ind;
|
||||
// === Global Fields ===========================================
|
||||
dcl-s Orig_CHGTIME timestamp;
|
||||
|
||||
//=== Work Fields ==============================================
|
||||
dcl-s wkInt int(10);
|
||||
dcl-s wkMsgText varchar(256);
|
||||
|
||||
// === Next available customer number ==========================
|
||||
dcl-s Cust_Next packed(4) dtaara('CUSTNEXT');
|
||||
dcl-s Cust_Next char(4) dtaara('CUSTNEXT');
|
||||
dcl-s varCust_Next varchar(4);
|
||||
|
||||
//=== Program Status Data Structure ============================
|
||||
dcl-ds ProgStatus PSDS;
|
||||
@ -617,7 +615,9 @@ dcl-proc Main;
|
||||
begsr AddRecd;
|
||||
NoErrors = *on;
|
||||
in *LOCK Cust_Next;
|
||||
Cust_Next += 1;
|
||||
varCust_Next = Cust_Next;
|
||||
varCust_Next = BASE36ADD(varCust_Next);
|
||||
Cust_Next = varCust_Next;
|
||||
Out Cust_Next;
|
||||
CUSTID= Cust_Next;
|
||||
CHGTIME = %timestamp();
|
||||
@ -702,7 +702,7 @@ dcl-proc Main;
|
||||
write MSGCTL;
|
||||
endif;
|
||||
|
||||
exfmt Details;
|
||||
exfmt DETAILS;
|
||||
|
||||
// Clear most display file indicators
|
||||
clear dfIndClr;
|
||||
|
||||
@ -32,4 +32,4 @@ If ADDRESS2 is non blank, then you have a valid address. Otherwise find a descr
|
||||
|
||||
### USADRVAL_T
|
||||
|
||||
A program to exercise USADRVAL with a some addresses, writing the input and output side by side to QSYSPRT.
|
||||
A program to exercise USADRVAL with some addresses, writing the input and output side by side to QSYSPRT.
|
||||
|
||||
@ -27,10 +27,10 @@ ctl-opt
|
||||
option(*nodebugio: *srcstmt)
|
||||
;
|
||||
//=== Prototypes =====================================================
|
||||
/copy copy_mbrs,Srv_SQL_P
|
||||
/copy ../Copy_Mbrs/SRV_SQL_P.RPGLE
|
||||
|
||||
//=== Parameter Data Structure Template ==============================
|
||||
/copy copy_mbrs,USAdrValDS
|
||||
/copy ../Copy_Mbrs/USADRVALDS.RPGLE
|
||||
|
||||
// === Data area containing your USPS supplied User id. ==============
|
||||
// (The USPS supplied USER ID length is not clear, so I made it
|
||||
|
||||
@ -7,9 +7,9 @@ ctl-opt debug option(*nodebugio: *srcstmt)
|
||||
// Program to exercise USADRVAL.
|
||||
// Results are printed to QSYSPPRT.
|
||||
//====================================================================
|
||||
/copy copy_mbrs,USAdrValDS
|
||||
/copy copy_mbrs,Srv_Msg_P
|
||||
/copy copy_mbrs,USAdrVal_p
|
||||
/copy ../Copy_Mbrs/USADRVALDS.RPGLE
|
||||
/copy ../Copy_Mbrs/SRV_MSG_P.RPGLE
|
||||
/copy ../Copy_Mbrs/USADRVAL_P.RPGLE
|
||||
|
||||
dcl-f qsysprt printer(132) usropn;
|
||||
|
||||
|
||||
BIN
image-1.png
Normal file
BIN
image-1.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 13 KiB |
BIN
image-2.png
Normal file
BIN
image-2.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 8.6 KiB |
Loading…
x
Reference in New Issue
Block a user