XenDesktop 数据库恢复测试,切换新的数据库
2015-06-01 16:15
253 查看
最近在写一个数据库操作的小的桌面程序,想在程序中直接调用*.sql脚本,来连续创建多个数据库,里面用到了将控制台输出重定向到Text控件上。
遇到的问题:
问题一: 重定向是成功了,控制台的信息在Text控件上输出,但是我在创建数据库的时候,创建第一个数据库的时候,信息还能正常显示,但是脚本运行到创建第二个的时候,整个窗口就变成“未响应”的状态,直到后台将所有库都创建完成后,程序窗口才有反应,能有继续使用,并将信息一下在全部显示在Text控件中。很不解这是什么原因?
问题二:如附件中图片所示,我想在创建数据库的前面加上一段提示,如“正在创建系统库...”。但是要怎么在*.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控件上。
相关文章推荐
- mongoDB authentication
- Navicat 2003-can't connect to MYSQL server on 'localhost'(10061)
- Oracle表分区
- mysql left( right ) join使用on 与where 筛选的差异
- win8升级到8.1后的种种麻烦(鼠标+QQ游戏+MySQL+用户账户)
- (7.2.6)SQL 合并多行记录的方法总汇
- 查询oracle中所有用户信息
- 【数据管理和数据库的发展史】唯有源头活水来——数据库学习之路(1)
- mysql 1130
- mysql 1130无法连接
- 命令行导入mysql的sql数据
- Oracle sql语句 创建表空间、用户
- Oracle 静默安装cadb错误 TNS-12547: TNS:lost contact
- sql 创建表空间、用户
- 存储过程中执行动态Sql语句
- 更改mysql默认引擎为Innodb 单个多个
- Arrays of Length Zero在redis中的应用
- node.js 访问mysql
- mysql备份与恢复还原
- oracle 笔记DBA