[SparForte][Banner]
[Top Main Menu] Intro | Tutorials | Reference | Packages | Examples | Contributors   [Back Page]      [Next Page]  

DBM (PostgreSQL) - Multiple Connections Package

A package for opening multiple connections and having mutiple open queries to a PostgreSQL database. The subprograms here are similar to the db package accept that they also require a connection, query or both.

Introduced: SparForte 2.0

New data types:

  • dbm.connection - a connection id to a database
  • dbm.query - a database id query

The database package is based on a modified version of Warren Gay's APQ PostgreSQL binding. For full details on these routines, consult the APQ documentation.

There is an enumerated type in the db package that controls the verbosity of tracing:

type db.trace_mode_type is ( db.trace_none, db.trace_db, db.trace_apq, db.trace_full );

type db.trace_mode_type is ( db.trace_none, db.trace_db, db.trace_apq, db.trace_full );

There is an enumerated type that controls file access:

type dbm.mode_type is ( dbm.read, dbm.write, dbm.read_write );

There is an enumerated type in the db package that controls fetch order:

type db.fetch_mode_type is ( db.sequential_fetch, db.random_fetch );

There is an enumerated type in the db package that identifies the database engine:

type db.database_type is ( db.engine_postgresql, db.engine_mysql, db.engine_oracle, db.engine_sybase, db.engine_db2 );


 

dbm.append( q, s [, a] )

 

Append text s to the SQL query. The text is on the same line.

Example

dbm.append( q, s, " where customer_no > 5" );

Parameters

Param Mode Type Default Description
q in dbm.query required SQL query id
s in string required SQL query text
a in string empty string additional text to place after the text

Exceptions

An exception is thrown when out of memory.

Restrictions

Not allowed in a restricted shell
Not allowed with no_postgresql_database restriction

See Also

-

Compare With

Ada: APQ.Append

dbm.append_for_insert( q, c, r )

 

Append the fields of record r to the query in the format of an ANSI SQL insert (that is, " ( a, b, ... ) VALUES ( 'a', 'b', ... )"). The record fields may be boolean, string, numeric or universal (treated as a string). String values are appended with Append_Quoted.

Example

type row is record
  b : boolean;
  i : integer;
  s : string;
end record;
r : row;
...
dbm.append_for_insert( q, c, r ); -- (b,i,s) values (...)

Parameters

Param Mode Type Default Description
q in dbm.query required SQL query id
c in dbm.connection required PostgreSQL connection id
r in record type required The record type to use for insert data

Exceptions

-

Restrictions

Not allowed in a restricted shell
Not allowed with no_postgresql_database restriction

See Also

dbm.append_for_update

Compare With

Ada: N/A

dbm.append_for_update( q, c, r )

 

Append the fields of record r to the query in the format of an ANSI SQL update (that is," SET a = 'a', b = 'b', ..." ). The record fields may be boolean, string, numeric or universal (treated as a string). String values are appended with Append_Quoted.

Example

type row is record
  b : boolean;
  i : integer;
  s : string;
end record;
r : row;
...
dbm.append_for_update( q, c, r ); -- SET b = ..., i = ... etc.

Parameters

Param Mode Type Default Description
q in dbm.query required SQL query id
c in dbm.connection required PostgreSQL connection id
r in record type required The record type to use for update data

Exceptions

-

Restrictions

Not allowed in a restricted shell
Not allowed with no_postgresql_database restriction

See Also

dbm.append_for_insert

Compare With

Ada: N/A

dbm.append_line( q, s )

 

Append text s to the SQL query and start a new line.

Example

dbm.append_line( q, s, "where customer_no > 5" );

Parameters

Param Mode Type Default Description
q in dbm.query required SQL query id
s in string required SQL query text

Exceptions

-

Restrictions

Not allowed in a restricted shell
Not allowed with no_postgresql_database restriction

See Also

-

Compare With

Ada: APQ.Append_Line

dbm.append_quoted( q, c, s )

 

Append text s to SQL query while surrounding s with single quotes.

Example

dbm.append_quoted( q, c, "customer_name" );

Parameters

Param Mode Type Default Description
q in dbm.query required SQL query id
c in dbm.connection required PostgreSQL connection id
s in string required SQL query text
a in string empty string additional text to place after the text

Exceptions

-

Restrictions

Not allowed in a restricted shell
Not allowed with no_postgresql_database restriction

See Also

-

Compare With

Ada: APQ.Append_Quoted

dbm.begin_work( q, c )

 

Start a database transaction, marking the position of a possible rollback. The query will be erased.

Example

dbm.begin_work( q, c );

Parameters

Param Mode Type Default Description
q in dbm.query required SQL query id
c in dbm.connection required PostgreSQL connection id

Exceptions

in_abort_state exception may be raised

Restrictions

Not allowed in a restricted shell
Not allowed with no_postgresql_database restriction

See Also

dbm.commit_work
dbm.rollback_work

Compare With

Ada: APQ.Begin_Work

dbm.clear( q )

 

Erase the text of the current query.

Example

dbm.clear( q );

Parameters

Param Mode Type Default Description
q in dbm.query required SQL query id

Exceptions

If a connection doesn't exist, an error will occur.

Restrictions

Not allowed in a restricted shell
Not allowed with no_postgresql_database restriction

See Also

-

Compare With

Ada: APQ.Clear

dbm.close_db_trace( c )

 

Stop tracing the database activity and close the trace file.

Example

dbm.close_db_trace( c );

Parameters

Param Mode Type Default Description
c in dbm.connection required PostgreSQL connection id

Exceptions

If a connection doesn't exist, an error will occur.

Restrictions

Not allowed in a restricted shell
Not allowed with no_postgresql_database restriction

See Also

dbm.is_trace
dbm.open_db_trace
dbm.set_trace

Compare With

Ada: APQ.Clear

i := dbm.column_index( q, s )

 

Return the position of a query result column. This is the position in the query, not the database table.

Example

third_column_position := dbm.column_index( q, "first name" );

Parameters

Param Mode Type Default Description
q in dbm.query required SQL query id
s in string required the column heading
i return value dbm.column_index_type required the column position in the query

Exceptions

no_column exception may be raised

Restrictions

Not allowed in a restricted shell
Not allowed with no_postgresql_database restriction

See Also

dbm.column_name

Compare With

Ada: APQ.Column_Index

s := dbm.column_name( q, i )

 

Return the name of a query result column. The number is the position in the query, not the database table.

Example

third_column_heading := dbm.column_name( q, 3 );

Parameters

Param Mode Type Default Description
q in dbm.query required SQL query id
i in dbm.column_index_type required the column position in the query results
s return value string required the column heading

Exceptions

no_column exception may be raised

Restrictions

Not allowed in a restricted shell
Not allowed with no_postgresql_database restriction

See Also

-

Compare With

Ada: APQ.Column_Name
PHP: mysql_field_name

n := dbm.columns( q )

 

Return the number of columns (fields) from the last query.

Example

number_of_columns := dbm.columns( q );

Parameters

Param Mode Type Default Description
q in dbm.query required SQL query id
n return value natural required the number of columns

Exceptions

no_result exception may be raised

Restrictions

Not allowed in a restricted shell
Not allowed with no_postgresql_database restriction

See Also

-

Compare With

Ada: APQ.Columns

dbm.commit_work( q, c )

 

Complete a database transaction. The query will be erased.

Example

dbm.commit_work( q, c );

Parameters

Param Mode Type Default Description
q in dbm.query required SQL query id
c in dbm.connection required PostgreSQL connection id

Exceptions

in_abort_state exception may be raised

Restrictions

Not allowed in a restricted shell
Not allowed with no_postgresql_database restriction

See Also

dbm.begin_work
dbm.rollback_work

Compare With

Ada: APQ.Commit_Work

dbm.connect( c, d [, u, w ][, h][, p] )

 

Connect to database d using username u, password w, hostname h and port p. If no hostname or port are specified, connection is made by a UNIX socket instead of a network socket.

Example

dbm.connect( c, "db", "user", "password" );

Parameters

Param Mode Type Default Description
c in dbm.connection required PostgreSQL connection id
d in string required the database name
u in string your username the username to connect with
w in string default password username's password
h in string UNIX Socket hostname for network socket
p in string default port network socket port

Exceptions

If a connection cannot be made, an error will occur.

Restrictions

Not allowed in a restricted shell
Not allowed with no_postgresql_database restriction

See Also

-

Compare With

Ada: combines several APQ functions

dbm.databases( c )

 

Show a list of the databases available with the current connection. This is the equivalent of MySQL "show databases".

Example

dbm.databases( c );

Parameters

Param Mode Type Default Description
c in dbm.connection required PostgreSQL connection id

Exceptions

If a connection doesn't exist, an error will occur.

Restrictions

Not allowed in a restricted shell
Not allowed with no_postgresql_database restriction

See Also

dbm.list
dbm.schema
dbm.users

Compare With

-

dbm.disconnect( c )

 

Close a connection created by connect.

Example

dbm.disconnect( c );

Parameters

Param Mode Type Default Description
c in dbm.connection required PostgreSQL connection id

Exceptions

If a connection doesn't exist, an error will occur.

Restrictions

Not allowed in a restricted shell
Not allowed with no_postgresql_database restriction

See Also

dbm.connect

Compare With

Ada: APQ.Disconnect
PHP: mysql_close

b := dbm.end_of_query( q )

 

True if there are no more result (tuple) rows.

Example

while not dbm.end_of_query( q ) loop ...

Parameters

Param Mode Type Default Description
q in dbm.query required SQL query id
b return value boolean required true if no more rows

Exceptions

-

Restrictions

Not allowed in a restricted shell
Not allowed with no_postgresql_database restriction

See Also

-

Compare With

Ada: APQ.End_Of_Query

e := dbm.engine_of( c )

 

Return the identity of the database engine

Example

e := dbm.engine_of( c );

Parameters

Param Mode Type Default Description
c in dbm.connection required PostgreSQL connection id
e return value db.database_type db.engine_mysql, etc.

Exceptions

-

Restrictions

Not allowed in a restricted shell
Not allowed with no_postgresql_database restriction

See Also

-

Compare With

Ada: APQ.Engine_Of

s := dbm.error_message( c )

 

Last error message returned by database server.

Example

err := dbm.error_message( c );

Parameters

Param Mode Type Default Description
b return value string required last server message

Exceptions

-

Restrictions

Not allowed in a restricted shell
Not allowed with no_postgresql_database restriction

See Also

-

Compare With

Ada: APQ.Error_Message;
PHP: mysql_error

dbm.execute( q, c )

 

Run a prepared database query.

Example

dbm.execute( q, c );

Parameters

Param Mode Type Default Description
q in dbm.query required SQL query id
c in dbm.connection required PostgreSQL connection id

Exceptions

If a connection doesn't exist, an error will occur.

Restrictions

Not allowed in a restricted shell
Not allowed with no_postgresql_database restriction

See Also

dbm.show
dbm.execute_checked

Compare With

Ada: APQ.Execute
PHP: pg_execute

dbm.execute_checked( q, c [, s ] )

 

Execute the query. If an error occurs, display the message s on standard error and raise an exception. If an error occurs and there is no error message s, display the query on standard error and raise an exception.

Example

dbm.execute_checked( q, c, "message" );

Parameters

Param Mode Type Default Description
q in dbm.query required SQL query id
c in dbm.connection required PostgreSQL connection id
s in string empty string a message

Exceptions

An exception is thrown if an error occurs.

Restrictions

Not allowed in a restricted shell
Not allowed with no_postgresql_database restriction

See Also

dbm.show
dbm.execute

Compare With

Ada: APQ.Execute_Checked

dbm.fetch( q, [, i] )

 

Fetch the next query result tuple row, or a specific result row.

Example

dbm.fetch( q );

Parameters

Param Mode Type Default Description
q in dbm.query required SQL query id
i in tuple_index_type next row a specific result row

Exceptions

no_result or no_tuple exceptions may be raised.

Restrictions

Not allowed in a restricted shell
Not allowed with no_postgresql_database restriction

See Also

dbm.fetch_values

Compare With

Ada: APQ.Fetch
PHP: mysql_fetch_assoc

dbm.fetch_values( q, c, r )

 

Fetch the next query result tuple row into a record.

The record's fields may be boolean, numeric, string or typeless types and the names of the record's fields must be the same as the column names returned by the query. The number of fields must match the number of columns, though the order may be different.

Example

type row is record
  b : boolean;
  i : integer;
  s : string;
end record;
r : row;
...
dbm.prepare( Q, "SELECT b, i, s FROM sometable" );
dbm.execute( Q, C );
if not dbm.end_of_query( Q ) then
  dbm.fetch_values( Q, C, r );

Parameters

