You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@turbine.apache.org by br...@apache.org on 2001/12/14 23:14:06 UTC
cvs commit: jakarta-turbine-torque/src/templates/sql/load/sybase row.vm val.vm
brekke 01/12/14 14:14:06
Modified: src/java/org/apache/torque/adapter DBFactory.java
src/java/org/apache/torque/task TorqueDataDumpTask.java
Added: notes sybase-status.txt
profile sybase.profile
src/templates/sql/db-init/sybase createdb.vm
src/templates/sql/load/sybase row.vm val.vm
Removed: src/templates/sql/db-init/sybase unix.vm windows.vm
Log:
From patch submitted by Byron Foster: Support for sybase updated and
testbed passes. Needed to re-implement TorqueDataDump.TableTool with village
due to the sybase jdbc driver not being jdbc 2.0 compliant. Notes about the
support for sybase have been added in the notes directory.
Revision Changes Path
1.1 jakarta-turbine-torque/notes/sybase-status.txt
Index: sybase-status.txt
===================================================================
--------------------------------------------------------------------------
S Y B A S E S T A T U S
--------------------------------------------------------------------------
o Sybase support is working and passing the testbed. JConnect, the
jdbc driver distributed by Sybase, is not completely jdbc 2.0
compliant, so certain items will not work. The database metadata is
not supported so the JDBCToXMLSchema tasks will not generate the schema
properly at this time.
o TorqueDataDumpTask will need to know about contraints. On databases
without constrains, the load generated sql will work, but with constraints,
the insert statements need to be in the correct order or they will fail
with constaint violations.
1.1 jakarta-turbine-torque/profile/sybase.profile
Index: sybase.profile
===================================================================
# location of jar that you will be using for testing
# so that it can be copied into the dist/lib directory.
torque.testDatabaseJar = ${lib.repo}/jconnect-5.5.jar
torque.idMethod = idbroker
torque.defaultDatabase = bookstore
torque.sqlTest.defaultDatabase = sqltest
torque.sqlTest.databaseUrl = jdbc:sybase:Tds:localhost:5000/sqltest
lib.dir = ../lib
# -------------------------------------------------------------------
#
# T O R Q U E C O N F I G U R A T I O N F I L E
#
# -------------------------------------------------------------------
project = bookstore
# -------------------------------------------------------------------
#
# T A R G E T D A T A B A S E
#
# -------------------------------------------------------------------
database = sybase
# -------------------------------------------------------------------
#
# O B J E C T M O D E L I N F O R M A T I O N
#
# -------------------------------------------------------------------
# These settings will allow you to customize the way your
# Peer-based object model is created.
# -------------------------------------------------------------------
# addSaveMethod=true adds tracking code to determine how to save objects
#
# addGetByNameMethod=true adds methods to get fields by name/position
#
# complexObjectModel=true generates an om with collection support
#
# addTimeStamp=true puts time stamps in generated files
#
# addIntakeRetrievable=implement Intake's Retrievable interface
# -------------------------------------------------------------------
targetPackage=org.apache.torque.test
basePrefix=Base
addSaveMethod=true
addGetByNameMethod=true
complexObjectModel=true
addTimeStamp=true
addIntakeRetrievable=false
# -------------------------------------------------------------------
#
# D A T A B A S E S E T T I N G S
#
# -------------------------------------------------------------------
# JDBC connection settings. This is used by the JDBCToXML task that
# will create an XML database schema from JDBC metadata. These
# settings are also used by the SQL Ant task to initialize your
# Turbine system with the generated SQL.
# -------------------------------------------------------------------
createDatabaseUrl = jdbc:sybase:Tds:localhost:5000/master
databaseUrl = jdbc:sybase:Tds:localhost:5000/bookstore
databaseDriver = com.sybase.jdbc2.jdbc.SybDriver
databaseUser = sa
databasePassword =
databaseHost = localhost
# Tells JDBC task that javaName attribute for the tables and columns
# should be made same as SQL name.
sameJavaName=false
# -------------------------------------------------------------------
# You should NOT have to edit anything below here.
# -------------------------------------------------------------------
# -------------------------------------------------------------------
#
# T E M P L A T E P A T H
#
# -------------------------------------------------------------------
templatePath = ../templates
# -------------------------------------------------------------------
#
# C O N T R O L T E M P L A T E S
#
# -------------------------------------------------------------------
SQLControlTemplate = sql/base/Control.vm
OMControlTemplate = om/Control.vm
idTableControlTemplate = sql/id-table/Control.vm
DataDTDControlTemplate = data/Control.vm
DataDumpControlTemplate = data/dump/Control.vm
DataSQLControlTemplate = sql/load/Control.vm
# -------------------------------------------------------------------
#
# O U T P U T D I R E C T O R Y
#
# -------------------------------------------------------------------
outputDirectory=src
# -------------------------------------------------------------------
#
# S C H E M A D I R E C T O R Y
#
# -------------------------------------------------------------------
schemaDirectory=schema
1.19 +2 -1 jakarta-turbine-torque/src/java/org/apache/torque/adapter/DBFactory.java
Index: DBFactory.java
===================================================================
RCS file: /home/cvs/jakarta-turbine-torque/src/java/org/apache/torque/adapter/DBFactory.java,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -r1.18 -r1.19
--- DBFactory.java 2001/11/15 18:22:14 1.18
+++ DBFactory.java 2001/12/14 22:14:06 1.19
@@ -68,7 +68,7 @@
* @author <a href="mailto:bmclaugh@algx.net">Brett McLaughlin</a>
* @author <a href="mailto:ralf@reswi.ruhr.de">Ralf Stranzenbach</a>
* @author <a href="mailto:dlr@finemaltcoding.com">Daniel Rall</a>
- * @version $Id: DBFactory.java,v 1.18 2001/11/15 18:22:14 mpoeschl Exp $
+ * @version $Id: DBFactory.java,v 1.19 2001/12/14 22:14:06 brekke Exp $
*/
public class DBFactory
{
@@ -160,6 +160,7 @@
driverToAdapterMap.put("org.postgresql.Driver", "DBPostgres");
driverToAdapterMap.put("com.sap.dbtech.jdbc.DriverSapDB", "DBSapDB");
driverToAdapterMap.put("com.sybase.jdbc.SybDriver", "DBSybase");
+ driverToAdapterMap.put("com.sybase.jdbc2.jdbc.SybDriver", "DBSybase");
driverToAdapterMap.put("weblogic.jdbc.pool.Driver", "DBWeblogic");
}
1.6 +22 -18 jakarta-turbine-torque/src/java/org/apache/torque/task/TorqueDataDumpTask.java
Index: TorqueDataDumpTask.java
===================================================================
RCS file: /home/cvs/jakarta-turbine-torque/src/java/org/apache/torque/task/TorqueDataDumpTask.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- TorqueDataDumpTask.java 2001/11/05 10:12:19 1.5
+++ TorqueDataDumpTask.java 2001/12/14 22:14:06 1.6
@@ -71,13 +71,16 @@
import org.apache.torque.engine.database.model.Database;
import org.apache.torque.engine.database.transform.XmlToAppData;
+import com.workingdogs.village.QueryDataSet;
+import com.workingdogs.village.Record;
+
/**
* An extended Texen task used for dumping data from db into XML
*
* @author <a href="mailto:fedor.karpelevitch@home.com"> Fedor Karpelevitch </a>
* @author <a href="jvanzyl@zenplex.com">Jason van Zyl</a>
* @author <a href="dlr@finemaltcoding.com">Daniel Rall</a>
- * @version $Id: TorqueDataDumpTask.java,v 1.5 2001/11/05 10:12:19 dlr Exp $
+ * @version $Id: TorqueDataDumpTask.java,v 1.6 2001/12/14 22:14:06 brekke Exp $
*/
public class TorqueDataDumpTask
extends TorqueDataModelTask
@@ -293,9 +296,10 @@
*/
public class TableTool implements Iterator
{
- private ResultSet rs;
+ private QueryDataSet qds;
private boolean isEmpty;
-
+ private int curIndex = -1;
+ private Record curRec = null;
/**
* Constructor for the TableTool object
@@ -312,10 +316,11 @@
* @exception SQLException Problem using database record set
* cursor.
*/
- protected TableTool(ResultSet rs) throws SQLException
+ protected TableTool(QueryDataSet qds) throws Exception
{
- this.rs = rs;
- this.isEmpty = !rs.isBeforeFirst();
+ this.qds = qds;
+ this.qds.fetchRecords();
+ this.isEmpty = !(qds.size() > 0);
}
@@ -328,14 +333,13 @@
* @exception SQLException Problem creating connection or
* executing query.
*/
- public TableTool fetch(String tableName) throws SQLException
+ public TableTool fetch(String tableName) throws Exception
{
log("Fetching data for table " + tableName, Project.MSG_INFO);
// Set Statement object in associated TorqueDataDump
// instance
- stmt = conn.createStatement();
return new TableTool
- (stmt.executeQuery("SELECT * FROM " + tableName));
+ (new QueryDataSet(conn, "SELECT * FROM " + tableName));
}
@@ -348,11 +352,11 @@
{
try
{
- return !(rs.isLast() || this.isEmpty);
+ return ((this.curIndex < this.qds.size()-1) && (!isEmpty));
}
- catch (SQLException se)
+ catch (Exception se)
{
- System.err.println("SQLException :");
+ System.err.println("Exception :");
se.printStackTrace();
}
return false;
@@ -370,11 +374,11 @@
try
{
System.err.print(".");
- rs.next();
+ this.curRec = this.qds.getRecord(++curIndex);
}
- catch (SQLException se)
+ catch (Exception se)
{
- System.err.println("SQLException while iterating:");
+ System.err.println("Exception while iterating:");
se.printStackTrace();
throw new NoSuchElementException(se.getMessage());
}
@@ -392,11 +396,11 @@
{
try
{
- return rs.getString(columnName);
+ return(this.curRec.getValue(columnName).asString());
}
- catch (SQLException se)
+ catch (Exception se)
{
- log("SQLException fetching value " + columnName + ": " +
+ log("Exception fetching value " + columnName + ": " +
se.getMessage(), Project.MSG_ERR);
}
return null;
1.1 jakarta-turbine-torque/src/templates/sql/db-init/sybase/createdb.vm
Index: createdb.vm
===================================================================
#foreach ($databaseName in $databaseNames)
USE MASTER
;
DROP DATABASE $databaseName
;
CREATE DATABASE $databaseName
;
#end
1.1 jakarta-turbine-torque/src/templates/sql/load/sybase/row.vm
Index: row.vm
===================================================================
INSERT INTO $row.Table.Name (##
#set ($comma="")#foreach($col in $row.ColumnValues)$comma${col.Column.Name}#set($comma=",")#end)
VALUES (#set ($comma="")#foreach($col in $row.ColumnValues)$comma${generator.parse("sql/load/sybase/val.vm", "", "column", $col)}#set ($comma=",")#end);
1.1 jakarta-turbine-torque/src/templates/sql/load/sybase/val.vm
Index: val.vm
===================================================================
#if($column.Column.TorqueType=="VARCHAR")'$column.Value'#else$column.Value#end
--
To unsubscribe, e-mail: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>
Re: cvs commit: jakarta-turbine-torque/src/templates/sql/load/sybase row.vm val.vm
Posted by Martin Poeschl <mp...@marmot.at>.
brekke@apache.org wrote:
> brekke 01/12/14 14:14:06
>
> Modified: src/java/org/apache/torque/adapter DBFactory.java
> src/java/org/apache/torque/task TorqueDataDumpTask.java
> Added: notes sybase-status.txt
> profile sybase.profile
> src/templates/sql/db-init/sybase createdb.vm
> src/templates/sql/load/sybase row.vm val.vm
> Removed: src/templates/sql/db-init/sybase unix.vm windows.vm
> Log:
> From patch submitted by Byron Foster: Support for sybase updated and
> testbed passes. Needed to re-implement TorqueDataDump.TableTool with village
> due to the sybase jdbc driver not being jdbc 2.0 compliant. Notes about the
> support for sybase have been added in the notes directory.
>
> Revision Changes Path
> 1.1 jakarta-turbine-torque/notes/sybase-status.txt
please don't forget to update the changes.xml
martin
--
To unsubscribe, e-mail: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>