All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.jsoftware.config.dialect.SybaseDialect Maven / Gradle / Ivy

package org.jsoftware.config.dialect;

import org.jsoftware.log.Log;
import org.jsoftware.log.LogFactory;

import java.sql.*;

/**
 * Sybase dialect
 * @author Chandar Rayane
 */
public class SybaseDialect extends DefaultDialect {
	private static final long serialVersionUID = -109096601395312248L;
	private static final Log logger = LogFactory.getInstance();
	
	
	@Override
	public void checkAndCreateStruct(Connection con) throws SQLException {
        boolean autoCommit = con.getAutoCommit();
		con.setAutoCommit(true);
        try {
		    ResultSet rs = con.getMetaData().getTables(null, null, DBPATCH_TABLE_NAME, null);
		    boolean tableFound = rs.next();
		    rs.close();
		    if (! tableFound) {
                try {
                    con.createStatement().execute("CREATE TABLE " + DBPATCH_TABLE_NAME + "(patch_name varchar(128), patch_date datetime NULL, patch_db_date datetime NULL)");
                    insertEmptyRow(con);
                } catch (SQLException e) {
                    logger.info("An error occurred while creating '"+DBPATCH_TABLE_NAME+"' table (in Sybase database). Message: "+e.getMessage());
                    throw e;
                }
            }
		    rs = con.createStatement().executeQuery("SELECT patch_name FROM " + DBPATCH_TABLE_NAME +" WHERE patch_name IS NULL");
		    if (! rs.next()) {
			    insertEmptyRow(con);
		    }
		    rs.close();
        } finally {
            con.setAutoCommit(autoCommit);
        }
	}

	public Timestamp getNow(Connection con) throws SQLException {
		Statement stm = con.createStatement();
		ResultSet rs = stm.executeQuery("SELECT getDate()");
		Timestamp ts = null;
		try {
			rs.next();
			ts = rs.getTimestamp(1);
			rs.close();
		} finally {
			stm.close();
			rs.close();
		}
		return ts;
	}


	private void insertEmptyRow(Connection con) throws SQLException {
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy