SQL Programming Manual for TAL

Examples of Static NonStop SQL Programs
HP NonStop SQL Programming Manual for TAL527887-001
B-20
Date-Time Program
Page 6 [1] $VOL1.S04.TALDT 1991-10-15 13:41:07
265. 000411 1 2 END;
266. 000411 1 1
267. 000411 1 1 IF SQLCODE = 100 THEN
268. 000414 1 1 EXEC SQL COMMIT WORK;
269. 000456 1 1
270. 000456 1 1 END; -- print^report
271. 000000 0 0
272. 000000 0 0
273. 000000 0 0 -- FETCH^AND^DISPLAY^OLD does not access WAIT^TIME, while
274. 000000 0 0 -- FETCH^AND^DISPLAY^NEW accesses and reports WAIT^TIME.
275. 000000 0 0
276. 000000 0 0 PROC FETCH^AND^DISPLAY^OLD;
277. 000000 1 0 BEGIN
278. 000000 1 1 EXEC SQL
279. 000000 1 1 FETCH OLD_DATES_CURSOR INTO
280. 000000 1 1 :OLD^PROJECTS^REC.PROJECT^NAME,
281. 000000 1 1 :OLD^PROJECTS^REC.START^DATE
282. 000000 1 1 TYPE AS DATETIME YEAR TO MINUTE,
283. 000000 1 1 :OLD^PROJECTS^REC.END^DATE
284. 000000 1 1 TYPE AS DATETIME YEAR TO MINUTE;
285. 000067 1 1
286. 000067 1 1 IF (SQLCODE <> 100) AND (SQLCODE >= 0) THEN
287. 000075 1 1 BEGIN
288. 000075 1 2 SBUF ':=' "PROJECT NAME: "->@BUF^END;
289. 000106 1 2 BUF^END ':=' OLD^PROJECTS^REC.PROJECT^NAME FOR 10
->@BUF^END;
290. 000114 1 2 CALL WRITE(HOME^TERM^NUM,IBUF,@BUF^END '-' @SBUF);
291. 000126 1 2 CALL WRITE(HOME^TERM^NUM,IBUF,0);
292. 000136 1 2
293. 000136 1 2 SBUF ':=' "START DATE: "->@BUF^END;
294. 000147 1 2 BUF^END ':=' OLD^PROJECTS^REC.START^DATE FOR 16
->@BUF^END;
295. 000156 1 2 CALL WRITE(HOME^TERM^NUM,IBUF,@BUF^END '-' @SBUF);
296. 000170 1 2 CALL WRITE(HOME^TERM^NUM,IBUF,0);
297. 000200 1 2
298. 000200 1 2 SBUF ':=' "END DATE: "->@BUF^END;
299. 000224 1 2 BUF^END ':=' OLD^PROJECTS^REC.END^DATE FOR 16
->@BUF^END;
300. 000233 1 2 CALL WRITE(HOME^TERM^NUM,IBUF,@BUF^END '-' @SBUF);
301. 000245 1 2 CALL WRITE(HOME^TERM^NUM,IBUF,0);
302. 000255 1 2
303. 000255 1 2 CALL WRITE(HOME^TERM^NUM,IBUF,0);
304. 000265 1 2
305. 000265 1 2 END;
306. 000265 1 1 END; -- fetch^and^display^old
307. 000000 0 0
308. 000000 0 0
309. 000000 0 0 PROC FETCH^AND^DISPLAY^NEW;
310. 000000 1 0 BEGIN
311. 000000 1 1 EXEC SQL
312. 000000 1 1 FETCH NEW_DATES_CURSOR INTO
313. 000000 1 1 :NEW^PROJECTS^REC.PROJECT^NAME,
314. 000000 1 1 :NEW^PROJECTS^REC.START^DATE
315. 000000 1 1 TYPE AS DATETIME YEAR TO MINUTE,
316. 000000 1 1 :NEW^PROJECTS^REC.END^DATE
317. 000000 1 1 TYPE AS DATETIME YEAR TO MINUTE,
318. 000000 1 1 :NEW^PROJECTS^REC.WAIT^TIME
319. 000000 1 1 TYPE AS INTERVAL DAY(2);
320. 000076 1 1
321. 000076 1 1 IF (SQLCODE <> 100) AND (SQLCODE >= 0) THEN