Main Page | Modules | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members | Related Pages

Oracle8iSqlStatements Class Reference

Class that implements interface DatabaseSqlStatements on top of Oracle database system. More...

#include <Oracle8iSqlStatements.h>

Inheritance diagram for Oracle8iSqlStatements:

Inheritance graph
[legend]
Collaboration diagram for Oracle8iSqlStatements:

Collaboration graph
[legend]
List of all members.

Public Member Functions

CStdString getRecommendedColumnType (IopcDataType cxxDataType, int maxLength=0)
int checkColumnTypeCompatibility (IopcDataType, const char *)
CStdString quoteString (const char *value)
int generateCreateTableSql (const DatabaseTableInfo &table, CStdString &createTableSql, CStdString &, CStdString &)
int generateDropTableSql (const char *tableName, CStdString &dropTableSql, CStdString &, CStdString &)
int generateDropViewSql (const char *viewName, CStdString &dropViewSql, CStdString &, CStdString &)
int generateInsertSqlSimple (const char *tableName, const std::list< CStdString > &columnValues, CStdString &insertSql, CStdString &, CStdString &)
int generateInsertSqlUsingHostVariables (const char *tableName, const std::list< CStdString > &columns, CStdString &insertSql, CStdString &, CStdString &)
int generateUpdateSqlUsingHostVariables (const char *tableName, const std::list< CStdString > &columns, const char *whereClause, CStdString &updateSql, CStdString &, CStdString &)
int generateSelectSql (const std::list< CStdString > &columns, const std::list< CStdString > &tables, const char *whereClause, CStdString &selectSql, CStdString &, CStdString &, const char *orderBy=NULL, bool lockRows=0, bool dontWait=0)
int generateCreateViewSql (const char *viewName, const std::list< CStdString > &viewColumns, const std::list< CStdString > &subSelects, CStdString &createViewSql, CStdString &, CStdString &)
int generateWhereClauseStmtPart (const std::list< CStdString > &conditions, CStdString &whereClause, CStdString &, CStdString &)
int generateConditionInSet (const char *columnToTest, const std::list< int > &valuesToTest, CStdString &condition, CStdString &, CStdString &)
int generateConditionEqualToHostVariable (const char *columnToTest, const char *hostVariableName, CStdString &condition, CStdString &, CStdString &)
int generateCreateIndexSql (const char *indexName, const char *tableName, const std::list< CStdString > &columns, bool unique, CStdString &createIndexSql, CStdString &, CStdString &)
int generateDropIndexSql (const char *indexName, CStdString &dropIndexSql, CStdString &, CStdString &)
int generateExplainPlanScript (const char *query, const char *queryID, CStdString &explainPlanSql, CStdString &, CStdString &)
int generateOidGenerationSupportCreationScript (const char *projectName, CStdString &result, CStdString &, CStdString &)
int generateOidGenerationSupportDropScript (const char *projectName, CStdString &result, CStdString &, CStdString &)
int generateSelectNextOidSql (const char *projectName, CStdString &result, CStdString &, CStdString &)
int generateDeleteSql (const char *tableName, const char *whereClause, CStdString &deleteSql, CStdString &, CStdString &)
int generateComment (const char *commentText, CStdString &commentSql, CStdString &, CStdString &)
const char * getScriptStatementTerminator ()
virtual int translateOrderByStatement (const char *src, CStdString &dest, CStdString &, CStdString &)

Detailed Description

Class that implements interface DatabaseSqlStatements on top of Oracle database system.

To find out what this class's functions should do see DatabaseSqlStatements. Documentation of most methods of this class consist only from a (sketchy) example of function's result.

Note:
All methods are inline - we don't want MetadataWriter to link with anything from IOPC Lib.


Member Function Documentation

CStdString Oracle8iSqlStatements::getRecommendedColumnType IopcDataType  cxxDataType,
int  maxLength = 0
[inline, virtual]
 

Returns recommended database column type for given C++ attribute type.

Parameters:
cxxDataType The C++ attribute type.
maxLength Should be used only if cxxDataType is IOPC_STRING or IOPC_WSTRING. It specifies maximal length of the string (in bytes). If 0, maximal length isn't set.
Returns:
String representation of recommended DB / SQL data type, NULL if data of this type cannot be stored in the DB.

Implements DatabaseSqlStatements.

int Oracle8iSqlStatements::checkColumnTypeCompatibility IopcDataType  ,
const char * 
[inline, virtual]
 

This function does nothing for now. The checking will be done later by the database itself.

Implements DatabaseSqlStatements.

