| 3802 | // |
| 3803 | |
| 3804 | static 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) |
no test coverage detected