Skip to content
Snippets Groups Projects
Commit 36d2b8c1 authored by Martin Nilsson's avatar Martin Nilsson
Browse files

Autodoc

Rev: lib/modules/Sql.pmod/module.pmod:1.2
Rev: lib/modules/Sql.pmod/mysql.pike:1.14
Rev: lib/modules/Sql.pmod/sql_result.pike:1.9
Rev: lib/modules/Sql.pmod/sql_util.pmod:1.9
parent 7d0a263a
Branches
Tags
No related merge requests found
/* Compatibility (We really need a better way to do this..) */
// Compatibility
// FIXME: We really need a better way to do this..
mapping tmp;
mixed `->(string s)
{
......@@ -13,3 +14,16 @@ mixed `->(string s)
return tmp;
}
}
//! The SQL module is a unified interface between pike and all
//! its supported databases. The parts of this module that is
//! usuable for all normal uses is the @[Sql] class and the
//! @[sql_result] class.
//!
//! @example
//! string people_in_group(string group) {
//! Sql.Sql db = Sql.Sql("mysql://localhost/testdb");
//! return db->query("SELECT name FROM users WHERE "
//! "group=%s", group)->name * ",";
//! }
/*
* $Id: mysql.pike,v 1.13 2001/04/07 00:57:09 nilsson Exp $
* $Id: mysql.pike,v 1.14 2001/09/06 20:11:00 nilsson Exp $
*
* Glue for the Mysql-module
*/
//.
//. File: mysql.pike
//. RCSID: $Id: mysql.pike,v 1.13 2001/04/07 00:57:09 nilsson Exp $
//. Author: Henrik Grubbstrm (grubba@roxen.com)
//.
//. Synopsis: Implements the glue to the Mysql-module.
//.
//. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//.
//. Implements the glue needed to access the Mysql-module from the generic
//. SQL module.
//.
//! Implements the glue needed to access the Mysql-module from the generic
//! SQL module.
#pike __REAL_VERSION__
......@@ -23,9 +13,10 @@
inherit Mysql.mysql;
//. - quote
//. Quote a string so that it can safely be put in a query.
//. > s - String to quote.
//! Quote a string so that it can safely be put in a query.
//!
//! @param s
//! String to quote.
string quote(string s)
{
return(replace(s,
......@@ -39,13 +30,16 @@ string quote(string s)
private constant timezone = localtime (0)->timezone;
//. - encode_time
//. Converts a system time value to an appropriately formatted time
//. spec for the database.
//. > time - Time to encode.
//. > date - If nonzero then time is taken as a "full" unix time spec
//. (where the date part is ignored), otherwise it's converted as a
//. seconds-since-midnight value.
//! Converts a system time value to an appropriately formatted time
//! spec for the database.
//!
//! @param time
//! Time to encode.
//!
//! @param date
//! If nonzero then time is taken as a "full" unix time spec
//! (where the date part is ignored), otherwise it's converted as a
//! seconds-since-midnight value.
string encode_time (int time, void|int date)
{
if (date) {
......@@ -56,10 +50,11 @@ string encode_time (int time, void|int date)
else return sprintf ("%02d%02d%02d", time / 3600 % 24, time / 60 % 60, time % 60);
}
//. - encode_date
//. Converts a system time value to an appropriately formatted
//. date-only spec for the database.
//. > time - Time to encode.
//! Converts a system time value to an appropriately formatted
//! date-only spec for the database.
//!
//! @param time
//! Time to encode.
string encode_date (int time)
{
if (!time) return "00000000";
......@@ -67,10 +62,11 @@ string encode_date (int time)
return sprintf ("%04d%02d%02d", ct->year + 1900, ct->mon + 1, ct->mday);
}
//. - encode_datetime
//. Converts a system time value to an appropriately formatted
//. date and time spec for the database.
//. > time - Time to encode.
//! Converts a system time value to an appropriately formatted
//! date and time spec for the database.
//!
//! @param time
//! Time to encode.
string encode_datetime (int time)
{
if (!time) return "00000000000000";
......@@ -80,11 +76,14 @@ string encode_datetime (int time)
ct->hour, ct->min, ct->sec);
}
//. - decode_time
//. Converts a database time spec to a system time value.
//. > timestr - Time spec to decode.
//. > date - Take the date part from this system time value. If zero, a
//. seconds-since-midnight value is returned.
//! Converts a database time spec to a system time value.
//!
//! @param timestr
//! Time spec to decode.
//!
//! @param date
//! Take the date part from this system time value. If zero, a
//! seconds-since-midnight value is returned.
int decode_time (string timestr, void|int date)
{
int hour = 0, min = 0, sec = 0;
......@@ -97,10 +96,11 @@ int decode_time (string timestr, void|int date)
else return (hour * 60 + min) * 60 + sec;
}
//. - decode_date
//. Converts a database date-only spec to a system time value.
//. Assumes 4-digit years.
//. > datestr - Date spec to decode.
//! Converts a database date-only spec to a system time value.
//! Assumes 4-digit years.
//!
//! @param datestr
//! Date spec to decode.
int decode_date (string datestr)
{
int year = 0, mon = 0, mday = 0, n;
......@@ -112,10 +112,11 @@ int decode_date (string datestr)
else return 0;
}
//. - decode_datetime
//. Converts a database date and time spec to a system time value.
//. Can decode strings missing the time part.
//. > datestr - Date and time spec to decode.
//! Converts a database date and time spec to a system time value.
//! Can decode strings missing the time part.
//!
//! @param datestr
//! Date and time spec to decode.
int decode_datetime (string timestr)
{
array(string) a = timestr / " ";
......@@ -130,6 +131,7 @@ int decode_datetime (string timestr)
}
}
//!
int|object big_query(string q, mapping(string|int:mixed)|void bindings)
{
if (!bindings)
......
/*
* $Id: sql_result.pike,v 1.8 2000/11/13 04:29:10 nilsson Exp $
* $Id: sql_result.pike,v 1.9 2001/09/06 20:11:00 nilsson Exp $
*
* Implements the generic result module of the SQL-interface
*
......@@ -8,34 +8,21 @@
#pike __REAL_VERSION__
//.
//. File: sql_result.pike
//. RCSID: $Id: sql_result.pike,v 1.8 2000/11/13 04:29:10 nilsson Exp $
//. Author: Henrik Grubbström (grubba@infovav.se)
//.
//. Synopsis: Implements the generic result of the SQL-interface.
//.
//. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//.
//. Used to return results from SQL.sql->big_query().
//.
//! Implements the generic result of the SQL-interface.
//! Used for return results from SQL.sql->big_query().
#define throw_error(X) throw(({ (X), backtrace() }))
//. + master_res
//. The actual result.
//! The actual result.
object|array master_res;
//. + index
//. If the result was an array, this is the current row.
//! If the result was an array, this is the current row.
int index;
// import Array;
//. - create
//. Create a new Sql.sql_result object
//. > res
//. Result to use as base.
//! Create a new Sql.sql_result object
//!
//! @param res
//! Result to use as base.
void create(object|array res)
{
if (!(master_res = res) || (!arrayp(res) && !objectp(res))) {
......@@ -44,8 +31,7 @@ void create(object|array res)
index = 0;
}
//. - num_rows
//. Returns the number of rows in the result.
//! Returns the number of rows in the result.
int num_rows()
{
if (arrayp(master_res)) {
......@@ -54,8 +40,7 @@ int num_rows()
return(master_res->num_rows());
}
//. - num_fields
//. Returns the number of fields in the result.
//! Returns the number of fields in the result.
int num_fields()
{
if (arrayp(master_res)) {
......@@ -64,8 +49,7 @@ int num_fields()
return(master_res->num_fields());
}
//. - eof
//. Returns non-zero if there are no more rows.
//! Returns non-zero if there are no more rows.
int eof()
{
if (arrayp(master_res)) {
......@@ -74,8 +58,7 @@ int eof()
return(master_res->eof());
}
//. - fetch_fields
//. Return information about the available fields.
//! Return information about the available fields.
array(mapping(string:mixed)) fetch_fields()
{
if (arrayp(master_res)) {
......@@ -91,10 +74,10 @@ array(mapping(string:mixed)) fetch_fields()
return(master_res->fetch_fields());
}
//. - seek
//. Skip past a number of rows.
//. > skip
//. Number of rows to skip.
//! Skip past a number of rows.
//!
//! @param skip
//! Number of rows to skip.
void seek(int skip)
{
if (skip < 0) {
......@@ -111,8 +94,7 @@ void seek(int skip)
}
}
//. - fetch_row
//. Fetch the next row from the result.
//! Fetch the next row from the result.
int|array(string|int) fetch_row()
{
if (arrayp(master_res)) {
......@@ -127,5 +109,3 @@ int|array(string|int) fetch_row()
}
return (master_res->fetch_row());
}
/*
* $Id: sql_util.pmod,v 1.8 2001/04/07 00:57:09 nilsson Exp $
* $Id: sql_util.pmod,v 1.9 2001/09/06 20:11:00 nilsson Exp $
*
* Some SQL utility functions.
* They are kept here to avoid circular references.
......@@ -9,45 +9,37 @@
#pike __REAL_VERSION__
//.
//. File: sql_util.pmod
//. RCSID: $Id: sql_util.pmod,v 1.8 2001/04/07 00:57:09 nilsson Exp $
//. Author: Henrik Grubbström (grubba@roxen.com)
//.
//. Synopsis: Some SQL utility functions
//.
//. +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//.
//. These functions are kept here mainly to avoid circular references.
//.
//! Some SQL utility functions
//. - quote
//. Quote a string so that it can safely be put in a query.
//. > s - String to quote.
//! Quote a string so that it can safely be put in a query.
//!
//! @param s
//! String to quote.
string quote(string s)
{
return(replace(s, "\'", "\'\'"));
}
//. - fallback
//. Throw an error in case an unimplemented function is called.
//! Throw an error in case an unimplemented function is called.
void fallback()
{
throw(({ "Function not supported in this database.", backtrace() }));
}
//. - build a raw SQL query, given the cooked query and the variable bindings
//. It's meant to be used as an emulation engine for those drivers not
//. providing such a behaviour directly (i.e. Oracle).
//. The raw query can contain some variables (identified by prefixing
//. a colon to a name or a number(i.e. :var, :2). They will be
//. replaced by the corresponding value in the mapping.
//. > query
//. The query
//. > bindings
//. Optional mapping containing the variable bindings. Make sure that
//. no confusion is possible in the query. If necessary, change the
//. variables' names
//! build a raw SQL query, given the cooked query and the variable bindings
//! It's meant to be used as an emulation engine for those drivers not
//! providing such a behaviour directly (i.e. Oracle).
//! The raw query can contain some variables (identified by prefixing
//! a colon to a name or a number(i.e. :var, :2). They will be
//! replaced by the corresponding value in the mapping.
//!
//! @param query
//! The query
//!
//! @param bindings
//! Optional mapping containing the variable bindings. Make sure that
//! no confusion is possible in the query. If necessary, change the
//! variables' names.
string emulate_bindings(string query, mapping(string|int:mixed)|void bindings,
void|object driver)
{
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment