Server-side object | |
Implemented in | Netscape Server 3.0 |
To connect to a database, you first create a pool of database connections and then access individual connections as needed. For more information on the general methodology for using DbPool
objects, see Writing Server-Side JavaScript Applications.
Created by
The DbPool
constructor.
Description
The lifetime of a DbPool
object (its scope) varies. Assuming it has been assigned to a variable, a DbPool
object can go out of scope at different times:
DbPool
object before that object goes out of scope. Release connections and close the other objects as soon as you are done with them.
If you do not release a connection, it remains bound and is unavailable to the next user until the associated DbPool
object goes out of scope. When you do call release
to give up a connection, the runtime engine waits until all associated cursors, stored procedures, and result sets are closed before actually releasing the connection. Therefore, you must close those objects when you are done with them.
You can use the prototype
property of the DbPool
object to add a property to all DbPool
instances. If you do so, that addition applies to all DbPool
objects running in all applications on your server, not just in the single application that made the change. This allows you to expand the capabilities of this object for your entire server.
|
Allows the addition of properties to a DbPool object.
|
Properties
prototype
Represents the prototype for this class. You can use the prototype to add properties or methods to all instances of a class. For information on prototypes, see Function.prototype
.
Property of |
DbPool
|
Implemented in | LiveWire 1.0 |
Methods
DbPool
Creates a pool of database Connection objects and optionally connects the objects to a particular configuration of database and user.
Method of |
DbPool
|
Implemented in | Netscape Server 3.0 |
Syntax
new DbPool();
new DbPool (dbtype, serverName, username, password, databaseName);
new DbPool (dbtype, serverName, username, password, databaseName, maxConnections);
new DbPool (dbtype, serverName, username, password, databaseName, maxConnections, commitflag);
Parameters
Description
The first version of this constructor takes no parameters. It instantiates and allocates memory for a DbPool
object. This version of the constructor creates and caches one connection. When this connection goes out of scope, pending transactions are rolled back.
The second version of this constructor instantiates a DbPool
object and then calls the connect
method to establish a database connection. This version of the constructor also creates and caches one connection. When this connection goes out of scope, pending transactions are rolled back.
The third version of this constructor instantiates a DbPool
object and then calls the connect
method to establish a database connection. In addition, it attempts to create as many connections as specified by the maxConnections
parameter. If successful, it stores those connections for later use. If the runtime engine does not obtain the requested connections, it returns an error. When this connection goes out of scope, pending transactions are rolled back.
The fourth version of this constructor does everything the third version does. In addition, the commitflag
parameter indicates what to do with pending transactions when the connection goes out of scope. If this parameter is false (the default), a pending transaction is rolled back. If this parameter is true, a pending transaction if committed.
To detect errors, you can use the majorErrorCode
method.
If possible, your application should call this constructor and make the database connection on its initial page. Doing so prevents conflicts from multiple client requests trying to manipulate the status of the connections at once.
connect
Connects the pool to a particular configuration of database and user.
Method of |
DbPool
|
Implemented in | Netscape Server 3.0 |
connect (dbtype, serverName, username, password, databaseName)
connect (dbtype, serverName, username, password, databaseName, maxConnections)
connect (dbtype, serverName, username, password, databaseName, maxConnections, commitflag)
Returns
0 if the call was successful; otherwise, a nonzero status code based on any error message passed by the database. If the method returns a nonzero status code, use the associated majorErrorCode
and majorErrorMessage
methods to interpret the cause of the error.
Description
When you call this method, the runtime engine first closes and releases any currently open connections. It then reconnects the pool with the new configuration. You should be sure that all connections have been released before calling this method.
The first version of this method creates and caches one connection. When this connection goes out of scope, pending transactions are rolled back.
The second version of this method attempts to create as many connections as specified by the maxConnections
parameter. If successful, it stores those connections for later use. If the runtime engine does not obtain the requested connections, it returns an error. When this connection goes out of scope, pending transactions are rolled back.
The third version of this method does everything the second version does. In addition, the commitflag
parameter indicates what to do with pending transactions when this connection goes out of scope. If this parameter is false (the default), a pending transaction is rolled back. If this parameter is true, a pending transaction if committed.
Example
The following statement creates four connections to an Informix database named mydb on a server named myserver, with user name SYSTEM and password MANAGER. Pending transactions are rolled back at the end of a client request:
pool.connect("INFORMIX", "myserver", "SYSTEM", "MANAGER", "mydb", 4)
connected
Tests whether the database pool and all of its connections are connected to a database.
Method of |
DbPool
|
Implemented in | Netscape Server 3.0 |
Syntax
connected()
Parameters
None.
Returns
True if the pool (and hence a particular connection in the pool) is currently connected to a database; otherwise, false.
Description
The connected
method indicates whether this object is currently connected to a database.
If this method returns false for a Connection
object, you cannot use any other methods of that object. You must reconnect to the database, using the DbPool
object, and then get a new Connection
object. Similarly, if this method returns false for the database
object, you must reconnect before using other methods of that object.
Example
Example 1: The following code fragment checks to see if the connection is currently open. If it's not, it reconnects the pool and reassigns a new value to the myconn
variable.
if (!myconn.connected()) {
Example 2: The following example uses an
mypool.connect ("INFORMIX", "myserver", "SYSTEM", "MANAGER", "mydb", 4);
myconn = mypool.connection;
}if
condition to determine if an application is connected to a database server. If the application is connected, the isConnectedRoutine
function runs; if the application is not connected, the isNotConnected
routine runs.
if(database.connected()) {
isConnectedRoutine() }
else {
isNotConnectedRoutine() }connection
Retrieves an available connection from the pool.
Method of |
DbPool
|
Implemented in | Netscape Server 3.0 |
Syntax
connection (name, timeout)
Parameters
Returns
A new Connection
object.
disconnect
Disconnects all connections in the pool from the database.
Method of |
DbPool
|
Implemented in | Netscape Server 3.0 |
Syntax
disconnect()
Parameters
None.
Returns
0 if the call was successful; otherwise, a nonzero status code based on any error message passed by the database. If the method returns a nonzero status code, use the associated majorErrorCode
and majorErrorMessage
methods to interpret the cause of the error.
Description
For the DbPool
object, before calling the disconnect
method, you must first call the release
method for all connections in this database pool. Otherwise, the connection is still considered in use by the system, so the disconnect waits until all connections are released.
After disconnecting from a database, the only methods of this object you can use are connect
and connected
.
Examples
The following example uses an if
condition to determine if an application is connected to a database server. If the application is connected, the application calls the disconnect
method; if the application is not connected, the isNotConnected
routine runs.
if(database.connected()) {
database.disconnect() }
else {
isNotConnectedRoutine() }majorErrorCode
Major error code returned by the database server or ODBC.
Method of |
DbPool
|
Implemented in | Netscape Server 3.0 |
Syntax
majorErrorCode()
Parameters
None.
Returns
The result returned by this method depends on the database server being used:
Table 10.3 Database status codes.
Examples
This example updates the rentals
table within a transaction. The updateRow
method assigns a database status code to the statusCode
variable to indicate whether the method is successful.
If updateRow
succeeds, the value of statusCode
is 0, and the transaction is committed. If updateRow
returns a statusCode
value of either five or seven, the values of majorErrorCode
, majorErrorMessage
, minorErrorCode
, and minorErrorMessage
are displayed. If statusCode
is set to any other value, the errorRoutine
function is called.
database.beginTransaction()
statusCode = cursor.updateRow("rentals")if (statusCode == 0) {
database.commitTransaction()
}if (statusCode == 5 || statusCode == 7) {
write("The operation failed to complete.<BR>"
write("Contact your system administrator with the following:<P>"
write("The value of statusCode is " + statusCode + "<BR>")
write("The value of majorErrorCode is " +
database.majorErrorCode() + "<BR>")
write("The value of majorErrorMessage is " +
database.majorErrorMessage() + "<BR>")
write("The value of minorErrorCode is " +
database.minorErrorCode() + "<BR>")
write("The value of minorErrorMessage is " +
database.minorErrorMessage() + "<BR>")
database.rollbackTransaction()
}else {
errorRoutine()
}majorErrorMessage
Major error message returned by database server or ODBC. For server errors, this typically corresponds to the server's SQLCODE.
Method of |
DbPool
|
Implemented in | Netscape Server 3.0 |
Syntax
majorErrorMessage()
Parameters
None.
Returns
A string describing that depends on the database server:
connection
and DbPool
methods or from special connection
or DbPool
properties containing error messages and codes.
DbPool.majorErrorCode
.
minorErrorCode
Secondary error code returned by database vendor library.
Method of |
DbPool
|
Implemented in | Netscape Server 3.0 |
Syntax
minorErrorCode()
Parameters
None.
Returns
The result returned by this method depends on the database server:
Method of |
DbPool
|
Implemented in | Netscape Server 3.0 |
Syntax
minorErrorMessage()
Parameters
None.
Returns
The string returned by this method depends on the database server:
Method of |
DbPool
|
Implemented in | Netscape Server 3.0 |
Syntax
storedProcArgs (procName, type1, ..., typeN)
Parameters
Returns
Nothing.
Description
This method is only for Sybase stored procedures.
This method provides the procedure name and the parameters for that stored procedure. Sybase stored procedures can accept parameters that are only for input ("IN
"), only for output ("OUT
"), or for both input and output ("INOUT
").
You must create one prototype for each Sybase stored procedure you use in your application. Additional prototypes for the same stored procedure are ignored.
You can specify an INOUT
parameter either as an INOUT
or as an OUT
parameter. If you use an INOUT
parameter of a stored procedure as an OUT
parameter, the LiveWire Database Service implicitly passes a NULL
value for that parameter.
Examples
Assume the inoutdemo
stored procedure takes one input parameter and one input/output parameter, as follows:
create procedure inoutdemo ( @inparam int, @inoutparam int output)
Assume execute the following code and then call
as
if ( @inoutparam == null)
@inoutparam = @inparam + 1
else
@inoutparam = @inoutparam + 1outParameters(0)
, the result will be 101:
database.storedProcArgs("inoutdemo", "IN", "INOUT")
The value of
spobj= database.storedProc("inoutdemo", 6, 100);
answer = spobj.outParameters(0);answer
is 101. On the other hand, assume you execute this code:
database.storedProcArgs("inoutdemo", "IN", "OUT")
In this case, the value of
spobj = database.storedProc("inoutdemo", 6, 100);
answer = spobj.outParameters(0);answer
is 7.
toString
Returns a string representing the specified object.
Method of |
DbPool
|
Implemented in | Netscape Server 3.0 |
Syntax
toString()
Parameters
None.
Description
Every object has a toString
method that is automatically called when it is to be represented as a text value or when an object is referred to in a string concatenation.
You can use toString
within your own code to convert an object into a string, and you can create your own function to be called in place of the default toString
method.
This method returns a string of the following format:
db "name" "userName" "dbtype" "serverName"
where
name | The name of the database. |
userName | The name of the user connected to the database. |
dbType |
One of ORACLE , SYBASE , INFORMIX, DB2 , or ODBC .
|
serverName | The name of the database server. |
The method displays an empty string for any of attributes whose value is unknown.
For information on defining your own toString
method, see the Object.toString
method.
Last Updated: 10/31/97 16:35:15