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

Function make_ready

src/gpre/c_cxx.cpp:3806–3871  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

3804//
3805
3806static void make_ready(const gpre_dbb* db,
3807 const TEXT* filename,
3808 const TEXT* vector, USHORT column,
3809 const gpre_req* request)
3810{
3811 TEXT s1[32], s2[32];
3812
3813 if (request)
3814 {
3815 sprintf(s1, "isc_%dl", request->req_ident);
3816
3817 if (request->req_flags & REQ_extend_dpb)
3818 sprintf(s2, "isc_%dp", request->req_ident);
3819 else
3820 sprintf(s2, "isc_%d", request->req_ident);
3821
3822 // if the dpb needs to be extended at runtime to include items
3823 // in host variables, do so here; this assumes that there is
3824 // always a request generated for runtime variables
3825
3826 if (request->req_flags & REQ_extend_dpb)
3827 {
3828 if (request->req_length)
3829 printa(column, "%s = isc_%d;", s2, request->req_ident);
3830 else
3831 printa(column, "%s = (char*) 0;", s2);
3832
3833 printa(column,
3834 "isc_expand_dpb (&%s, &%s, isc_dpb_user_name, %s, isc_dpb_password, %s, isc_dpb_sql_role_name, %s, isc_dpb_lc_messages, %s, isc_dpb_lc_ctype, %s, 0);",
3835 s2, s1, db->dbb_r_user ? db->dbb_r_user : "(char*) 0",
3836 db->dbb_r_password ? db->dbb_r_password : "(char*) 0",
3837 db->dbb_r_sql_role ? db->dbb_r_sql_role : "(char*) 0",
3838 db->dbb_r_lc_messages ? db->dbb_r_lc_messages : "(char*) 0",
3839 db->dbb_r_lc_ctype ? db->dbb_r_lc_ctype : "(char*) 0");
3840 }
3841 }
3842
3843 // generate the attach database itself
3844
3845 const TEXT* dpb_size_ptr = "(short) 0";
3846 const TEXT* dpb_ptr = "(char*) 0";
3847
3848 align(column);
3849 if (filename)
3850 fprintf(gpreGlob.out_file, "isc_attach_database (%s, 0, %s, &%s, %s, %s);",
3851 vector, filename, db->dbb_name->sym_string,
3852 (request ? s1 : dpb_size_ptr), (request ? s2 : dpb_ptr));
3853 else
3854 fprintf(gpreGlob.out_file,
3855 "isc_attach_database (%s, 0, \"%s\", &%s, %s, %s);",
3856 vector, db->dbb_filename, db->dbb_name->sym_string,
3857 (request ? s1 : dpb_size_ptr), (request ? s2 : dpb_ptr));
3858
3859 // if the dpb was extended, free it here
3860
3861 if (request && request->req_flags & REQ_extend_dpb)
3862 {
3863 if (request->req_length)

Callers 3

gen_readyFunction · 0.70
gen_t_startFunction · 0.70
t_start_autoFunction · 0.70

Calls 2

printaFunction · 0.70
alignFunction · 0.70

Tested by

no test coverage detected