SQLRelay::Cursor - Perl API for SQL Relay
use SQLRelay::Connection;
use SQLRelay::Cursor;
my $sc=SQLRelay::Connection->new("testhost",9000,"",
"testuser","testpassword",0,1);
my $ss=SQLRelay::Cursor->new($sc);
$ss->sendQuery("select table_name from user_tables");
$sc->endSession();
for (my $i=0; $i<$ss->rowCount(); $i++) {
print $ss->getField($i,"table_name"), "\n";
}
SQLRelay::Cursor
new(sqlrclient);
DESTROY();
setResultSetBufferSize(rows);
# Sets the number of rows of the result set
# to buffer at a time. 0 (the default)
# means buffer the entire result set.
getResultSetBufferSize();
# Returns the number of result set rows that
# will be buffered at a time or 0 for the
# entire result set.
dontGetColumnInfo();
# Tells the server not to send any column
# info (names, types, sizes). If you don't
# need that info, you should call this
# method to improve performance.
getColumnInfo();
# Tells the server to send column info.
mixedCaseColumnNames();
# Columns names are returned in the same
# case as they are defined in the database.
# This is the default.
upperCaseColumnNames();
# Columns names are converted to upper case.
lowerCaseColumnNames();
# Columns names are converted to lower case.
cacheToFile(char *filename);
# Sets query caching on. Future queries
# will be cached to the file "filename".
#
# A default time-to-live of 10 minutes is
# also set.
#
# Note that once cacheToFile() is called,
# the result sets of all future queries will
# be cached to that file until another call
# to cacheToFile() changes which file to
# cache to or a call to cacheOff() turns off
# caching.
setCacheTtl(int ttl);
# Sets the time-to-live for cached result
# sets. The sqlr-cachemanger will remove each
# cached result set "ttl" seconds after it's
# created, provided it's scanning the directory
# containing the cache files.
getCacheFileName();
# Returns the name of the file containing the
# cached result set.
cacheOff();
# Sets query caching off.
# If you don't need to use substitution or bind variables
# in your queries, use these two methods.
sendQuery(query);
# Sends "query" and gets a result set.
sendQueryWithLength(query,length);
# Sends "query" with length "length" and gets
# a result set. This method must be used if
# the query contains binary data.
sendFileQuery(path,filename);
# Sends the query in file "path"/"filename"
# and gets a result set.
# If you need to use substitution or bind variables, in your
# queries use the following methods. See the API documentation
# for more information about substitution and bind variables.
prepareQuery(query);
# Prepare to execute "query".
prepareQueryWithLength(query,length);
# Prepare to execute "query" with length
# "length". This method must be used if the
# query contains binary data.
prepareFileQuery(path,filename);
# Prepare to execute the contents
# of "path"/"filename".
substitution(variable,value);
# Define a substitution variable.
clearBinds();
# Clear all bind variables.
inputBind(variable,value);
inputBindBlob(variable,value,size);
inputBindClob(variable,value,size);
# Define an input bind variable.
defineOutputBind(variable,bufferlength);
# Define an output bind variable.
# "bufferlength" bytes will be reserved to store the value.
defineOutputBindBlob(variable);
# Define a BLOB output bind variable.
defineOutputBindClob(variable);
# Define a CLOB output bind variable.
defineOutputBindCursor(variable);
# Define a cursor output bind variable.
substitutions(variables,values);
# Define an array of substitution variables.
inputBinds(variables,values);
# Define an array of input bind variables.
validateBinds();
# If you are binding to any variables that
# might not actually be in your query, call
# this to ensure that the database won't try
# to bind them unless they really are in the
# query.
executeQuery();
# Execute the query that was previously
# prepared and bound.
fetchFromBindCursor();
# Fetch from a cursor that was returned as
# an output bind variable.
getOutputBind(variable);
# Get the value stored in a previously
# defined output bind variable.
getOutputBindLength(variable);
# Get the length of the value stored in a
# previously defined output bind variable.
getOutputBindCursor(variable);
# Get the cursor associated with a previously
# defined output bind variable.
openCachedResultSet(filename);
# Opens a cached result set as if a query that
# would have generated it had been executed.
# Returns 1 on success and 0 on failure.
colCount();
# Returns the number of columns in the current
# result set.
rowCount();
# Returns the number of rows in the current
# result set.
totalRows();
# Returns the total number of rows that will
# be returned in the result set. Not all
# databases support this call. Don't use it
# for applications which are designed to be
# portable across databases. -1 is returned
# by databases which don't support this option.
affectedRows();
# Returns the number of rows that were
# updated, inserted or deleted by the query.
# Not all databases support this call. Don't
# use it for applications which are designed
# to be portable across databases. -1 is
# returned by databases which don't support
# this option.
firstRowIndex();
# Returns the index of the first buffered row.
# This is useful when bufferning only part of the
# result set at a time.
endOfResultSet();
# Returns 0 if part of the result set is still
# pending on the server and 1 if not. This
# method can only return 0 if
# setResultSetBufferSize() has been called
# with a parameter other than 0.
errorMessage();
# If a query failed and generated an error, the
# error message is available here. If the
# query succeeded then this method returns a
# NULL.
getNullsAsEmptyStrings();
# Tells the client to return NULL fields and
# output bind variables as empty strings.
# This is the default.
getNullsAsUndefined();
# Tells the client to return NULL fields and
# output bind variables as undefined.
getField(row, col);
# Returns a pointer to the value of the
# specified row and column.
getFieldLength(row, col);
# Returns a the length of the
# specified row and column.
getRow(row);
# Returns an array of the values of the
# specified row or an empty list if the
# requested row is past the end of the
# result set.
getRowHash(row);
# Returns the requested row as values in a
# hash with column names for keys or an
# empty list if the requested row is past
# the end of the result set.
getRowLengths(row);
# Returns a null terminated array of the
# lengths of the specified row or an empty
# list if the requested row is past the end
# of the result set.
getRowLengthsHash(row);
# Returns the requested row lengths as values
# in a hash with column names for keys or an
# empty list if the requested row is past
# the end of the result set.
getColumnNames();
# Returns a null terminated array of the
# column names of the current result set.
getColumnName(col);
# Returns the name of the specified column.
getColumnType(col);
# Returns the type of the specified column.
getColumnLength(col);
# Returns the length of the specified column.
getLongest(col);
# Returns the length of the longest field
# in the specified column.
getResultSetId();
# Returns the internal ID of this result set.
# This parameter may be passed to another
# statement for use in the resumeResultSet()
# method.
suspendResultSet();
# Tells the server to leave this result
# set open when the client calls
# suspendSession() so that another client can
# connect to it using resumeResultSet() after
# it calls resumeSession().
resumeResultSet(int id);
# Resumes a result set previously left open
# using suspendSession().
# Returns 1 on success and 0 on failure.
resumeCachedResultSet(int id, char *filename);
# Resumes a result set previously left open
# using suspendSession() and continues caching
# the result set to "filename".
# Returns 1 on success and 0 on failure.
David Muse
dmuse@firstworks.com