Файл: Тенденции развития международной валютной системы.pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 25.04.2023

Просмотров: 166

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

if (limit ! NULL) thislimit(limit); if (count(thisar_where) 0 count(thisar_wherein) 0 count(thisar_like)) if (thisdb_debug) return thisdisplay_error("db_del_must_use_where");

return FALSE;

} sql this_delete(table, thisar_where, thisar_like, thisar_limit);

if (reset_data) this_reset_write();

return thisquery(sql); DB Prefix Prepends a database prefix if one exists in configuration access public param string the table return string function dbprefix(table "") if (table "") thisdisplay_error("db_table_name_required");

return thisdbprefix.table;

Track Aliases Used to track SQL statements written with aliased tables.

access private param string The table to inspect return string function _track_aliases(table) if (is_array(table)) foreach (table as t) this_track_aliases(t); return; Does the string contain a comma? If so, we need to separate the string into discreet statements if (strpos(table, ",") ! FALSE) return this_track_aliases(explode(",", table));

if a table alias is used we can recognize it by a space if (strpos(table, ) ! FALSE) if the alias is written with the AS keyword, remove it table preg_replace(" AS i", " ", table);

Grab the alias table trim(strrchr(table, ));

Store the alias, if it doesn"t already exist if ( ! in_array(table, thisar_aliased_tables)) thisar_aliased_tables table;

Compile the SELECT statement Generates a query string based on which functions were used.

Should not be called directly. The get() function calls it.

access private return string function _compile_select(select_override FALSE) Combine any cached components with the current statements this_merge_cache();

Write the portion of the query if (select_override ! FALSE) sql select_override;

else sql ( ! thisar_distinct) ? "SELECT ": "SELECT DISTINCT ";

if (count(thisar_select) 0) sql. "";

else { Cycle through the portion of the query and prep each column name.

The reason we protect identifiers here rather then in the select() function is because until the user calls the from() function we don"t know if there are aliases foreach (thisar_select as key val) thisar_select this_protect_identifiers(val);

sql. implode(", ", thisar_select);

Write the portion of the query if (count(thisar_from) 0) sql.;

sql. this_from_tables(thisar_from);

Write the portion of the query if (count(thisar_join) 0) sql.;

sql. implode(, thisar_join);

Write the portion of the query if (count(thisar_where) 0 OR count(thisar_like) 0) sql.; sql.; sql. implode(, thisar_where);

Write the portion of the query if (count(thisar_like) 0) if (count(thisar_where) 0) sql.; sql. implode(, thisar_like);

Write the portion of the query if (count(thisar_groupby) 0) sql.; sql. implode(", ", thisar_groupby);

Write the portion of the query if (count(thisar_having) 0) sql.; sql. implode(, thisar_having);

Write the portion of the query if (count(thisar_orderby) 0) sql.; sql. implode(", ", thisar_orderby);

if (thisar_order ! FALSE) sql. (thisar_order "desc") ? " DESC": " ASC"; } Write the portion of the query if (is_numeric(thisar_limit)) sql.; sql this_limit(sql, thisar_limit, thisar_offset);

return sql; Object to Array Takes an object as input and converts the class variables to array keyvals access public param object return array function _object_to_array(object) if ( ! is_object(object)) return object; array array(); foreach (get_object_vars(object) as key val) There are some built in keys we need to ignore for this conversion if ( ! is_object(val) ! is_array(val) key ! "_parent_name" key ! "_ci_scaffolding" key ! "_ci_scaff_table") array val;

return array; Start Cache Starts AR caching access public return void function start_cache() thisar_caching TRUE;

Stop Cache Stops AR caching access public return void function stop_cache() thisar_caching FALSE;