CStdString Oracle8iSqlStatements::quoteString const char *  value  )  [inline, virtual]
 

Example of method's result:

'<value>'

Implements DatabaseSqlStatements.

int Oracle8iSqlStatements::generateCreateTableSql const DatabaseTableInfo table,
CStdString &  createTableSql,
CStdString &  ,
CStdString & 
[inline, virtual]
 

Example of method's result:

CREATE TABLE <tableName> ( OID NUMBER(10) CONSTRAINT A_PK PRIMARY KEY CONSTRAINT A_CD REFERENCES IOPCLIBTEST2_MT(OID) ON DELETE CASCADE, CID NUMBER(10) CONSTRAINT A_FK2 REFERENCES IOPCLIBTEST2_CIDS(CID), A NUMBER(10), K NUMBER(10), Y NUMBER(10) )

Implements DatabaseSqlStatements.

int Oracle8iSqlStatements::generateDropTableSql const char *  tableName,
CStdString &  dropTableSql,
CStdString &  ,
CStdString & 
[inline, virtual]
 

Example of method's result:

DROP TABLE <tableName>

Implements DatabaseSqlStatements.

int Oracle8iSqlStatements::generateDropViewSql const char *  viewName,
CStdString &  dropViewSql,
CStdString &  ,
CStdString & 
[inline, virtual]
 

Example of method's result:

DROP VIEW <tableName>

Implements DatabaseSqlStatements.

int Oracle8iSqlStatements::generateInsertSqlSimple const char *  tableName,
const std::list< CStdString > &  columnValues,
CStdString &  insertSql,
CStdString &  ,
CStdString & 
[inline, virtual]
 

Example of method's result:

INSERT INTO <tableName> VALUES (1225, 'string', 12.25)

Implements DatabaseSqlStatements.

int Oracle8iSqlStatements::generateInsertSqlUsingHostVariables const char *  tableName,
const std::list< CStdString > &  columns,
CStdString &  insertSql,
CStdString &  ,
CStdString & 
[inline, virtual]
 

Example of method's result:

INSERT INTO <tableName> (column1, column2, ... ) VALUES (:column1, :column2, ... )

Implements DatabaseSqlStatements.

int Oracle8iSqlStatements::generateUpdateSqlUsingHostVariables const char *  tableName,
const std::list< CStdString > &  columns,
const char *  whereClause,
CStdString &  updateSql,
CStdString &  ,
CStdString & 
[inline, virtual]
 

Example of method's result:

UPDATE <tableName> SET column1 = :column1, column2 = :column2, ... <whereClause>

Implements DatabaseSqlStatements.

int Oracle8iSqlStatements::generateSelectSql const std::list< CStdString > &  columns,
const std::list< CStdString > &  tables,
const char *  whereClause,
CStdString &  selectSql,
CStdString &  ,
CStdString &  ,
const char *  orderBy = NULL,
bool  lockRows = 0,
bool  dontWait = 0
[inline, virtual]
 

Example of method's result:

SELECT B.CID, B.OID, A.A, B, X.X FROM A, X, B WHERE B.CID IN (3, 5, 8) AND B.OID = A.OID AND B.OID = X.OID; ORDER BY A.A DESC FOR UPDATE NOWAIT

Implements DatabaseSqlStatements.

int Oracle8iSqlStatements::generateCreateViewSql const char *  viewName,
const std::list< CStdString > &  viewColumns,
const std::list< CStdString > &  subSelects,
CStdString &  createViewSql,
CStdString &  ,
CStdString & 
[inline, virtual]
 

Example of method's result:

CREATE VIEW <viewName> (<viewColumns>) AS <subSelect1> UNION ALL <subSelect2> ... UNION ALL <subSelectN>;

Note:
viewColumns can be empty, if they are, no column names are used in the view definition.

Implements DatabaseSqlStatements.

int Oracle8iSqlStatements::generateWhereClauseStmtPart const std::list< CStdString > &  conditions,
CStdString &  whereClause,
CStdString &  ,
CStdString & 
[inline, virtual]
 

Example of method's result:

WHERE <condition1> AND <condition2> ... AND <conditionN>

Implements DatabaseSqlStatements.

int Oracle8iSqlStatements::generateConditionInSet const char *  columnToTest,
const std::list< int > &  valuesToTest,
CStdString &  condition,
CStdString &  ,
CStdString & 
[inline, virtual]
 

Example of method's result:

<columnToTest> IN (<valueToTest1>, <valueToTest2>, ... <valueToTestN>)

Implements DatabaseSqlStatements.

