SQL Programming Manual for TAL
Examples of Dynamic NonStop SQL Programs
HP NonStop SQL Programming Manual for TAL—527887-001
C-21
Detailed Dynamic SQL Program
Page 10 [1] $VOL1.S04.TALDYN 1991-10-15 13:42:28
request^invars
348. 000153 1 2 ! Request input value based on data type !
349. 000153 1 2 !***************************************************!
350. 000153 1 2
351. 000153 1 2 @param^ := sqlda.sqlvar[i].var^ptr; ! pointer to storage
for current
352. 000166 1 2 ! parameter
353. 000166 1 2 maxlen := sqlda.sqlvar[i].data^len;
354. 000201 1 2
355. 000201 1 2 CASE sqlda.sqlvar[i].data^type OF
356. 000214 1 2 BEGIN
357. 000214 1 3 _SQLDT_ASCII_F,
358. 000214 1 3 _SQLDT_ASCII_F_UP ->
359. 000214 1 3 PUT^STR ("Please enter max ");
360. 000232 1 3 PUT^INT^MID (maxlen);
361. 000252 1 3 PUT^STR^MID (" characters");
362. 000266 1 3 if namelen then
363. 000270 1 3 begin
364. 000270 1 4 PUT^STR^MID (" for " & param^name for namelen);
365. 000311 1 4 end;
366. 000311 1 3 PUT^STR^MID (": ");
367. 000327 1 3 PRINT^LINE;
368. 000342 1 3
369. 000342 1 3 param^.v^char ':=' " " & param^.v^char for maxlen-1;
370. 000361 1 3 call READX(term,param^.v^char,maxlen);
371. 000372 1 3
372. 000372 1 3 IF (sqlda.sqlvar[i].null^info = -1) AND
373. 000372 1 3 (param^.v^char = "?") THEN
374. 000414 1 3 begin ! got a null value; set null indicator
375. 000414 1 4 @ind^ := sqlda.sqlvar[i].ind^ptr;
376. 000427 1 4 ind^ := -1;
377. 000432 1 4 end;
378. 000432 1 3
379. 000432 1 3 _SQLDT_ASCII_V,
380. 000433 1 3 _SQLDT_ASCII_V_UP ->
381. 000433 1 3 PUT^STR ("Please enter max ");
382. 000451 1 3 PUT^INT^MID (maxlen);
383. 000471 1 3 PUT^STR^MID(" characters");
384. 000505 1 3 if namelen then
385. 000507 1 3 begin
386. 000507 1 4 PUT^STR^MID (" for " & param^name for namelen);
387. 000530 1 4 end;
388. 000530 1 3 PUT^STR^MID (": ");
389. 000544 1 3 PRINT^LINE;
390. 000557 1 3
391. 000557 1 3 callREADX(term,param^.v^varchar.val,maxlen, param^
.v^varchar.len);
392. 000574 1 3
393. 000574 1 3 IF (sqlda.sqlvar[i].null^info = -1) AND
394. 000574 1 3 (param^.v^varchar.val = "?") THEN
395. 000614 1 3 begin ! got a null value; set null indicator
396. 000614 1 4 @ind^ := sqlda.sqlvar[i].ind^ptr;
397. 000627 1 4 ind^ := -1;
398. 000634 1 4 end;
399. 000634 1 3
400. 000634 1 3 _SQLDT_16BIT_S,
401. 000635 1 3 _SQLDT_16BIT_U,
402. 000635 1 3 _SQLDT_32BIT_S,
403. 000635 1 3 _SQLDT_32BIT_U ->
404. 000635 1 3 PUT^STR ("Please enter a numeric value");