Flush Cache Empties the AR cache access public return void function flush_cache() { this_reset_run( array( "ar_cache_select" array(), "ar_cache_from" array(), "ar_cache_join" array(), "ar_cache_where" array(), "ar_cache_like" array(), "ar_cache_groupby" array(), "ar_cache_having" array(), "ar_cache_orderby" array(), "ar_cache_set" array(), "ar_cache_exists" array() );

Merge Cache When called, this function merges any cached AR arrays with locally called ones.

access private return void function _merge_cache() if (count(thisar_cache_exists) 0) return;


foreach (thisar_cache_exists as val) ar_variable "ar_".val;

ar_cache_var "ar_cache_".val;

if (count(thisar_cache_var) 0) continue;

thisar_variable array_unique(array_merge(thisar_cache_var, thisar_variable));

If we are "protecting identifiers" we need to examine the portion of the query to determine if there are any aliases if (this_protect_identifiers TRUE AND count(thisar_cache_from) 0) this_track_aliases(thisar_from);

Resets the active record values. Called by the get() function access private param array An array of fields to reset return void function _reset_run(ar_reset_items) foreach (ar_reset_items as item default_value) if ( ! in_array(item, thisar_store_array)) thisitem default_value;

Resets the active record values. Called by the get() function access private return void function _reset_select() ar_reset_items array( "ar_select" array(), "ar_from" array(), "ar_join" array(), "ar_where" array(), "ar_like" array(), "ar_groupby" array(), "ar_having" array(), "ar_orderby" array(), "ar_wherein" array(), "ar_aliased_tables" array(), "ar_distinct" FALSE, "ar_limit" FALSE, "ar_offset" FALSE, "ar_order" FALSE, );

this_reset_run(ar_reset_items); Resets the active record values.

Called by the insert() update() and delete() functions access private return void function _reset_write() { ar_reset_items array( "ar_set" array(), "ar_from" array(), "ar_where" array(), "ar_like" array(), "ar_orderby" array(), "ar_limit" FALSE, "ar_order" FALSE );

this_reset_run(ar_reset_items);

class CI_DB_odbc_driver extends CI_DB { var dbdriver "odbc";

the character used to excape not necessary for ODBC var _escape_char "";

The syntax to count rows is slightly different across different database engines, so this string appears in each driver and is used for the count_all() and count_all_results() functions.

var _count_string "SELECT COUNT() AS ";

var _random_keyword;

function CI_DB_odbc_driver(params) parent:CI_DB(params);

this_random_keyword " RND(".time().")"; database specific random keyword Nonpersistent database connection access private called by the base class return resource function db_connect() return odbc_connect(thishostname, thisusername, thispassword);

Persistent database connection access private called by the base class return resource function db_pconnect() return odbc_pconnect(thishostname, thisusername, thispassword);

Select the database access private called by the base class return resource function db_select() Not needed for ODBC return TRUE;

Set client character set access public param string param string return resource function db_set_charset(charset, collation) todo add support if needed return TRUE;

Version number query string access public return string function _version() return "SELECT version() AS ver";

Execute the query access private called by the base class param string an SQL query return resource function _execute(sql) sql this_prep_query(sql);

return odbc_exec(thisconn_id, sql);

Prep the query If needed, each database adapter can prep the query string access private called by execute() param string an SQL query return string function _prep_query(sql) return sql;

Begin Transaction access public return bool function trans_begin(test_mode FALSE) if ( ! thistrans_enabled) return TRUE;

When transactions are nested we only begincommitrollback the outermost ones if (this_trans_depth 0) return TRUE;

Reset the transaction failure flag.

If the test_mode flag is set to TRUE transactions will be rolled back even if the queries produce a successful result.

this_trans_failure (test_mode TRUE) ? TRUE: FALSE;

return odbc_autocommit(thisconn_id, FALSE);

Commit Transaction access public return bool function trans_commit() if ( ! thistrans_enabled) return TRUE;

When transactions are nested we only begincommitrollback the outermost ones if (this_trans_depth 0) return TRUE;

ret odbc_commit(thisconn_id);

odbc_autocommit(thisconn_id, TRUE);

return ret;

Rollback Transaction access public return bool function trans_rollback() if ( ! thistrans_enabled) return TRUE;

When transactions are nested we only begincommitrollback the outermost ones if (this_trans_depth 0) return TRUE;

ret odbc_rollback(thisconn_id);

odbc_autocommit(thisconn_id, TRUE);

return ret;


Escape String access public param string return string function escape_str(str) Access the CI object CI get_instance();

ODBC doesn"t require escaping return CI_remove_invisible_characters(str);

Affected Rows access public return integer function affected_rows() return odbc_num_rows(thisconn_id);

Insert ID access public return integer function insert_id() return odbc_insert_id(thisconn_id);

query Generates a platformspecific query string that counts all records in the specified database access public param string return string function count_all(table "") if (table "") return 0;

query thisquery(this_count_string. this_protect_identifiers("numrows").. this_protect_identifiers(table, TRUE, NULL, FALSE));

if (querynum_rows() 0) return 0;

row queryrow();

return (int) rownumrows;

Show table query Generates a platformspecific query string so that the table names can be fetched access private param boolean return string function _list_tables(prefix_limit FALSE) sql "SHOW TABLES FROM `".thisdatabase.;

if (prefix_limit ! FALSE AND thisdbprefix ! "")

sql..thisdbprefix.;

return FALSE; not currently supported return sql;

Show column query Generates a platformspecific query string so that the column names can be fetched access public param string the table name return string function _list_columns(table "") return "SHOW COLUMNS FROM ".table;

Field data query Generates a platformspecific query so that the column data can be retrieved access public param string the table name return object function _field_data(table) return "SELECT TOP 1 FROM ".table;

The error message string access private return string function _error_message() return odbc_errormsg(thisconn_id);

The error message number access private return integer function _error_number() return odbc_error(thisconn_id);

Escape the SQL Identifiers This function escapes column and table names access private param string return string function _escape_identifiers(item) if (this_escape_char "") return item;

foreach (this_reserved_identifiers as id) if (strpos(item, ".".id) ! FALSE) str this_escape_char. str_replace(".", this_escape_char.".", item);

remove duplicates if the user already included the escape return preg_replace("[".this_escape_char."]+", this_escape_char, str);

} if (strpos(item, ".") ! FALSE) str this_escape_char.str_replace(".", this_escape_char.".".this_escape_char, item).this_escape_char;

else str this_escape_char.item.this_escape_char;

remove duplicates if the user already included the escape return preg_replace("[".this_escape_char."]+", this_escape_char, str);

From Tables This function implicitly groups FROM tables so there is no confusion about operator precedence in harmony with SQL standards access public param type return type function _from_tables(tables) if ( ! is_array(tables)) tables array(tables);

return "(".implode(", ", tables).")";

Insert statement Generates a platformspecific insert string from the supplied data access public param string the table name param array the insert keys param array the insert values return string function _insert(table, keys, values) { return.table..implode(", ", keys)..implode(", ", values).;

Update statement Generates a platformspecific update string from the supplied data access public param string the table name param array the update data param array the where clause param array the orderby clause param array the limit clause return string function _update(table, values, where, orderby array(), limit FALSE) foreach(values as key val) valstr key..val;

limit ( ! limit) ? "": " LIMIT ".limit;

orderby (count(orderby) 1)?" ORDER BY ".implode(, orderby):"";

sql.table..implode(", ", valstr);

sql. (where ! "" AND count(where) 1) ?.implode(, where): "";

sql. orderby.limit;

return sql;

Truncate statement Generates a platformspecific truncate string from the supplied data If the database does not support the truncate() command This function maps to "DELETE FROM table" access public param string the table name return string function _truncate(table) return this_delete(table);

Delete statement Generates a platformspecific delete string from the supplied data access public param string the table name param array the where clause param string the limit clause return string function _delete(table, where array(), like array(), limit FALSE) conditions "";


if (count(where) 0 OR count(like) 0) conditions;

conditions. implode(, thisar_where);

if (count(where) 0 count(like) 0) conditions.;

conditions. implode(, like);

limit ( ! limit) ? "": " LIMIT ".limit;

return.table.conditions.limit;

Limit string Generates a platformspecific LIMIT clause access public param string the sql query string param integer the number of rows to limit the query to param integer the offset value return string function _limit(sql, limit, offset) Does ODBC doesn"t use the LIMIT clause?

return sql;

Close DB Connection access public param resource return void function _close(conn_id) require_once("Parser.php");

require_once("BIFFwriter.php");

Class for generating Excel Spreadsheets author Xavier Noguer xnoguerrezebra.com package Spreadsheet_WriteExcel class Worksheet extends BIFFwriter { Constructor param string name The name of the new worksheet param integer index The index of the new worksheet param mixed activesheet The current activesheet of the workbook we belong to param mixed firstsheet The first worksheet in the workbook we belong to param mixed url_format The default format for hyperlinks param mixed parser The formula parser created for the Workbook function Worksheet(name,index,activesheet,firstsheet,url_format,parser) thisBIFFwriter(); It needs to call its parent"s constructor explicitly rowmax 65536; 16384 in Excel 5 colmax 256;

strmax 255;thisname name;thisindex index;thisactivesheet activesheet;

thisfirstsheet firstsheet;this_url_format url_format;this_parser parser;thisext_sheets array();this_using_tmpfile 1;

this_filehandle;thisfileclosed 0;

thisoffset 0;thisxls_rowmax rowmax;

thisxls_colmax colmax;thisxls_strmax strmax;

thisdim_rowmin rowmax +1;thisdim_rowmax 0;

thisdim_colmin colmax +1;thisdim_colmax 0;

thiscolinfo array();this_selection array(0,0,0,0);

this_panes array();this_active_pane 3;this_frozen 0;thisselected 0;this_paper_size 0x0;this_orientation 0x1;this_header "";

this_footer "";this_hcenter 0;this_vcenter 0;

this_margin_head 0.50;this_margin_foot 0.50;this_margin_left 0.5;

this_margin_right 0.75;this_margin_top 1.00;this_margin_bottom 1.00;this_title_rowmin NULL;this_title_rowmax NULL;

this_title_colmin NULL;this_title_colmax NULL;this_print_rowmin NULL;

this_print_rowmax NULL;this_print_colmin NULL;this_print_colmax NULL;

this_print_gridlines 1;this_print_headers 0;this_fit_page 0;this_fit_width 0;this_fit_height 0;this_hbreaks array();this_vbreaks array();this_protect 0;this_password NULL;thiscol_sizes array();

thisrow_sizes array();this_zoom 100;

this_print_scale 100;this_initialize();

Open a tmp file to store the majority of the Worksheet data. If this fails, for example due to write permissions, store the data in memory. This can be slow for large files.

function _initialize() Open tmp file for storing Worksheet data fh tmpfile();

if ( fh) { Store filehandle this_filehandle fh;

else { If tmpfile() fails store data in memory this_using_tmpfile 0;

Add data to the beginning of the workbook (note the reverse order) and to the end of the workbook.

access public see Workbook:store_workbook() param array sheetnames The array of sheetnames from the Workbook this worksheet belongs to function close(sheetnames) num_sheets count(sheetnames);

Prepend in reverse order!

Prepend the sheet dimensions this_store_dimensions();

Prepend the sheet password this_store_password();

Prepend the sheet protection this_store_protect();

Prepend the page setup this_store_setup();

Prepend the bottom margin this_store_margin_bottom();

Prepend the top margin this_store_margin_top();

Prepend the right margin this_store_margin_right();

Prepend the left margin this_store_margin_left();

Prepend the page vertical centering thisstore_vcenter();

Prepend the page horizontal centering thisstore_hcenter();

Prepend the page footer thisstore_footer();

Prepend the page header thisstore_header();

Prepend the vertical page breaks this_store_vbreak();

Prepend the horizontal page breaks this_store_hbreak();

Prepend WSBOOL this_store_wsbool(); Prepend GRIDSET this_store_gridset();

Prepend PRINTGRIDLINES this_store_print_gridlines(); Prepend PRINTHEADERS this_store_print_headers(); Prepend EXTERNSHEET references for (i num_sheets; i 0; i) { sheetname sheetnames;


this_store_externsheet(sheetname); Prepend the EXTERNCOUNT of external references.this_store_externcount(num_sheets);

Prepend the COLINFO records if they exist if (!empty(thiscolinfo)){ for(i0; i count(thiscolinfo); i++) this_store_colinfo(thiscolinfo);

this_store_defcol(); Prepend the BOF record this_store_bof(0x010);

End of prepend. Read upwards from here.

Append this_store_window2();

this_store_zoom();

if(!empty(this_panes)) this_store_panes(this_panes);

this_store_selection(this_selection);

this_store_eof();

Retrieve the worksheet name. This is usefull when creating worksheets without a name.

access public return string The worksheet"s name function get_name() return(thisname);

Retrieves data from memory in one chunk, or from disk in buffer sized chunks.

return string The data function get_data() buffer 4096;

Return data stored in memory if (isset(this_data)) { tmp this_data;

unset(this_data);

fh this_filehandle;

if (this_using_tmpfile) { fseek(fh, 0);

return(tmp);

Return data stored on disk if (this_using_tmpfile) { if (tmp fread(this_filehandle, buffer)) { return(tmp);

No data to return return("");

Set this worksheet as a selected worksheet, i.e. the worksheet has its tab highlighted.

access public function select() thisselected 1;

Set this worksheet as the active worksheet, i.e. the worksheet that is displayed when the workbook is opened. Also set it as selected.

access public function activate() thisselected 1;

thisactivesheet thisindex;

Set this worksheet as the first visible sheet. This is necessary when there are a large number of worksheets and the activated worksheet is not visible on the screen.

access public function set_first_sheet() thisfirstsheet thisindex;

Set the worksheet protection flag to prevent accidental modification and to hide formulas if the locked and hidden format properties have been set.

access public param string password The password to use for protecting the sheet.

function protect(password) this_protect 1;

this_password this_encode_password(password);

Set the width of a single column or a range of columns.

access public see _store_colinfo() param integer firstcol first column on the range param integer lastcol last column on the range param integer width width to set param mixed format The optional XF format to apply to the columns param integer hidden The optional hidden atribute function set_column(firstcol, lastcol, width, format 0, hidden 0) thiscolinfo array(firstcol, lastcol, width, format, hidden);

Set width to zero if column is hidden width (hidden) ? 0: width;

for(col firstcol; col lastcol; col++) { thiscol_sizes width;

Set which cell or cells are selected in a worksheet access public param integer first_row first row in the selected quadrant param integer first_column first column in the selected quadrant param integer last_row last row in the selected quadrant param integer last_column last column in the selected quadrant see _store_selection() function set_selection(first_row,first_column,last_row,last_column) this_selection array(first_row,first_column,last_row,last_column);

Set panes and mark them as frozen.

access public param array panes This is the only parameter received and is composed of the following:

0 Vertical split position, 1 Horizontal split position 2 Top row visible 3 Leftmost column visible 4 Active pane function freeze_panes(panes) this_frozen 1;

this_panes panes;

Set panes and mark them as unfrozen.

access public param array panes This is the only parameter received and is composed of the following:

0 Vertical split position, 1 Horizontal split position 2 Top row visible 3 Leftmost column visible 4 Active pane function thaw_panes(panes) this_frozen 0;

this_panes panes;

Set the page orientation as portrait.

access public function set_portrait() this_orientation 1;

Set the page orientation as landscape.

access public function set_landscape() this_orientation 0;

Set the paper type. Ex. 1 US Letter, 9 A4 access public param integer size The type of paper size to use function set_paper(size 0) this_paper_size size;

Set the page header caption and optional margin.

access public param string string The header text param float margin optional head margin in inches.