SQL Programming Manual for TAL

Examples of Static NonStop SQL Programs
HP NonStop SQL Programming Manual for TAL527887-001
B-18
Date-Time Program
Page 4 [1] $VOL1.S04.TALDT 1991-10-15 13:41:07
151. 000156 1 1 USER^PROJECTS^REC.END^DATE ':=' SBUF FOR NUM^READ;
152. 000164 1 1
153. 000164 1 1 SBUF ':=' "Wait time for the new project is set at 0
"->@BUF^END;
154. 000175 1 1 CALL WRITE(HOME^TERM^NUM,IBUF,@BUF^END '-' @SBUF);
155. 000214 1 1
156. 000214 1 1 USER^PROJECTS^REC.WAIT^TIME ':=' "00";
157. 000226 1 1
158. 000226 1 1 EXEC SQL
159. 000226 1 1 INSERT INTO =PROJECTS
160. 000226 1 1 (PROJECT_NAME, START_DATE, END_DATE,
161. 000226 1 1 WAIT_TIME)
162. 000226 1 1 VALUES
163. 000226 1 1 ( :USER^PROJECTS^REC.PROJECT^NAME,
164. 000226 1 1 :USER^PROJECTS^REC.START^DATE
165. 000226 1 1 TYPE AS DATETIME YEAR TO MINUTE,
166. 000226 1 1 :USER^PROJECTS^REC.END^DATE
167. 000226 1 1 TYPE AS DATETIME YEAR TO MINUTE,
168. 000226 1 1 :USER^PROJECTS^REC.WAIT^TIME
169. 000226 1 1 TYPE AS INTERVAL DAY(2) );
170. 000327 1 1
171. 000327 1 1 IF SQLCODE = 0 THEN
172. 000331 1 1 BEGIN
173. 000331 1 2 SBUF ':=' "***** RECORD INSERTED ***** "->@BUF^END;
174. 000342 1 2 CALL WRITE(HOME^TERM^NUM,IBUF,@BUF^END '-' @SBUF);
175. 000354 1 2 EXEC SQL COMMIT WORK;
176. 000422 1 2 END;
177. 000422 1 1
178. 000422 1 1
179. 000422 1 1 END; -- insert^project
180. 000000 0 0
181. 000000 0 0
182. 000000 0 0 PROC ADD^WAIT^TIME;
183. 000000 1 0 --
184. 000000 1 0 --"Wait time" is assumed to express a delay in starting the
185. 000000 1 0 -- project. The report function will add the wait time to
the
186. 000000 1 0 -- start and end dates and report the new dates. Here, we
187. 000000 1 0 -- simply update the wait time column in the database. The
188. 000000 1 0 -- database always stores the original dates.
189. 000000 1 0
190. 000000 1 0 BEGIN
191. 000000 1 1 EXEC SQL BEGIN WORK;
192. 000047 1 1
193. 000047 1 1 SBUF ':=' "Enter a project name of up to 10 characters:
"->@BUF^END;
194. 000060 1 1 CALL WRITEREAD(HOME^TERM^NUM,IBUF,@BUF^END '-' @SBUF,20,
NUM^READ);
195. 000073 1 1 USER^PROJECTS^REC.PROJECT^NAME ':=' SBUF FOR NUM^READ;
196. 000100 1 1
197. 000100 1 1 SBUF ':=' "Enter number of days of wait time to add: "
->@BUF^END;
198. 000111 1 1 CALL WRITEREAD(HOME^TERM^NUM,IBUF,@BUF^END '-' @SBUF,20,
NUM^READ);
199. 000124 1 1 USER^PROJECTS^REC.WAIT^TIME ':=' SBUF FOR NUM^READ;
200. 000132 1 1
201. 000132 1 1 EXEC SQL
202. 000132 1 1 UPDATE =PROJECTS
203. 000132 1 1 SET WAIT_TIME = WAIT_TIME
204. 000132 1 1 + :USER^PROJECTS^REC.WAIT^TIME TYPE AS INTERVAL DAY(2)
205. 000132 1 1 WHERE PROJECT_NAME = :USER^PROJECTS^REC.PROJECT^NAME;
206. 000232 1 1
207. 000232 1 1 IF SQLCODE = 0 THEN