int Oracle8iSqlStatements::generateConditionEqualToHostVariable const char *  columnToTest,
const char *  hostVariableName,
CStdString &  condition,
CStdString &  ,
CStdString & 
[inline, virtual]
 

Example of method's result:

<columnToTest> = :<hostVariableName>

Implements DatabaseSqlStatements.

int Oracle8iSqlStatements::generateCreateIndexSql const char *  indexName,
const char *  tableName,
const std::list< CStdString > &  columns,
bool  unique,
CStdString &  createIndexSql,
CStdString &  ,
CStdString & 
[inline, virtual]
 

Example of method's result:

CREATE [UNIQUE] INDEX <indexName> ON <tableName>(<column1>, ... <columnN>)

Implements DatabaseSqlStatements.

int Oracle8iSqlStatements::generateDropIndexSql const char *  indexName,
CStdString &  dropIndexSql,
CStdString &  ,
CStdString & 
[inline, virtual]
 

Example of method's result:

DROP INDEX <indexName>

Implements DatabaseSqlStatements.

int Oracle8iSqlStatements::generateExplainPlanScript const char *  query,
const char *  queryID,
CStdString &  explainPlanSql,
CStdString &  ,
CStdString & 
[inline, virtual]
 

Example of method's result:

DELETE FROM PLAN_TABLE WHERE STATEMENT_ID = <queryID>; EXPLAIN PLAN SET STATEMENT_ID = <queryID> FOR <query>; SELECT LPAD(' ',2*LEVEL-2)||OPERATION||' '||OPTIONS||' '||OBJECT_NAME TEXT FROM PLAN_TABLE WHERE STATEMENT_ID = <queryID> CONNECT BY PRIOR STATEMENT_ID = STATEMENT_ID AND PRIOR ID = PARENT_ID START WITH STATEMENT_ID = <queryID> AND ID = 0;

Implements DatabaseSqlStatements.

int Oracle8iSqlStatements::generateOidGenerationSupportCreationScript const char *  projectName,
CStdString &  result,
CStdString &  ,
CStdString & 
[inline, virtual]
 

Generates SQL script that creates the SEQUENCE used for OID generation (generateSelectNextOidSql()). The name of the sequence is created from projectName using OID_GENERATING_SEQUENCE_NAME.

For return values and parameter descriptions see DatabaseSqlStatements::generateOidGenerationSupportCreationScript().

Example of method's result:

CREATE SEQUENCE <sequenceName> START WITH 1 MINVALUE 1 MAXVALUE 2000000000 NOCYCLE NOCACHE;

Implements DatabaseSqlStatements.

int Oracle8iSqlStatements::generateOidGenerationSupportDropScript const char *  projectName,
CStdString &  result,
CStdString &  ,
CStdString & 
[inline, virtual]
 

Generates SQL script that drops the SEQUENCE created by generateOidGenerationSupportCreationScript().

For return values and parameter descriptions see DatabaseSqlStatements::generateOidGenerationSupportDropScript().

Example of method's result:

DROP SEQUENCE <sequenceName>;

Implements DatabaseSqlStatements.

int Oracle8iSqlStatements::generateSelectNextOidSql const char *  projectName,
CStdString &  result,
CStdString &  ,
CStdString & 
[inline, virtual]
 

Example of method's result:

SELECT <sequenceName>.NEXTVAL FROM DUAL

Implements DatabaseSqlStatements.

int Oracle8iSqlStatements::generateDeleteSql const char *  tableName,
const char *  whereClause,
CStdString &  deleteSql,
CStdString &  ,
CStdString & 
[inline, virtual]
 

Example of method's result:

DELETE FROM <tableName> <whereClause>

Implements DatabaseSqlStatements.

int Oracle8iSqlStatements::generateComment const char *  commentText,
CStdString &  commentSql,
CStdString &  ,
CStdString & 
[inline, virtual]
 

Example of method's result:

/* commentText * /

Implements DatabaseSqlStatements.

const char* Oracle8iSqlStatements::getScriptStatementTerminator  )  [inline, virtual]
 

Returns string that should be placed after every SQL statement, if generating SQL script.

Returns:
";\n"

Implements DatabaseSqlStatements.

virtual int Oracle8iSqlStatements::translateOrderByStatement const char *  src,
CStdString &  dest,
CStdString &  ,
CStdString & 
[inline, virtual]
 

Because Oracle 8i support SQL92 ORDER BY clauses, just returns src as CStdString.

Implements DatabaseSqlStatements.


The documentation for this class was generated from the following file:
Generated on Wed Aug 11 22:36:07 2004 for IOPC by Doxygen 1.3.6