激战的后厨2观看完整版,強姦亂倫強姦在线观看,国产无套内射普通话对白,老头呻吟喘息硕大撞击,他扒开我小泬添我三男一女视频

廈門服務器租用>> 如何用ASP代碼實現虛擬主機

如何用ASP代碼實現虛擬主機

發布時間:2013/1/31 16:31:56    來源: 縱橫數據
在虛擬主機的環境下,因為沒有管理員權限,只有數據庫使用權限,定時備份SQL數據是 

個比較麻煩的問題。解決思路如下:(僅對SQL2000有效) 
1. 利用T-SQL備份數據庫到指定目錄,文件名根據日期指定。 
2. 利用Resin的定時功能,定時執行備份。 
3. 用戶定時下載備份并且刪除過期備份。 

導出全部數據到Excel也比較實用。下面提供的方法可以導出庫中的全部表,也可以指定 

幾個表導出。注意: 
1. 因為是導出全部數據,在數據比較多的情況下慎用。 
2. 理論上應該適用各種JDBC數據庫,僅對SQL2000測試過 
3. 對于B/S下載,建議不要在服務器上生成文件,以免造成垃圾文件。直接從HTTP的Response中取得OutputStream進行輸出。 
4. Excel操作的API請到這里下載://www.andykhan.com/jexcelapi/ 


package steeven; 
import jxl.write.*; 
import java.util.*; 
import java.sql.Statement; 
import java.sql.ResultSet; 
import java.sql.Types; 
import java.sql.Connection; 
import java.sql.PreparedStatement; 
import java.sql.SQLException; 
import java.text.DateFormat; 
import java.io.*; 

/** 
* <p>Title: 數據庫備份</p> 
* <p>Description: 在Java中備份數據庫</p> 
* @author steeven 
* @version 1.0 
*/ 
public class DBackup{ 
  Context ctx ; 
  public DBackup(Context ctx) { 
    this.ctx = ctx; 
  } 
  /** 
  * 備份SQL2000數據庫到文件,整個數據庫備份 
  * 文件名后面將追加備份年月日。例如:c:\dbBackup\mydb031109 
  * @param file 導出的文件名全路徑。例如:"c:\\dbBackup\\mydb" 
  */ 
  public void backup(String dbName, String file)throws SQLException{ 
    String sql = "BACKUP DATABASE ["+dbName+"] TO DISK = N’"; 
    sql += file + new SimpleDateFormat("yyMMdd").format(new Date()); 
    sql += "’ WITH NOINIT , NOUNLOAD , NAME = N’lvdong’, NOSKIP ,  

STATS = 10, NOFORMAT"; 
    Statement stmt = ctx.getConnection().createStatement(); 
    stmt.executeUpdate(sql); 
  } 
  /** 
  * 導出整個數據庫到Excel 
  * @param conn 數據庫連接 
  * @param out 輸出Stream 
  */ 
  public static void db2Excel(Connection conn,OutputStream out)throws  

Exception{ 
    db2Excel(conn,out,getTables(conn)); 
  } 
  /** 
  * 導出數據庫中指定的表名到Excel 
  * @param conn 數據庫連接 
  * @param out 輸出Stream 
  * @param tables 表名 
  * @throws Exception 
  */ 
  public static void db2Excel(Connection conn,OutputStream out,List  

tables)throws Exception{ 
    WritableWorkbook wb = jxl.Workbook.createWorkbook(out); 
    for (int i = 0; i < tables.size(); i++) { 
        WritableSheet sheet = wb.createSheet(tables.get(i).toString(),i); 
        writeSheet(sheet,tables.get(i).toString(),conn); 
    } 
    wb.write(); 
    wb.close(); 
  } 
  /** 
  * 導出表數據到Excel的sheet 
  */ 
  public static void writeSheet( 
    WritableSheet sheet,String table,Connection conn) 
    throws Exception 
  { 
    //取得所有表數據 
    String sql = "select * from "+DB.ESC1+table+DB.ESC2; 
    ResultSet rs = conn.createStatement().executeQuery(sql); 
    //根據ResultSet的MetaData取得表頭,列數,列寬 
    java.sql.ResultSetMetaData meta = rs.getMetaData(); 
    int n = meta.getColumnCount(); 
    int row = 0; 
    WritableCellFormat fmt = new WritableCellFormat(); 
    fmt.setBackground(jxl.format.Colour.YELLOW); 
    for (int i = 0; i < n; i++){ 
        //導出表頭 
        sheet.addCell(new Label(i, row, meta.getColumnLabel(i + 1),fmt)); 
        //設定列寬 
//         sheet.setColumnView(i,meta.getColumnDisplaySize(i+1)); 
    } 
    row++; 
    while(rs.next()){ 
        for (int i = 0; i < n; i++){ 
          //根據列的類型決定Excel中對應的Cell類型,缺省為文本。 
          WritableCell cell ; 
          switch(meta.getColumnType(i+1)){ 
            case Types.BIT: 
            case Types.BIGINT: 
            case Types.BOOLEAN: 
            case Types.DECIMAL: 
            case Types.FLOAT: 
            case Types.INTEGER: 
            case Types.NUMERIC: 
            case Types.REAL: 
            case Types.SMALLINT: 
            case Types.TINYINT: 
                double val = rs.getDouble(i+1); 
                if (rs.wasNull()) cell = new jxl.write.Blank(i,row); 
                cell = new jxl.write.Number(i, row, val); 
                break; 
            case Types.DATE: 
            case Types.TIME: 
            case Types.TIMESTAMP: 
                Date date = rs.getDate(i + 1); 
                if (rs.wasNull()) cell = new jxl.write.Blank(i,row); 
                else cell = new jxl.write.DateTime(i, row, date); 
                break; 
            default: 
                cell = new Label(i, row, rs.getString(i + 1)); 
          } //end of switch 
          sheet.addCell(cell); 
        }//end of for each column 
        row++; 
    }//end of while(rs.next()) 
  } 
  /** 
  * 從Connection的MetaData取得所有數據表的名稱 
  */ 
  public static List getTables(Connection conn)throws Exception{ 
    ResultSet rs = conn.getMetaData().getTables( 
        null,null,null,new String[]{"Table"}); 
    List list = new ArrayList(); 
    while(rs.next()) 
        list.add(rs.getString(3)); 
    rs.close(); 
    return list; 
  } 

  public static void main(String[] args) throws Exception{ 
    Connection conn = DB.getConn(); 
    FileOutputStream out = new FileOutputStream("c:\\test.xls"); 
    db2Excel(conn,out); 
    out.close(); 
    conn.close(); 
上一篇:沒有了
下一篇:沒有了
在線客服
微信公眾號
免費撥打400-1886560
免費撥打0592-5580190 免費撥打 400-1886560 或 0592-5580190
返回頂部
返回頭部 返回頂部