Executes a series of SQL statements on a database using PDO.
Statements can
either be read in from a text file using the src attribute or from
between the enclosing SQL tags.
Multiple statements can be provided, separated by semicolons (or the
defined delimiter). Individual lines within the statements can be
commented using either --, // or REM at the start of the line.
The autocommit attribute specifies whether auto-commit should be
turned on or off whilst executing the statements. If auto-commit is turned
on each statement will be executed and committed. If it is turned off the
statements will all be executed as one transaction.
The onerror attribute specifies how to proceed when an error occurs
during the execution of one of the statements.
The possible values are: continue execution, only show the error;
stop execution and commit transaction;
and abort execution and transaction and fail task.
Methods
Adds a set of files (nested filelist attribute).
addFilelist(\FileList $list)
Adds a set of files (nested fileset attribute).
addFileset(\FileSet $set)
Set an inline SQL command to execute.
addText($sql)
NB: Properties are not expanded in this text.
Parameters
$sql
Add a SQL transaction to execute
createTransaction()
Get the statement delimiter.
getDelimiter() : string
Returns the textual description of the task
getDescription() : string
Inherited
inherited_from |
\Task::getDescription() |
inherited_from |
\PDOTask::getDescription() |
Returns
string
The text description of the task
Returns the location within the buildfile this task occurs.
getLocation() : \Location
Inherited
inherited_from |
\Task::getLocation() |
inherited_from |
\PDOTask::getLocation() |
Returns
\Location
The location object describing the position of this
task within the buildfile.
Returns the owning target of this task.
getOwningTarget() : \Target
Inherited
inherited_from |
\Task::getOwningTarget() |
inherited_from |
\PDOTask::getOwningTarget() |
Returns
\Target
The target object that owns this task
Gets the password.
getPassword() : \Returns
Inherited
inherited_from |
\PDOTask::getPassword() |
Returns
\Returns
a String
Returns a reference to current project
getProject() : \Project
Inherited
inherited_from |
\ProjectComponent::getProject() |
inherited_from |
\Task::getProject() |
inherited_from |
\PDOTask::getProject() |
Returns
\Project
Reference to current porject object
Returns the wrapper object for runtime configuration
getRuntimeConfigurableWrapper() : \RuntimeConfigurable
Inherited
inherited_from |
\Task::getRuntimeConfigurableWrapper() |
inherited_from |
\PDOTask::getRuntimeConfigurableWrapper() |
Returns
Returns the name of task, used only for log messages
getTaskName() : string
Inherited
inherited_from |
\Task::getTaskName() |
inherited_from |
\PDOTask::getTaskName() |
Returns
string
Name of this task
Returns the name of the task under which it was invoked,
usually the XML tagname
getTaskType() : string
Inherited
inherited_from |
\Task::getTaskType() |
inherited_from |
\PDOTask::getTaskType() |
Returns
string
The type of this task (XML Tag)
Gets the url.
getUrl() : \Returns
Inherited
inherited_from |
\PDOTask::getUrl() |
Returns
\Returns
a String
Gets the userId.
getUserId() : \Returns
Inherited
inherited_from |
\PDOTask::getUserId() |
Returns
\Returns
a String
Initialize the PDOTask
This method checks if the PDO classes are available and triggers
appropriate error if they cannot be found.
init()
Inherited
This is not done in header
because we may want this class to be loaded w/o triggering an error.
inherited_from |
\PDOTask::init() |
Exceptions
Gets the autocommit.
isAutocommit() : \Returns
Inherited
inherited_from |
\PDOTask::isAutocommit() |
Returns
\Returns
a boolean
isCaching()
isCaching($value)
Inherited
inherited_from |
\PDOTask::isCaching() |
Parameters
$value
Provides a project level log event to the task.
log(string $msg, integer $level)
Inherited
Parameters
$msg
string
The message to log
$level
integer
The priority of the message
Load the sql file and then execute it
main()
This method may be
called more than once, if the task is invoked more than once. For
example, if target1 and target2 both depend on target3, then running
phing target1 target2 will run all tasks in target3 twice.
Should throw a BuildException if someting goes wrong with the build
This is abstract here. Must be overloaded by real tasks.
Exceptions
read in lines and execute them
runStatements(\Reader $reader)
Parameters
$reader
Exceptions
\PDOException, |
IOException |
Auto commit flag for database connection;
optional, default false.
setAutocommit(\autocommit $autocommit)
Inherited
inherited_from |
\PDOTask::setAutocommit() |
Parameters
$autocommit
\autocommit
The autocommit to set
Caching loaders / driver.
setCaching($enable)
Inherited
This is to avoid
getting an OutOfMemoryError when calling this task
multiple times in a row; default: true
inherited_from |
\PDOTask::setCaching() |
Parameters
$enable
Set the statement delimiter.
setDelimiter(\delimiter $delimiter)
For example, set this to "go" and delimitertype to "ROW" for
Sybase ASE or MS SQL Server.
Parameters
$delimiter
\delimiter
Set the Delimiter type for this sql task.
setDelimiterType(string $delimiterType)
The delimiter type takes two
values - normal and row. Normal means that any occurence of the delimiter
terminate the SQL command whereas with row, only a line containing just
the delimiter is recognized as the end of the command.
Parameters
$delimiterType
string
Sets a textual description of the task
setDescription(string $desc)
Inherited
inherited_from |
\Task::setDescription() |
inherited_from |
\PDOTask::setDescription() |
Parameters
$desc
string
The text describing the task
Set the file encoding to use on the SQL files read in
setEncoding(\encoding $encoding)
Parameters
$encoding
\encoding
the encoding to use on the files
Sets the fetch mode to use for the PDO resultset.
setFetchmode(mixed $mode)
Parameters
$mode
mixed
The PDO fetchmode integer or constant name.
Sets the location within the buildfile this task occurs.
setLocation(\Location $location)
Inherited
Called by
the parser to set location information.
inherited_from |
\Task::setLocation() |
inherited_from |
\PDOTask::setLocation() |
Parameters
$location
\Location
The location object describing the position of this task within the buildfile.
Action to perform when statement fails: continue, stop, or abort
optional; default "abort"
setOnerror($action)
Sets the owning target this task belongs to.
setOwningTarget(\Target $target)
Inherited
inherited_from |
\Task::setOwningTarget() |
inherited_from |
\PDOTask::setOwningTarget() |
Parameters
$target
\Target
Reference to owning target
Sets the password; required.
setPassword(\password $password)
Inherited
inherited_from |
\PDOTask::setPassword() |
Parameters
$password
\password
The password to set
References the project to the current component.
setProject(\Project $project)
Inherited
inherited_from |
\ProjectComponent::setProject() |
inherited_from |
\Task::setProject() |
inherited_from |
\PDOTask::setProject() |
Parameters
$project
\Project
The reference to the current project
Sets the wrapper object this task should use for runtime
configurable elements.
setRuntimeConfigurableWrapper(\RuntimeConfigurable $wrapper)
Inherited
inherited_from |
\Task::setRuntimeConfigurableWrapper() |
inherited_from |
\PDOTask::setRuntimeConfigurableWrapper() |
Parameters
Set the name of the SQL file to be run.
setSrc(\PhingFile $srcFile)
Required unless statements are enclosed in the build file
Parameters
$srcFile
Sets the name of this task for log messages
setTaskName(string $name) : string
Inherited
inherited_from |
\Task::setTaskName() |
inherited_from |
\PDOTask::setTaskName() |
Parameters
$name
string
Returns
string
A string representing the name of this task for log
Sets the type of the task.
setTaskType(string $name)
Inherited
Usually this is the name of the XML tag
inherited_from |
\Task::setTaskType() |
inherited_from |
\PDOTask::setTaskType() |
Parameters
$name
string
The type of this task (XML Tag)
Sets the database connection URL; required.
setUrl(\url $url)
Inherited
inherited_from |
\PDOTask::setUrl() |
Parameters
Set the user name for the connection; required.
setUserid(\userId $userId)
Inherited
inherited_from |
\PDOTask::setUserid() |
Parameters
$userId
\userId
The userId to set
Sets the version string, execute task only if
rdbms version match; optional.
setVersion(\version $version)
Inherited
inherited_from |
\PDOTask::setVersion() |
Parameters
$version
\version
The version to set
Closes current connection
closeConnection()
Exec the sql statement.
execSQL($sql)
Parameters
$sql
Exceptions
Creates a new Connection as using the driver, url, userid and password specified.
getConnection() : \Connection
Inherited
The calling method is responsible for closing the connection.
inherited_from |
\PDOTask::getConnection() |
Exceptions
\BuildException |
if the UserId/Password/Url is not set or there is no suitable driver or the driver fails to load. |
Returns
\Connection
the newly created connection.
getLoaderMap()
getLoaderMap()
Inherited
inherited_from |
\PDOTask::getLoaderMap() |
Returns a name
getRegisterSlot(string $slotName)
Inherited
inherited_from |
\Task::getRegisterSlot() |
inherited_from |
\PDOTask::getRegisterSlot() |
Parameters
$slotName
string
Whether the passed-in SQL statement is a SELECT statement.
isSelectSql(string $sql) : boolean
This does a pretty simple match, checking to see if statement starts with
'select' (but not 'select into').
Parameters
$sql
string
Returns
boolean
Whether specified SQL looks like a SELECT query.
Passes results from query to any formatters.
processResults()
Gets a default output writer for this task.
getDefaultOutput() : \Writer
Properties
$description : string
Inherited
inherited_from |
\Task::$$description |
inherited_from |
\PDOTask::$$description |
$location : \Location
Inherited
inherited_from |
\Task::$$location |
inherited_from |
\PDOTask::$$location |
$project : \Project
Inherited
inherited_from |
\ProjectComponent::$$project |
inherited_from |
\Task::$$project |
inherited_from |
\PDOTask::$$project |
$target : \Target
Inherited
inherited_from |
\Task::$$target |
inherited_from |
\PDOTask::$$target |
$taskName : string
Inherited
inherited_from |
\Task::$$taskName |
inherited_from |
\PDOTask::$$taskName |
$taskType : string
Inherited
inherited_from |
\Task::$$taskType |
inherited_from |
\PDOTask::$$taskType |
$wrapper : \RuntimeConfigurable
Inherited
inherited_from |
\Task::$$wrapper |
inherited_from |
\PDOTask::$$wrapper |
$autocommit
Inherited
inherited_from |
\PDOTask::$$autocommit |
$caching
Inherited
inherited_from |
\PDOTask::$$caching |
$password
Inherited
inherited_from |
\PDOTask::$$password |
$rdbms
Inherited
inherited_from |
\PDOTask::$$rdbms |
$url
Inherited
inherited_from |
\PDOTask::$$url |
$userId
Inherited
inherited_from |
\PDOTask::$$userId |
Constants
DELIM_NORMAL
DELIM_NORMAL