Param Mode Type Default Description
q in dbm.query required SQL query id
c in dbm.connection required PostgreSQL connection id
r in a record required a result row

Exceptions

no_result, no_column exceptions may be raised.
no_tuple may be raised if there's no more data.
Assigning a string to a numeric or boolean field may raise an exception.
A field that is not in the query raises an exception.
A column that is not in the record raises an exception.
The wrong number of fields raises an exception.

Restrictions

Not allowed in a restricted shell
Not allowed with no_postgresql_database restriction

See Also

dbm.fetch

Compare With

Ada: N/A
PHP: mysql_fetch_array

s := dbm.in_abort_state( c )

 

True if in abort state. If there is no connection, return false.

Example

b := dbm.in_abort_state( c );

Parameters

Param Mode Type Default Description
b return value boolean required true if in abort state
c in dbm.connection required PostgreSQL connection id

Exceptions

If a connection doesn't exist, a not connected exception will occur.

Restrictions

Not allowed in a restricted shell
Not allowed with no_postgresql_database restriction

See Also

-

Compare With

Ada: APQ.In_Abort_State

b := dbm.is_connected( c )

 

True if a connection is open to a database.

Example

b := dbm.is_connected( c );

Parameters

Param Mode Type Default Description
b return value boolean required true if connected
c in dbm.connection required PostgreSQL connection id

Exceptions

-

Restrictions

Not allowed in a restricted shell
Not allowed with no_postgresql_database restriction

See Also

-

Compare With

Ada: APQ.Is_Connected

b := dbm.is_null(q, i )

 

True if column in the fetch result is undefined.

Example

b := dbm.is_null( q, 2 );

Parameters

Param Mode Type Default Description
q in dbm.query required SQL query id
i in dbm.column_index_type required the field to check
b return value boolean required true if null

Exceptions

no_column and no_result exceptions may be raised

Restrictions

Not allowed in a restricted shell
Not allowed with no_postgresql_database restriction

See Also

-

Compare With

Ada: APQ.Is_Null

b := dbm.is_trace( c )

 

True if set_trace was true (that is, if debug tracing is enabled).

Example

b := dbm.is_trace( c );

Parameters

Param Mode Type Default Description
b return value boolean required true if tracing is enabled
c in dbm.connection required PostgreSQL connection id

Exceptions

-

Restrictions

Not allowed in a restricted shell
Not allowed with no_postgresql_database restriction

See Also

dbm.close_db_trace
dbm.open_db_trace
dbm.set_trace

Compare With

Ada: APQ.Is_Trace

dbm.list( c )

 

Show on standard output a list of the tables available in the current database. This is the equivalent of MySQL's "show tables".

Example

dbm.list( c );

Parameters

Param Mode Type Default Description
c in dbm.connection required PostgreSQL connection id

Exceptions

If a connection doesn't exist, an error will occur.

Restrictions

Not allowed in a restricted shell
Not allowed with no_postgresql_database restriction

See Also

dbm.databases
dbm.schema
dbm.users

Compare With

-

dbm.new_connection( c )

 

Allocate a new PostgreSQL connection and return the id. The connection will be deallocated when the variable is destroyed.

Example

dbm.new_connection( c );

Parameters

Param Mode Type Default Description
c out dbm.connection required the connection id

Exceptions

Out-of-memory

Restrictions

-

See Also

-

dbm.new_query( q )

 

Allocate a new PostgreSQL query and return the id. The query will be deallocated when the variable is destroyed.

Example

dbm.new_query( q );

Parameters

Param Mode Type Default Description
q out dbm.query required the query id

Exceptions

Out-of-memory

Restrictions

-

See Also

-

s := dbm.notice_message( c )

 

Last notice message returned by database server.

Example

info := dbm.notice_message( c );

Parameters

Param Mode Type Default Description
b return value string required last server message

Exceptions

-

Restrictions

Not allowed in a restricted shell
Not allowed with no_postgresql_database restriction

See Also

-

Compare With

Ada: APQ.Error_Message;
PHP: mysql_error

dbm.open_db_trace( c, f [,m] )

 

Begin tracing the database activity, storing the results at pathname f. m is an optional trace mode type

Example

dbm.open_db_trace( c, "./trace.log" );

Parameters

Param Mode Type Default Description
c in dbm.connection required PostgreSQL connection id
f in string required trace file pathname
m in db.trace_mode_type dbm.trace_apq trace type

