您的位置:首页 > 数据库

XenDesktop 数据库恢复测试,切换新的数据库

2015-06-01 16:15 253 查看
    最近在写一个数据库操作的小的桌面程序,想在程序中直接调用*.sql脚本,来连续创建多个数据库,里面用到了将控制台输出重定向到Text控件上。

 

遇到的问题:

     问题一: 重定向是成功了,控制台的信息在Text控件上输出,但是我在创建数据库的时候,创建第一个数据库的时候,信息还能正常显示,但是脚本运行到创建第二个的时候,整个窗口就变成“未响应”的状态,直到后台将所有库都创建完成后,程序窗口才有反应,能有继续使用,并将信息一下在全部显示在Text控件中。很不解这是什么原因?

 

     问题二:如附件中图片所示,我想在创建数据库的前面加上一段提示,如“正在创建系统库...”。但是要怎么在*.sql脚本中写代码?

 

     问题有两个,希望高手给予指点,小弟在这里先行谢谢了。

程序中代码

下面是一段重定向的类:

 

import java.io.OutputStream;
import java.io.PrintStream;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Text;

public class MyPrintStream extends PrintStream {

private Text text;

public MyPrintStream(OutputStream out, Text text) {
super(out);
this.text = text;
}

/**
* 在这里重截,所有的打印方法都要调用的方法
*/
public void write(byte[] buf, int off, int len) {
final String message = new String(buf, off, len);

/* SWT非界面线程访问组件的方式 */
Display.getDefault().syncExec(new Thread(){
public void run(){
/* 在这里把信息添加到组件中 */
text.append(message);
}
});
}
}

 
在然后在用下面的代码调用:

 

MyPrintStream mps = new MyPrintStream(System.out, text);
System.setOut(mps);
System.setErr(mps);


 
这样就完成了控制台重定向到Text控件上。

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: