| 1330 | // |
| 1331 | |
| 1332 | static void gen_create_database( const act* action) |
| 1333 | { |
| 1334 | TEXT s1[32], s1Tmp[32], s2[32], s2Tmp[32]; |
| 1335 | |
| 1336 | gpre_req* request = ((mdbb*) action->act_object)->mdbb_dpb_request; |
| 1337 | gpre_dbb* db = (gpre_dbb*) request->req_database; |
| 1338 | if (request) |
| 1339 | { |
| 1340 | sprintf(s1, "%s%dL", names[isc_b_pos], request->req_ident); |
| 1341 | if (request->req_flags & REQ_extend_dpb) |
| 1342 | sprintf(s2, "%s%dp", names[isc_b_pos], request->req_ident); |
| 1343 | else |
| 1344 | sprintf(s2, "%s%d", names[isc_b_pos], request->req_ident); |
| 1345 | |
| 1346 | // if the dpb needs to be extended at runtime to include items |
| 1347 | // in host variables, do so here; this assumes that there is |
| 1348 | // always a request generated for runtime variables |
| 1349 | |
| 1350 | if (request->req_flags & REQ_extend_dpb) |
| 1351 | { |
| 1352 | if (request->req_length) |
| 1353 | { |
| 1354 | sprintf(output_buffer, "%sMOVE %s%d to %s\n", |
| 1355 | names[COLUMN], names[isc_b_pos], request->req_ident, s2); |
| 1356 | } |
| 1357 | if (db->dbb_r_user) |
| 1358 | { |
| 1359 | sprintf(output_buffer, "%sCALL \"%s\" USING %s%s, %s%s, BY VALUE 28, %s %s, %s%" SIZEFORMAT "%s\n", |
| 1360 | names[COLUMN], |
| 1361 | ISC_MODIFY_DPB, |
| 1362 | BY_REF, s2, |
| 1363 | BY_REF, s1, |
| 1364 | BY_DESC, db->dbb_r_user, |
| 1365 | BY_VALUE, strlen(db->dbb_r_user) - 2, END_VALUE); |
| 1366 | COB_print_buffer(output_buffer, true); |
| 1367 | } |
| 1368 | if (db->dbb_r_password) |
| 1369 | { |
| 1370 | sprintf(output_buffer, "%sCALL \"%s\" USING %s%s, %s%s, BY VALUE 29, %s %s, %s%" SIZEFORMAT "%s\n", |
| 1371 | names[COLUMN], |
| 1372 | ISC_MODIFY_DPB, |
| 1373 | BY_REF, s2, |
| 1374 | BY_REF, s1, |
| 1375 | BY_DESC, db->dbb_r_password, |
| 1376 | BY_VALUE, strlen(db->dbb_r_password) - 2, END_VALUE); |
| 1377 | COB_print_buffer(output_buffer, true); |
| 1378 | } |
| 1379 | |
| 1380 | // Process Role Name, isc_dpb_sql_role_name/60 |
| 1381 | if (db->dbb_r_sql_role) |
| 1382 | { |
| 1383 | sprintf(output_buffer, "%sCALL \"%s\" USING %s%s, %s%s, BY VALUE 60, %s %s, %s%" SIZEFORMAT "%s\n", |
| 1384 | names[COLUMN], |
| 1385 | ISC_MODIFY_DPB, |
| 1386 | BY_REF, s2, |
| 1387 | BY_REF, s1, |
| 1388 | BY_DESC, db->dbb_r_sql_role, |
| 1389 | BY_VALUE, strlen(db->dbb_r_sql_role) - 2, END_VALUE); |
no test coverage detected