Exceptions

If a connection doesn't exist, an error will occur.
not_connected, file already open, file not found exceptions may be raised

Restrictions

Not allowed in a restricted shell
Not allowed with no_postgresql_database restriction

See Also

dbm.close_db_trace
dbm.is_trace
dbm.set_trace

Compare With

Ada: APQ.Open_DB_Trace

s := dbm.options( c )

 

Return database options.

Example

s := dbm.options( c );

Parameters

Param Mode Type Default Description
s return value string required database options
c in dbm.connection required PostgreSQL connection id

Exceptions

-

Restrictions

Not allowed in a restricted shell
Not allowed with no_postgresql_database restriction

See Also

-

Compare With

Ada: APQ.Options

dbm.prepare( q, s [, a] )

 

Prepare a SQL statement to execute. If a is included, insert the next statement after the statement named a.

Example

dbm.prepare( q, "select * from customers" );

Parameters

Param Mode Type Default Description
q in dbm.query required SQL query id
s in string required SQL statement
a in string after all others insert SQL statement after statement a

Exceptions

If a connection cannot be made, an error will occur.

Restrictions

Not allowed in a restricted shell
Not allowed with no_postgresql_database restriction

See Also

-

Compare With

Ada: APQ.Prepare

dbm.raise_exceptions( q, [ b ] )

 

True to raise exceptions on query errors.

Example

dbm.raise_exceptions( q, false );

Parameters

Param Mode Type Default Description
q in dbm.query required SQL query id
b in boolean true whether or not exceptions will occur

Exceptions

-

Restrictions

Not allowed in a restricted shell
Not allowed with no_postgresql_database restriction

See Also

-

Compare With

Ada: APQ.Raise_Exceptions

dbm.report_errors( q, b )

 

True to report errors on query.

Example

dbm.report_errors( q, false );

Parameters

Param Mode Type Default Description
q in dbm.query required SQL query id
b in boolean true whether or not errors will be reported

Exceptions

-

Restrictions

Not allowed in a restricted shell
Not allowed with no_postgresql_database restriction

See Also

-

Compare With

Ada: APQ.Report_Errors

dbm.reset( c )

 

Reset the database connection: close open files, rollback query (if necessary) and disconnect. Use disconnect instead unless you know what you are doing.

Example

dbm.reset( c );

Parameters

Param Mode Type Default Description
c in dbm.connection required PostgreSQL connection id

Exceptions

If a connection doesn't exist, an error will occur.

Restrictions

Not allowed in a restricted shell
Not allowed with no_postgresql_database restriction

See Also

-

Compare With

Ada: APQ.Reset

dbm.rewind( q )

 

Return to the start of a query's results.

Example

dbm.rewind( q );

Parameters

Param Mode Type Default Description
q in dbm.query required SQL query id

Exceptions

If a connection doesn't exist, an error will occur.

Restrictions

Not allowed in a restricted shell
Not allowed with no_postgresql_database restriction

See Also

-

Compare With

Ada: APQ.Rewind

dbm.rollback_work( q, c )

 

Rollback a database transaction, undoing all work since begin_work. The query will be erased.

Example

dbm.rollback_work( q, c );

Parameters

Param Mode Type Default Description
q in dbm.query required SQL query id
c in dbm.connection required PostgreSQL connection id

Exceptions

If a connection doesn't exist, an error will occur.

Restrictions

Not allowed in a restricted shell
Not allowed with no_postgresql_database restriction

See Also

dbm.begin_work
dbm.commit_work

Compare With

Ada: APQ.Rollback_Work

dbm.schema( c, t )

 

Show information about the columns available in a table. This is the equivalent of MySQL's "show create table" or "desc".

Example

dbm.schema( c, "table" );

Parameters

Param Mode Type Default Description
c in dbm.connection required PostgreSQL connection id
t in string required name of the table

Exceptions

-

Restrictions

Not allowed in a restricted shell
Not allowed with no_postgresql_database restriction

See Also

dbm.databases
dbm.list
dbm.users

Compare With

-

dbm.set_rollback_on_finalize( c, b )

 

Determine if a rollback will be issued when the connection is deallocated while the connection is still open (true) or no rollback (false). Default is true.

Example

dbm.set_rollback_on_finalize( c, false );

Parameters

Param Mode Type Default Description
c in dbm.connection required PostgreSQL connection id
b in boolean required true to rollback

Exceptions

-

Restrictions

Not allowed in a restricted shell
Not allowed with no_postgresql_database restriction

See Also

-

Compare With

Ada: APQ.Set_Rollback_On_Finalize

dbm.set_trace( c, b )

 

Enable or disable query tracing. The trace file will remain open.

Example

dbm.set_trace( c, false );

Parameters

Param Mode Type Default Description
c in dbm.connection required PostgreSQL connection id
b in boolean true whether or not tracing will occur

Exceptions

-

Restrictions

Not allowed in a restricted shell
Not allowed with no_postgresql_database restriction

See Also

dbm.close_db_trace
dbm.is_trace
dbm.open_db_trace

Compare With

Ada: APQ.Set_Trace

dbm.show( q, c )

 

Run the prepared query and show the results in a table on standard output. This is often used to show the results of a SQL SELECT statement.

Example

dbm.show( q, c );

Parameters

Param Mode Type Default Description
q in dbm.query required SQL query id
c in dbm.connection required PostgreSQL connection id

Exceptions

If a connection doesn't exist, an error will occur.

Restrictions

Not allowed in a restricted shell
Not allowed with no_postgresql_database restriction

See Also

dbm.execute
dbm.execute_checked

Compare With

-

t := dbm.tuple( q )

 

Return the result row (tuple) number from the last fetch.

Example

row_number := dbm.tuple( q );

Parameters

Param Mode Type Default Description
q in dbm.query required the query id
t return value dbm.tuple_index_type required the current row number

Exceptions

no_tuple exception may be raised

Restrictions

Not allowed in a restricted shell
Not allowed with no_postgresql_database restriction

See Also

-

Compare With

Ada: APQ.Tuple

n := dbm.tuples( q )

 

Return the number of rows (tuples) from the last query.

Example

row_number := dbm.tuples( q );

Parameters

Param Mode Type Default Description
n return value dbm.tuple_count_type required the number of rows
q in dbm.query required the query id

Exceptions

no_result exception may be raised

Restrictions

Not allowed in a restricted shell
Not allowed with no_postgresql_database restriction

See Also

-

Compare With

Ada: APQ.Tuples

dbm.users( c )

 

Show a list of database users. This is similar to MySQL's "show grants". The columns in the list depend on the database engine.

Example

dbm.users( c );

Parameters

Param Mode Type Default Description
c in dbm.connection required PostgreSQL connection id

Exceptions

If a connection doesn't exist, an error will occur.

Restrictions

Not allowed in a restricted shell
Not allowed with no_postgresql_database restriction

See Also

dbm.execute
dbm.execute_checked

Compare With

-

s := dblm.value( q, i )

 

Return the column value as a string.

Example

first_name := dbm.value( q, 3 );

Parameters

Param Mode Type Default Description
s return value universal_typeless required the value of the field
q in dbm.query required SQL query id
i in dbm.column_index_type required the field position to return

Exceptions

no_column, no_result, null_value and no_tuple exceptions may be raised

Restrictions

Not allowed in a restricted shell
Not allowed with no_postgresql_database restriction

See Also

-

Compare With

Ada: APQ.Value

b := dbm.will_rollback_on_finalize( c )

 

True if set_rollback_on_finalize was true (that is, that when the connection is deallocated, a rollback will be issued if the connection is still open).

Example

b := dbm.will_rollback_on_finalize( c );

Parameters

Param Mode Type Default Description
b return value boolean required rollback will be issued on finalize

Exceptions

-

Restrictions

Not allowed in a restricted shell
Not allowed with no_postgresql_database restriction

See Also

-

Compare With

Ada: APQ.Will_Rollback_On_Finalize

 
[Right Submenu]

 Summary

 arrays

 btree_io

 calendar

 cgi

 chains

 command_line

 db/ postgresql

 dbm

 directory_operations

 doubly_linked...

 dynamic_hash_...

 enums

 exceptions

 files

 gnat.cgi

 gnat.crc32

 hash_io

 lock_files

 memcache

 memcache.highread

 mysql

 mysqlm

 numerics

 os

 pen

 pen (OpenGL)

 records

 sound

 source_info

 stats

 strings

 System

 teams

 templates

 text_io

 units

[Back to Top] Back To Top [Small Forte Symbol]