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

Function make_ready

src/gpre/obj_cxx.cpp:3804–3869  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

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