You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by ad...@apache.org on 2007/04/14 09:16:51 UTC
svn commit: r528775 - in /incubator/tuscany/cpp/das:
VSExpress/tuscany_das/das_runtime/ runtime/das_lite/src/
Author: adrianocrestani
Date: Sat Apr 14 00:16:50 2007
New Revision: 528775
URL: http://svn.apache.org/viewvc?view=rev&rev=528775
Log: (empty)
Modified:
incubator/tuscany/cpp/das/VSExpress/tuscany_das/das_runtime/das_runtime.ncb
incubator/tuscany/cpp/das/VSExpress/tuscany_das/das_runtime/das_runtime.sln
incubator/tuscany/cpp/das/VSExpress/tuscany_das/das_runtime/das_runtime.suo
incubator/tuscany/cpp/das/runtime/das_lite/src/Column.cpp
incubator/tuscany/cpp/das/runtime/das_lite/src/Column.h
incubator/tuscany/cpp/das/runtime/das_lite/src/Config.cpp
incubator/tuscany/cpp/das/runtime/das_lite/src/Config.h
incubator/tuscany/cpp/das/runtime/das_lite/src/GraphBuilderMetaData.cpp
incubator/tuscany/cpp/das/runtime/das_lite/src/ResultSet.cpp
incubator/tuscany/cpp/das/runtime/das_lite/src/ResultSet.h
incubator/tuscany/cpp/das/runtime/das_lite/src/ResultSetMetaData.cpp
incubator/tuscany/cpp/das/runtime/das_lite/src/ResultSetMetaData.h
incubator/tuscany/cpp/das/runtime/das_lite/src/Table.cpp
incubator/tuscany/cpp/das/runtime/das_lite/src/Table.h
Modified: incubator/tuscany/cpp/das/VSExpress/tuscany_das/das_runtime/das_runtime.ncb
URL: http://svn.apache.org/viewvc/incubator/tuscany/cpp/das/VSExpress/tuscany_das/das_runtime/das_runtime.ncb?view=diff&rev=528775&r1=528774&r2=528775
==============================================================================
Binary files - no diff available.
Modified: incubator/tuscany/cpp/das/VSExpress/tuscany_das/das_runtime/das_runtime.sln
URL: http://svn.apache.org/viewvc/incubator/tuscany/cpp/das/VSExpress/tuscany_das/das_runtime/das_runtime.sln?view=diff&rev=528775&r1=528774&r2=528775
==============================================================================
--- incubator/tuscany/cpp/das/VSExpress/tuscany_das/das_runtime/das_runtime.sln (original)
+++ incubator/tuscany/cpp/das/VSExpress/tuscany_das/das_runtime/das_runtime.sln Sat Apr 14 00:16:50 2007
@@ -5,8 +5,6 @@
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "das_lite", "..\das_lite\das_lite.vcproj", "{FFDC7773-6FA6-4477-8624-8D96AACB6BF0}"
EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "d", "..\..\..\..\d\d.vcproj", "{D188253F-3662-4624-ADFB-72F072541902}"
-EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
@@ -20,10 +18,6 @@
{FFDC7773-6FA6-4477-8624-8D96AACB6BF0}.Debug|Win32.Build.0 = Debug|Win32
{FFDC7773-6FA6-4477-8624-8D96AACB6BF0}.Release|Win32.ActiveCfg = Release|Win32
{FFDC7773-6FA6-4477-8624-8D96AACB6BF0}.Release|Win32.Build.0 = Release|Win32
- {D188253F-3662-4624-ADFB-72F072541902}.Debug|Win32.ActiveCfg = Debug|Win32
- {D188253F-3662-4624-ADFB-72F072541902}.Debug|Win32.Build.0 = Debug|Win32
- {D188253F-3662-4624-ADFB-72F072541902}.Release|Win32.ActiveCfg = Release|Win32
- {D188253F-3662-4624-ADFB-72F072541902}.Release|Win32.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
Modified: incubator/tuscany/cpp/das/VSExpress/tuscany_das/das_runtime/das_runtime.suo
URL: http://svn.apache.org/viewvc/incubator/tuscany/cpp/das/VSExpress/tuscany_das/das_runtime/das_runtime.suo?view=diff&rev=528775&r1=528774&r2=528775
==============================================================================
Binary files - no diff available.
Modified: incubator/tuscany/cpp/das/runtime/das_lite/src/Column.cpp
URL: http://svn.apache.org/viewvc/incubator/tuscany/cpp/das/runtime/das_lite/src/Column.cpp?view=diff&rev=528775&r1=528774&r2=528775
==============================================================================
--- incubator/tuscany/cpp/das/runtime/das_lite/src/Column.cpp (original)
+++ incubator/tuscany/cpp/das/runtime/das_lite/src/Column.cpp Sat Apr 14 00:16:50 2007
@@ -30,10 +30,6 @@
Column::~Column(void) {}
-void Column::setReferencedTableName(std::string referencedTable) {
- this->referencedTableName = referencedTableName;
-}
-
void Column::setContainerTable(Table* containerTable) {
this->containerTable = containerTable;
}
@@ -46,20 +42,12 @@
this->pk = pk;
}
-bool Column::isFK(void) const {
- return (references != "");
-}
-
bool Column::isPK(void) const {
return pk;
}
std::string Column::getName(void) const {
return columnName;
-}
-
-std::string Column::getReferencedTableName(void) const {
- return referencedTableName;
}
SQLSMALLINT Column::getSQLType(void) const {
Modified: incubator/tuscany/cpp/das/runtime/das_lite/src/Column.h
URL: http://svn.apache.org/viewvc/incubator/tuscany/cpp/das/runtime/das_lite/src/Column.h?view=diff&rev=528775&r1=528774&r2=528775
==============================================================================
--- incubator/tuscany/cpp/das/runtime/das_lite/src/Column.h (original)
+++ incubator/tuscany/cpp/das/runtime/das_lite/src/Column.h Sat Apr 14 00:16:50 2007
@@ -28,28 +28,28 @@
private:
bool pk;
- std::string referencedTableName;
std::string columnName;
std::string mappedName;
SQLSMALLINT sqlType;
Table* containerTable;
void setContainerTable(Table* containerTable);
- Table* getContainerTable(void) const;
-
+
public:
Column(std::string columnName, SQLSMALLINT sqlType);
virtual ~Column(void);
- void setReferencedTable(std::string referencedTableName);
+ void setReferencedTableAndColumn(std::string referencedTableName, std::string referencedColumnName);
void setPK(bool pk);
void setMappedName(std::string mappedName);
-
+
std::string getMappedName(void) const;
bool isFK(void) const;
std::string getReferencedTableName(void) const;
+ std::string getReferencedColumnName(void) const;
bool isPK(void) const;
SQLSMALLINT getSQLType(void) const;
+ Table* getContainerTable(void) const;
std::string getName(void) const;
Modified: incubator/tuscany/cpp/das/runtime/das_lite/src/Config.cpp
URL: http://svn.apache.org/viewvc/incubator/tuscany/cpp/das/runtime/das_lite/src/Config.cpp?view=diff&rev=528775&r1=528774&r2=528775
==============================================================================
--- incubator/tuscany/cpp/das/runtime/das_lite/src/Config.cpp (original)
+++ incubator/tuscany/cpp/das/runtime/das_lite/src/Config.cpp Sat Apr 14 00:16:50 2007
@@ -92,13 +92,19 @@
}
-Column* Config::getColumn(std::string columnName) const {
- std::map<std::string, Column*>::iterator columnIterator = columns.find(columnName);
+std::list<Relationship*>* Config::getRelationships(std::string tableName) const {
+ std::map<std::string, Relationship*>::iterator it;
+ std::list<Relationship*>* relationshipList = new std::list<Relationship*>();
+
+ for (it = relationships.begin() ; it != relationships.end() ; it++) {
+ Relationship* relationship = *it;
+
+ if (relationship->getFKTableName() == tableName) {
+ relationshipList->push_back(relationship);
+ }
- if (columnIterator == columns.end()) {
- return 0;
}
- return columnIterator->second;
+ return relationshipList;
}
Modified: incubator/tuscany/cpp/das/runtime/das_lite/src/Config.h
URL: http://svn.apache.org/viewvc/incubator/tuscany/cpp/das/runtime/das_lite/src/Config.h?view=diff&rev=528775&r1=528774&r2=528775
==============================================================================
--- incubator/tuscany/cpp/das/runtime/das_lite/src/Config.h (original)
+++ incubator/tuscany/cpp/das/runtime/das_lite/src/Config.h Sat Apr 14 00:16:50 2007
@@ -44,6 +44,7 @@
Table* getTable(std::string tableName) const;
Relationship* getRelationship(std::string tableName, std::string referencedTableName) const;
+ std::list<Relationship*>* getRelationships(std::string tableName) const;
};
Modified: incubator/tuscany/cpp/das/runtime/das_lite/src/GraphBuilderMetaData.cpp
URL: http://svn.apache.org/viewvc/incubator/tuscany/cpp/das/runtime/das_lite/src/GraphBuilderMetaData.cpp?view=diff&rev=528775&r1=528774&r2=528775
==============================================================================
--- incubator/tuscany/cpp/das/runtime/das_lite/src/GraphBuilderMetaData.cpp (original)
+++ incubator/tuscany/cpp/das/runtime/das_lite/src/GraphBuilderMetaData.cpp Sat Apr 14 00:16:50 2007
@@ -67,16 +67,15 @@
commonj::sdo::DataFactoryPtr dataFactory = commonj::sdo::DataFactory::getDataFactory();
dataFactory->addType(DAS_NAMESPACE, DAS_ROOT_NAME);
- std::map<std::string, Table*>& tables = config.getTables();
std::map<std::string, Table*>::iterator it;
- for (it = tables.begin() ; it != tables.end() ; it++) {
+ for (it = graphTables.begin() ; it != graphTables.end() ; it++) {
Table& table = **it;
std::string tableName = table.getTableName();
dataFactory->addType(DAS_NAMESPACE, tableName);
dataFactory->addPropertyToType(DAS_NAMESPACE,DAS_ROOT_NAME,DAS_ROOT_NAME +
- tableName + "Property",DAS_NAMESPACE, tableName, true, false, true);
+ tableName + "Property", DAS_NAMESPACE, tableName, true, false, true);
}
Modified: incubator/tuscany/cpp/das/runtime/das_lite/src/ResultSet.cpp
URL: http://svn.apache.org/viewvc/incubator/tuscany/cpp/das/runtime/das_lite/src/ResultSet.cpp?view=diff&rev=528775&r1=528774&r2=528775
==============================================================================
--- incubator/tuscany/cpp/das/runtime/das_lite/src/ResultSet.cpp (original)
+++ incubator/tuscany/cpp/das/runtime/das_lite/src/ResultSet.cpp Sat Apr 14 00:16:50 2007
@@ -38,7 +38,7 @@
if (metaData.getSQLType(columnIndex) == SQL_CHAR) {
SQLWCHAR strAux = 0;
SQLINTEGER length = 0;
- SQLGetData(stmt->getODBCStatement(), columnIndex, SQL_C_WCHAR, &strAux, 1, &length);
+ SQLGetData(stmt->getODBCStatement(), columnIndex + 1, SQL_C_WCHAR, &strAux, 1, &length);
ret = (wchar_t) strAux;
@@ -50,8 +50,8 @@
}
-wchar_t ResultSet::getSQLChar(std::string columnName) const {
- return getSQLChar(metaData.getColumnIndex(columnName));
+wchar_t ResultSet::getSQLChar(std::string tableName, std::string columnName) const {
+ return getSQLChar(metaData.getColumnIndex(tableName + columnName));
}
float ResultSet::getSQLReal(unsigned int columnIndex) const {
@@ -60,7 +60,7 @@
if (metaData.getSQLType(columnIndex) == SQL_REAL) {
SQLFLOAT real = 0;
SQLINTEGER length = 0;
- SQLGetData(stmt->getODBCStatement(), columnIndex, SQL_C_FLOAT, &real, 1, &length);
+ SQLGetData(stmt->getODBCStatement(), columnIndex + 1, SQL_C_FLOAT, &real, 1, &length);
ret = (float) real;
@@ -72,8 +72,8 @@
}
-float ResultSet::getSQLReal(std::string columnName) const {
- return getSQLReal(metaData.getColumnIndex(columnName));
+float ResultSet::getSQLReal(std::string tableName, std::string columnName) const {
+ return getSQLReal(metaData.getColumnIndex(tableName + columnName));
}
double ResultSet::getSQLFloat(unsigned int columnIndex) const {
@@ -82,7 +82,7 @@
if (metaData.getSQLType(columnIndex) == SQL_FLOAT) {
SQLDOUBLE data = 0;
SQLINTEGER length = 0;
- SQLGetData(stmt->getODBCStatement(), columnIndex, SQL_C_DOUBLE, &data, 1, &length);
+ SQLGetData(stmt->getODBCStatement(), columnIndex + 1, SQL_C_DOUBLE, &data, 1, &length);
ret = (double) strAux;
@@ -94,8 +94,8 @@
}
-double ResultSet::getSQLFloat(std::string columnName) const {
- return getSQLFloat(metaData.getColumnIndex(columnName));
+double ResultSet::getSQLFloat(std::string tableName, std::string columnName) const {
+ return getSQLFloat(metaData.getColumnIndex(tableName + columnName));
}
double ResultSet::getSQLDouble(unsigned int columnIndex) const {
@@ -104,7 +104,7 @@
if (metaData.getSQLType(columnIndex) == SQL_DOUBLE) {
SQLDOUBLE data = 0;
SQLINTEGER length = 0;
- SQLGetData(stmt->getODBCStatement(), columnIndex, SQL_C_DOUBLE, &data, 1, &length);
+ SQLGetData(stmt->getODBCStatement(), columnIndex + 1, SQL_C_DOUBLE, &data, 1, &length);
ret = (double) strAux;
@@ -116,8 +116,8 @@
}
-double ResultSet::getSQLDouble(std::string columnName) const {
- return getSQLDouble(metaData.getColumnIndex(columnName));
+double ResultSet::getSQLDouble(std::string tableName, std::string columnName) const {
+ return getSQLDouble(metaData.getColumnIndex(tableName + columnName));
}
std::string ResultSet::getSQLDecimal(unsigned int columnIndex) const {
@@ -127,11 +127,11 @@
SQLPOINTER sqlPtr = 0;
SQLCHAR strAux[1];
SQLINTEGER length = 0;
- SQLGetData(statement, column, SQL_C_CHAR, &strAux, 1, &length);
+ SQLGetData(statement, columnIndex + 1, SQL_C_CHAR, &strAux, 1, &length);
length++;
sqlPtr = (SQLCHAR*) malloc(length*sizeof(SQLCHAR));
SQLINTEGER aux = 0;
- SQLGetData(statement, column, SQL_C_CHAR, sqlPtr, length, &aux);
+ SQLGetData(statement, columnIndex + 1, SQL_C_CHAR, sqlPtr, length, &aux);
std::string ret = (char*) sqlPtr);
delete [] sqlPtr;
@@ -145,13 +145,13 @@
}
-std::string ResultSet::getSQLDecimal(std::string columnName) const {
- return getSQLDecimal(metaData.getColumnIndex(columnName));
+std::string ResultSet::getSQLDecimal(std::string tableName, std::string columnName) const {
+ return getSQLDecimal(metaData.getColumnIndex(tableName + columnName));
}
bool ResultSet::isNull(unsigned int columnIndex) const {}
-bool ResultSet::isNull(std::string columnName) const {}
+bool ResultSet::isNull(std::string tableName, std::string columnName) const {}
bool ResultSet::next(void) {
return (SQL_SUCCESS == SQLFetch(stmt->getODBCStatement()));
Modified: incubator/tuscany/cpp/das/runtime/das_lite/src/ResultSet.h
URL: http://svn.apache.org/viewvc/incubator/tuscany/cpp/das/runtime/das_lite/src/ResultSet.h?view=diff&rev=528775&r1=528774&r2=528775
==============================================================================
--- incubator/tuscany/cpp/das/runtime/das_lite/src/ResultSet.h (original)
+++ incubator/tuscany/cpp/das/runtime/das_lite/src/ResultSet.h Sat Apr 14 00:16:50 2007
@@ -40,22 +40,22 @@
const Statement& getStatement(void) const;
wchar_t getSQLChar(unsigned int columnIndex) const;
- wchar_t getSQLChar(std::string columnName) const;
+ wchar_t getSQLChar(std::string tableName, std::string columnName) const;
float getSQLReal(unsigned int columnIndex) const;
- float getSQLReal(std::string columnName) const;
+ float getSQLReal(std::string tableName, std::string columnName) const;
double getSQLFloat(unsigned int columnIndex) const;
- double getSQLFloat(std::string columnName) const;
+ double getSQLFloat(std::string tableName, std::string columnName) const;
double getSQLDouble(unsigned int columnIndex) const;
- double getSQLDouble(std::string columnName) const;
+ double getSQLDouble(std::string tableName, std::string columnName) const;
std::string getSQLDecimal(unsigned int columnIndex) const;
- std::string getSQLDecimal(std::string columnName) const;
+ std::string getSQLDecimal(std::string tableName, std::string columnName) const;
bool isNull(unsigned int columnIndex) const;
- bool isNull(std::string columnName) const;
+ bool isNull(std::string tableName, std::string columnName) const;
unsigned int rowCount(void) const;
Modified: incubator/tuscany/cpp/das/runtime/das_lite/src/ResultSetMetaData.cpp
URL: http://svn.apache.org/viewvc/incubator/tuscany/cpp/das/runtime/das_lite/src/ResultSetMetaData.cpp?view=diff&rev=528775&r1=528774&r2=528775
==============================================================================
--- incubator/tuscany/cpp/das/runtime/das_lite/src/ResultSetMetaData.cpp (original)
+++ incubator/tuscany/cpp/das/runtime/das_lite/src/ResultSetMetaData.cpp Sat Apr 14 00:16:50 2007
@@ -23,7 +23,10 @@
unsigned int columnCount = getColumnCount();
for (unsigned int i = 1 ; i <= columnCount ; i++) {
- columnsIndexes.insert(std::make_pair(getColumnName(i), i - 1));
+ std::string columnName = getColumnName(i);
+ std::string tableName = getTableName(i);
+ columnsIndexes.insert(std::make_pair(tableName + columnName, i - 1));
+
}
}
@@ -91,14 +94,14 @@
SQLSMALLINT ResultSetMetaData::getSQLType(unsigned int columnIndex) {
SQLSMALLINT sqlType = 0;
- SQLColAttribute(resultSet->getStatement().getODBCStatement(), column, SQL_DESC_TYPE, NULL, NULL, NULL, &sqlType);
+ SQLColAttribute(resultSet->getStatement().getODBCStatement(), columnIndex + 1, SQL_DESC_TYPE, NULL, NULL, NULL, &sqlType);
return sqlType;
}
-SQLSMALLINT ResultSetMetaData::getSQLType(std::string columnName) {
- return getSQLType(getColumnIndex(columnName));
+SQLSMALLINT ResultSetMetaData::getSQLType(std::string tableName, std::string columnName) {
+ return getSQLType(getColumnIndex(tableName + columnName));
}
@@ -106,10 +109,10 @@
SQLCHAR* sqlPtr = 0;
char strAux[1];
SQLSMALLINT length = 0;
- SQLColAttribute(resultSet->getStatement().getODBCStatement(), columnIndex, SQL_DESC_TYPE_NAME, &strAux, 1, (SQLSMALLINT*) &length, NULL);
+ SQLColAttribute(resultSet->getStatement().getODBCStatement(), columnIndex + 1, SQL_DESC_TYPE_NAME, &strAux, 1, (SQLSMALLINT*) &length, NULL);
length++;
sqlPtr = (SQLCHAR*) new SQLCHAR[length];
- SQLColAttributeA(resultSet->getStatement().getODBCStatement(), columnIndex, SQL_DESC_TYPE_NAME, sqlPtr, length, (SQLSMALLINT*) &length, NULL);
+ SQLColAttributeA(resultSet->getStatement().getODBCStatement(), columnIndex + 1, SQL_DESC_TYPE_NAME, sqlPtr, length, (SQLSMALLINT*) &length, NULL);
std::string ret((char*) sqlPtr);
delete [] sqlPtr;
@@ -118,8 +121,8 @@
}
-std::string ResultSetMetaData::getSQLTypeName(std::string columnName) {
- unsigned int columnIndex = getColumnIndex(columnName);
+std::string ResultSetMetaData::getSQLTypeName(std::string tableName, std::string columnName) {
+ unsigned int columnIndex = getColumnIndex(tableName + columnName);
}
@@ -127,10 +130,10 @@
SQLCHAR* sqlPtr = 0;
char strAux[1];
SQLSMALLINT length = 0;
- SQLColAttribute(resultSet->getStatement().getODBCStatement(), columnIndex, SQL_DESC_BASE_COLUMN_NAME, &strAux, 1, (SQLSMALLINT*) &length, NULL);
+ SQLColAttribute(resultSet->getStatement().getODBCStatement(), columnIndex + 1, SQL_DESC_BASE_COLUMN_NAME, &strAux, 1, (SQLSMALLINT*) &length, NULL);
length++;
sqlPtr = (SQLCHAR*) new SQLCHAR[length];
- SQLColAttributeA(resultSet->getStatement().getODBCStatement(), columnIndex, SQL_DESC_BASE_COLUMN_NAME, sqlPtr, length, (SQLSMALLINT*) &length, NULL);
+ SQLColAttributeA(resultSet->getStatement().getODBCStatement(), columnIndex + 1, SQL_DESC_BASE_COLUMN_NAME, sqlPtr, length, (SQLSMALLINT*) &length, NULL);
std::string ret((char*) sqlPtr);
delete [] sqlPtr;
@@ -139,8 +142,8 @@
}
-unsigned int ResultSetMetaData::getColumnIndex(std::string columnName) {
- std::map<std::string, unsigned int>::iterator it = columnsIndexes.find(columnName);
+unsigned int ResultSetMetaData::getColumnIndex(std::string tableName, std::string columnName) {
+ std::map<std::string, unsigned int>::iterator it = columnsIndexes.find(tableName + columnName);
if (it == columnsIndexes.end()) {
throw logic_error("No such column name: " + columnName);
@@ -155,10 +158,10 @@
SQLCHAR* sqlPtr = 0;
char strAux[1];
SQLSMALLINT length = 0;
- SQLColAttribute(resultSet->getStatement().getODBCStatement(), columnIndex, SQL_DESC_TABLE_NAME, &strAux, 1, (SQLSMALLINT*) &length, NULL);
+ SQLColAttribute(resultSet->getStatement().getODBCStatement(), columnIndex + 1, SQL_DESC_TABLE_NAME, &strAux, 1, (SQLSMALLINT*) &length, NULL);
length++;
sqlPtr = (SQLCHAR*) new SQLCHAR[length];
- SQLColAttributeA(resultSet->getStatement().getODBCStatement(), columnIndex, SQL_DESC_TABLE_NAME, sqlPtr, length, (SQLSMALLINT*) &length, NULL);
+ SQLColAttributeA(resultSet->getStatement().getODBCStatement(), columnIndex + 1, SQL_DESC_TABLE_NAME, sqlPtr, length, (SQLSMALLINT*) &length, NULL);
std::string ret((char*) sqlPtr);
delete [] sqlPtr;
@@ -167,21 +170,21 @@
}
-std::string ResultSetMetaData::getTableName(std::string columnName) {
- return getTableName(getColumnIndex(columnName));
+std::string ResultSetMetaData::getTableName(std::string tableName, std::string columnName) {
+ return getTableName(getColumnIndex(tableName + columnName));
}
SQLSMALLINT ResultSetMetaData::getSQLType(unsigned int columnIndex) {
SQLSMALLINT sqlType = 0;
- SQLColAttribute(resultSet->getStatement().getODBCStatement(), columnIndex, SQL_DESC_TYPE, NULL, NULL, NULL, &sqlType);
+ SQLColAttribute(resultSet->getStatement().getODBCStatement(), columnIndex + 1, SQL_DESC_TYPE, NULL, NULL, NULL, &sqlType);
return sqlType;
}
-SQLSMALLINT ResultSetMetaData::getSQLType(std::string columnName) {
- return getSQLType(getColumnIndex(columnName));
+SQLSMALLINT ResultSetMetaData::getSQLType(std::string tableName, std::string columnName) {
+ return getSQLType(getColumnIndex(tableName + columnName));
}
@@ -189,8 +192,8 @@
return getSQLCType(getSQLType(columnIndex));
}
-SQLSMALLINT ResultSetMetaData::getSQLCType(std::string columnName) {
- return getSQLCType(getSQLType(getColumnIndex(columnName)));
+SQLSMALLINT ResultSetMetaData::getSQLCType(std::string tableName, std::string columnName) {
+ return getSQLCType(getSQLType(getColumnIndex(tableName + columnName)));
}
unsigned int ResultSetMetaData::getColumnCount(void) {
@@ -198,6 +201,17 @@
SQLRETURN ret = SQLColAttribute(resultSet->getStatement().getODBCStatement(), NULL, SQL_DESC_COUNT, NULL, NULL, NULL, &columnCount);
return (unsigned int) columnCount;
+
+}
+
+bool ResultSetMetaData::containsColumn(std::string tableName, std::string columnName) const {
+ std::map<std::string, int>::iterator it = columnsIndexes.find(tableName + columnName);
+
+ if (it == columnsIndexes.end()) {
+ return false;
+ }
+
+ return true;
}
Modified: incubator/tuscany/cpp/das/runtime/das_lite/src/ResultSetMetaData.h
URL: http://svn.apache.org/viewvc/incubator/tuscany/cpp/das/runtime/das_lite/src/ResultSetMetaData.h?view=diff&rev=528775&r1=528774&r2=528775
==============================================================================
--- incubator/tuscany/cpp/das/runtime/das_lite/src/ResultSetMetaData.h (original)
+++ incubator/tuscany/cpp/das/runtime/das_lite/src/ResultSetMetaData.h Sat Apr 14 00:16:50 2007
@@ -35,32 +35,33 @@
ResultSetMetaData(ResultSet* aResultSet);
virtual ~ResultSetMetaData(void);
- SQLSMALLINT getSQLCType(SQLSMALLINT sqlType);
+ SQLSMALLINT getSQLCType(SQLSMALLINT sqlType) const;
public:
const ResultSet& getResultSet(void) const;
- SQLSMALLINT getSQLType(int columnIndex);
- SQLSMALLINT getSQLType(std::string columnName);
+ SQLSMALLINT getSQLType(int columnIndex) const;
+ SQLSMALLINT getSQLType(std::string tableName, std::string columnName) const;
- std::string getSQLTypeName(int columnIndex);
- std::string getSQLTypeName(std::string columnName);
+ std::string getSQLTypeName(int columnIndex) const;
+ std::string getSQLTypeName(std::string tableName, std::string columnName) const;
- std::string getColumnName(int columnIndex);
- unsigned int getColumnIndex(std::string columnName);
+ std::string getColumnName(int columnIndex) const;
+ unsigned int getColumnIndex(std::string tableName, std::string columnName) const;
- std::string getTableName(int columnIndex);
- std::string getTableName(std::string columnName);
+ std::string getTableName(int columnIndex) const;
+ std::string getTableName(std::string tableName, std::string columnName) const;
- SQLSMALLINT getSQLType(int columnIndex);
- SQLSMALLINT getSQLType(std::string columnName);
+ SQLSMALLINT getSQLType(int columnIndex) const;
+ SQLSMALLINT getSQLType(std::string tableName, std::string columnName) const;
- SQLSMALLINT getSQLCType(int columnIndex);
- SQLSMALLINT getSQLCType(std::string columnName);
+ SQLSMALLINT getSQLCType(int columnIndex) const;
+ SQLSMALLINT getSQLCType(std::string tableName, std::string columnName) const;
- unsigned int getColumnCount(void);
+ unsigned int getColumnCount(void) const;
+
+ bool containsColumn(std::string tableName, std::string columnName) const;
-
};
#endif //RESULT_SET_META_DATA_H
Modified: incubator/tuscany/cpp/das/runtime/das_lite/src/Table.cpp
URL: http://svn.apache.org/viewvc/incubator/tuscany/cpp/das/runtime/das_lite/src/Table.cpp?view=diff&rev=528775&r1=528774&r2=528775
==============================================================================
--- incubator/tuscany/cpp/das/runtime/das_lite/src/Table.cpp (original)
+++ incubator/tuscany/cpp/das/runtime/das_lite/src/Table.cpp Sat Apr 14 00:16:50 2007
@@ -19,11 +19,36 @@
#include "Table.h"
Table::Table(GraphBuilder& graphBuilderMetaData, std::string tableName) {
- this->graphBuilderMetaData = &graphBuilderMetaData;
+ this->config = &graphBuilderMetaData->getConfig();
this->tableName = tableName;
this->mappedName = tableName;
convOverConfig = false;
- loadFKs();
+
+ //load FKs
+ Connection& conn = graphBuilderMetaData.getResultSetMetaData().
+ getResultSet().getStatement().getConnection();
+ ResultSet* fksResultSet = 0;
+
+ try {
+ fksResultSet = &conn.getDatabase().getFKs(tableName);
+ } throw (std::runtime_error& e) {
+ convOverConfig = true;
+ return;
+
+ }
+
+ while (fkResultSet->next()) {
+ std::string fkColumnName = fksResultSet->getSQLVarchar(7);
+ std::string pkTableName = fksResultSet->getSQLVarchar(2);
+ std::string pkColumnName = fksResultSet->getSQLVarchar(3);
+
+ Relationship relationship = new Relationship(pkTableName, tableName);
+ graphBuilderMetaData->getConfig().addRelationship(*relationship);
+
+ KeyPair keyPair = new KeyPair(pkColumnName, fkColumnName);
+ relationship.addKeyPair(*keyPair);
+
+ }
}
@@ -96,62 +121,65 @@
}
-}
-
-void Table::loadFKs(void) {
- Connection& conn = graphBuilderMetaData->getResultSetMetaData().
- getResultSet().getStatement().getConnection();
- ResultSet* fksResultSet = 0;
-
- try {
- fksResultSet = &conn.getDatabase().getFKs(tableName);
- } throw (std::runtime_error& e) {
- convOverConfig = true;
+ if (convOverConfig) {
loadConvOverConfigFKs(columns);
- return;
-
}
-
- while (fkResultSet->next()) {
- std::string fkColumnName = fksResultSet->getSQLVarchar(7);
- std::string pkTableName = fksResultSet->getSQLVarchar(2);
- std::string pkColumnName = fksResultSet->getSQLVarchar(3);
-
- Relationship relationship = new Relationship(pkTableName, tableName);
- graphBuilderMetaData->getConfig().addRelationship(*relationship);
-
- KeyPair keyPair = new KeyPair(pkColumnName, fkColumnName);
- relationship.addKeyPair(*keyPair);
- }
+}
+Config& getConfig(void) const {
+ return *config;
}
-void Table::createGraph(commonj::sdo::DataFactoryPtr dataFactory) const {
+void Table::createGraph(GraphBuilderMetaData& graphBuilderMetaData, commonj::sdo::DataFactoryPtr dataFactory) const {
std::map<std::string, Column*>::iterator it;
+ std::list<Relationship*>* relationships = config->getRelationships(tableName);
+ std::map<std::string, Relationship*> columnsRelationships;
+
+ for (std::list<Relationship*>::iterator relationshipsIterator = relationships->begin() ;
+ relationshipsIterator != relationships->end() ; relationshipsIterator++) {
+ Relationship* relationship = *relationshipsIterator;
+ std::map<std::string, KeyPair*>& keyPairs; = relationship->getKeyPairs();
+
+ for (std::map<std::string, KeyPair*>::iterator keyPairsIterator = keyPairs.begin() ;
+ keyPairsIterator != keyPairs.end() ; keyPairsIterator++) {
+ KeyPair* keyPair = *keyPairsIterator;
+
+ columnsRelationships.insert(std::make_pair(keyPair->getFKColumnName(),
+ relationship));
+
+ }
+
+ }
+
+ delete relationships;
for (it = columns.begin() ; it != columns.end() ; it++) {
Column& column = **it;
- dataFactory->addType(DAS_NAMESPACE, column.getName());
+
+ std::map<std::string, Relationship*> it2 = columnsRelationships.find(column.getName());
- if (column.isFK()) {
- std::string referencedTableName = column.getReferencedTableName();
- Table* referencedTable = graphBuilderMetaData->getTable(referencedTableName);
-
- if (referencedTable != 0) {
- dataFactory->addPropertyToType(DAS_NAMESPACE,referencedTableName,
- referencedTable + tableName + "Property", DAS_NAMESPACE,
- tableName, true, false, false);
-
- } else {
- dataFactory->addPropertyToType(DAS_NAMESPACE,tableName,
- tableName + column.getName() + "Property", SDO_NAMESPACE,
- ODBCTypeHelper::getSDOType(column.getSQLType()) , false, false, true);
+ if (it2 == columnsRelationships.end()) {
+ dataFactory->addType(DAS_NAMESPACE, column.getName());
+ dataFactory->addPropertyToType(DAS_NAMESPACE,tableName,
+ tableName + column.getName() + "Property", SDO_NAMESPACE,
+ ODBCTypeHelper::getSDOType(column.getSQLType()) , false, false, true);
- }
+ continue;
+
+ } else {
+ Relationship& relationship = *((*it)->second);
+ Table* referecedTable = graphBuilderMetaData.getTable(relationship.getPKTableName());
+
+ if (referecedTable != 0) {
+ dataFactory->addPropertyToType(DAS_NAMESPACE, tableName,
+ tableName + relationship.getPKTableName() + "Property", DAS_NAMESPACE,
+ relationship.getPKTableName(), true, false, false);
+ }
+
}
-
+
}
}
@@ -161,7 +189,7 @@
std::map<std::string, Column*>::iterator it;
for (it = columns.begin() ; it != columns.end() ; it++) {
- Column* column = it->first;
+ Column* column = it->second;
if (column->isFK()) {
@@ -205,3 +233,8 @@
}
}
+
+void Table::removeAllColumns(void) {
+ columns.clear();
+}
+
Modified: incubator/tuscany/cpp/das/runtime/das_lite/src/Table.h
URL: http://svn.apache.org/viewvc/incubator/tuscany/cpp/das/runtime/das_lite/src/Table.h?view=diff&rev=528775&r1=528774&r2=528775
==============================================================================
--- incubator/tuscany/cpp/das/runtime/das_lite/src/Table.h (original)
+++ incubator/tuscany/cpp/das/runtime/das_lite/src/Table.h Sat Apr 14 00:16:50 2007
@@ -25,6 +25,7 @@
#include "das_constants.h"
#include "Relationship.h"
+#include "Config.h"
#include "Column.h"
#include "ODBCTypeHelper.h"
#include "commonj/sdo/DataFactory.h"
@@ -34,7 +35,7 @@
private:
std::map<std::string, Column*> columns;
- GraphBuilder* graphBuilderMetaData;
+ Config* config;
std::string tableName;
std::string mappedName;
bool convOverConfig;
@@ -44,14 +45,16 @@
virtual ~Table(void);
void addColumns(std::list<Column*>& columns);
- void loadFKs(void);
void loadConvOverConfigFKs(std::list<Column*>& columns);
void setMappedName(std::string mappedName);
+ void removeAllColumns(void);
std::string getMappedName(void) const;
+ Config& getConfig(void) const;
std::string getTableName(void) const;
+ Table* clone();
- void createGraph(commonj::sdo::DataFactoryPtr dataFactory) const;
+ void createGraph(GraphBuilderMetaData& graphBuilderMetaData, commonj::sdo::DataFactoryPtr dataFactory) const;
void populateGraph(commonj::sdo::DataObjectPtr dataObject, ResultSet& resultSet) const;
};
---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org