MCPcopy Create free account
hub / github.com/FirebirdSQL/firebird / gen_create_database

Function gen_create_database

src/gpre/languages/cob.cpp:1332–1473  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1330//
1331
1332static 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);

Callers 1

COB_actionFunction · 0.70

Calls 5

COB_print_bufferFunction · 0.85
status_vectorFunction · 0.70
printaFunction · 0.70
gen_ddlFunction · 0.70
set_sqlcodeFunction · 0.70

Tested by

no test coverage detected