NAME
FTN::Database - FTN SQL Database related operations for Fidonet/FTN related processing.
VERSION
Version 0.42
DESCRIPTION
FTN::Database are Perl modules containing common database related operations and definitions for Fidonet/FTN related SQL Database processing. The SQL database engine is one for which a DBD module exists, defaulting to SQLite.
EXPORT
The following functions are available in this module: create_ftn_database, open_ftn_database, close_ftn_database, drop_ftn_database, drop_ftn_table, create_ftn_index, and drop_ftn_index.
FUNCTIONS
create_ftn_database
Syntax: create_ftn_database($db_handle, $database_name);
Create an SQL database for use for Fidonet/FTN processing, where $db_handle is an existing open database handle and $database_name is the name of the database being created.
open_ftn_database
Syntax: $db_handle = open_ftn_database(\%db_options);
Open a database for Fidonet/FTN processing, where $db_handle is the database handle being returned to the calling program and the referenced hash contains the following items:
- Type
-
The database type. This needs to be a database type for which a DBD module exists, the type being the name as used in the DBD module. The default type to be used is SQLite.
- Host
-
The host name of the database server. If blank or not provided, a driver specific default is used. Not required If the Type is SQLite,
- Port
-
The port number for the database server. If blank or not provided, a driver specific default is used. Not required If the Type is SQLite,
- Name
-
The name of the database to be opened. If the Type is SQLite, this is a filename and path to the database file.
- User
-
The database user, which should already have the neccesary priviledges.
- Password
-
The database password for the database user.
close_ftn_database
Syntax: close_ftn_database($db_handle);
Closing an FTN database, where $db_handle is an existing open database handle.
drop_ftn_database
Syntax: drop_ftn_database($db_handle, $database_name);
Drop an SQL database being used for Fidonet/FTN processing if it exists, where $db_handle is an existing open database handle and $database_name is the name of the database being dropped.
create_ftn_table
Syntax: create_ftn_table($db_handle, $table_name, $defined_fields);
Create a table in an SQL database to be used for Fidonet/FTN processing where $db_handle is an existing open database handle, $table_name is the name of the table to be created, and $defined_fields is the sql to define the fields to be used for the table except for an id field which is set according to the driver type.
The string defining the fields could be coded like this: $defined_fields = "nodeaka VARCHAR(23) DEFAULT '' NOT NULL, "; $defined_fields .= "sysop VARCHAR(48) DEFAULT '' NOT NULL, "; $defined_fields .= "system VARCHAR(48) DEFAULT '' NOT NULL, "; $defined_fields .= "location VARCHAR(48) DEFAULT '' NOT NULL ";
drop_ftn_table
Syntax: drop_ftn_table($db_handle, $table_name);
Drop an FTN table from an SQL database being used for Fidonet/FTN processing if it exists, where $db_handle is an existing open database handle and $table_name is the name of the table to be dropped.
create_ftn_index
Syntax: create_ftn_index($db_handle, $table_name, $index_name, $indexed_fields);
Create an index named $index_name on table $table_name in an SQL database being used for Fidonet/FTN processing; where $db_handle is an existing open database handle, the $table_name is the name of the table that is being indexed, and $index_name is the name of the index itself. The index is created on the fields listed in $indexed_fields, with the field names separated by commas.
drop_ftn_index
Syntax: drop_ftn_index($db_handle,$index_name);
Drop an index from an FTN table in an SQL database being used for Fidonet/FTN processing if it exists, where $db_handle is an existing open database handle, and $index_name is the name of the index to be dropped.
EXAMPLES
An example of opening an FTN database, then closing it:
use FTN::Database;
my $db_handle = open_ftn_database(\%db_option);
...
close_ftn_database($db_handle);
An example of creating a database for FTN related processing, using a mysql database:
use FTN::Database;
my $db_name = "ftndbtst";
my $db_option = {
Type = "mysql",
Name = $db_name,
User = $db_user,
Password = $db_password,
};
my $db_handle = open_ftn_database(\%db_option);
create_ftn_database($db_handle, $database_name);
...
close_ftn_database($db_handle);
An example of dropping a database being used for FTN related processing, using a mysql database:
use FTN::Database;
my $db_name = "ftndbtst";
my $db_option = {
Type = 'mysql',
Name = $db_name,
User = $db_user,
Password = $db_password,
};
my $db_handle = open_ftn_database(\%db_option);
...
drop_ftn_database($db_handle, $db_name);
close_ftn_database($db_handle);
AUTHOR
Robert James Clay, <jame at rocasa.us>
BUGS
Please report any bugs or feature requests via the web interface at http://sourceforge.net/p/ftnpl/ftn-database/tickets/. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.
Note that you can also report any bugs or feature requests to bug-ftn-database at rt.cpan.org
, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=FTN-Database; however, the FTN-Database Issue tracker at the SourceForge project is preferred.
SUPPORT
You can find documentation for this module with the perldoc command.
perldoc FTN::Database
You can also look for information at:
FTN::Database issue tracker
RT: CPAN's request tracker
Search CPAN
REPOSITORIES
http://sourceforge.net/p/ftnpl/ftn-database/code https://github.com/ftnpl/FTN-Database
SEE ALSO
L<DBI>, L<FTN::Database::Nodelist>, L<FTN::Database::Forum>,
L<FTN::Database::ToDo>
COPYRIGHT & LICENSE
Copyright 2010-2014 Robert James Clay, all rights reserved.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.