#
压缩日志及数据库文件大小
/*--特别注意
请按步骤进行,未进行前面的步骤,请不要做后面的步骤
否则可能损坏你的数据库.
一般不建议做第4,6两步
第4步不安全,有可能损坏数据库或丢失数据
第6步如果日志达到上限,则以后的数据库处理会失败,在清理日志后才能恢复.
--*/
--下面的所有库名都指你要处理的数据库的库名
1.清空日志
DUMP TRANSACTION 库名 WITH NO_LOG
2.截断事务日志:
BACKUP LOG 库名 WITH NO_LOG
3.收缩数据库文件(如果不压缩,数据库的文件不会减小
企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件
--选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了
--选择数据文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了
也可以用SQL语句来完成
--收缩数据库
DBCC SHRINKDATABASE(库名)
--收缩指定数据文件,1是文件号,可以通过这个语句查询到:select * from sysfiles
DBCC SHRINKFILE(1)
4.为了最大化的缩小日志文件(如果是sql 7.0,这步只能在查询分析器中进行)
a.分离数据库:
企业管理器--服务器--数据库--右键--分离数据库
b.在我的电脑中删除LOG文件
c.附加数据库:
企业管理器--服务器--数据库--右键--附加数据库
此法将生成新的LOG,大小只有500多K
或用代码:
下面的示例分离 pubs,然后将 pubs 中的一个文件附加到当前服务器。
a.分离
EXEC sp_detach_db @dbname = '库名 '
b.删除日志文件
c.再附加
EXEC sp_attach_single_file_db @dbname = '库名 ',
@physname = 'c:\Program Files\Microsoft SQL Server\MSSQL\Data\库名.mdf '
5.为了以后能自动收缩,做如下设置:
企业管理器--服务器--右键数据库--属性--选项--选择 "自动收缩 "
--SQL语句设置方式:
EXEC sp_dboption '库名 ', 'autoshrink ', 'TRUE '
6.如果想以后不让它日志增长得太大
企业管理器--服务器--右键数据库--属性--事务日志
--将文件增长限制为xM(x是你允许的最大数据文件大小)
--SQL语句的设置方式:
alter database 库名 modify file(name=逻辑文件名,maxsize=20)
转自:hero_213的博客
启动多个JBoss后,shutdown指定的jboss 2009-01-06 11:47
礙於公司的成本問題,一台測試機上竟然掛上正式系統在跑?!別納悶,連 Sand 聽了都覺得訝異!
測試系統不時地都會需要重起 server 的,但是現在這樣害 Sand 測試時都得在下班時間才能重起 JBoss server,哪可能每天都這樣等下班啊?也還好這台機器 ram 夠大了,所以就在成本因素之下,就在那台機器上架起另一 JBoss server 來專心地 Sand 測試吧。
一台伺服器中裝兩個 JBoss server 是應該都沒啥問題,頭大的是在 shutdown 時,一般都是下 ./shutdown.sh -S 便可以關閉 JBoss server 了,但是如果該伺服器中有兩個 jboss,這樣下可能就不確定那一個 JBoss 被關閉了,一般都是先開起來的那個會先被關閉吧。
怎指定所要關閉的 JBoss 呢?
- step 1. 修改 conf/jboss-service.xml 之中的 port(Sand 改成 1199):
1199
- step 2. 要 shutdown 就不能夠在用 shutdown.sh -S 唷!改用 ./shutdown.sh -s jnp://localhost:1199 就可以關閉指定的 jboss server 了,建議寫一個 stop.sh 檔放剛剛說的內容,以後要 shutdown 該 JBoss 就呼叫 stop.sh 即可囉。
這樣一來就可以盡情地測試系統了,不再擔心正式系統的運作被中斷了
Could not locate d:\j2sdk1.4.2\lib;\lib\tools.jar. Unexpected results may o
Make sure that JAVA_HOME points to a JDK and not a JRE.
===========================================================================
.
JBoss Bootstrap Environment
.
JBOSS_HOME: D:\jboss_tomcat\bin\\..
.
JAVA: d:\j2sdk1.4.2\lib;\bin\java
.
JAVA_OPTS: -Dprogram.name=run.bat
.
CLASSPATH: ;d:\j2sdk1.4.2\lib;\lib\tools.jar;D:\jboss_tomcat\bin\\run.jar
.
===========================================================================
.
系统找不到指定的路径。
请按任意键继续 . . .
JAVA_HOME: d:\j2sdk1.4.2
只能是这个,而不是设置的java_home C:\jdk;.;c:\jdk\bin;
要是你java装在c:\jdk下,那么JAVA_HOME就是c:\jdk
--将表数据生成SQL脚本的存储过程
CREATE PROCEDURE dbo.UspOutputData
@tablename sysname
AS
declare @column varchar(1000)
declare @columndata varchar(1000)
declare @sql varchar(4000)
declare @xtype tinyint
declare @name sysname
declare @objectId int
declare @objectname sysname
declare @ident int
set nocount on
set @objectId=object_id(@tablename)
if @objectId is null -- 判断对象是否存在
begin
print 'The object not exists'
return
end
set @objectname=rtrim(object_name(@objectId))
if @objectname is null or charindex(@objectname,@tablename)=0 --此判断不严密
begin
print 'object not in current database'
return
end
if OBJECTPROPERTY(@objectId,'IsTable') < > 1 -- 判断对象是否是table
begin
print 'The object is not table'
return
end
select @ident=status&0x80 from syscolumns where id=@objectid and status&0x80=0x80
if @ident is not null
print 'SET IDENTITY_INSERT '+@TableName+' ON'
declare syscolumns_cursor cursor
for select c.name,c.xtype from syscolumns c where c.id=@objectid order by c.colid
open syscolumns_cursor
set @column=''
set @columndata=''
fetch next from syscolumns_cursor into @name,@xtype
while @@fetch_status < >-1
begin
if @@fetch_status < >-2
begin
if @xtype not in(189,34,35,99,98) --timestamp不需处理,image,text,ntext,sql_variant 暂时不处理
begin
set @column=@column+case when len(@column)=0 then'' else ','end+@name
set @columndata=@columndata+case when len(@columndata)=0 then '' else ','','','
end
+case when @xtype in(167,175) then '''''''''+'+@name+'+''''''''' --varchar,char
when @xtype in(231,239) then '''N''''''+'+@name+'+''''''''' --nvarchar,nchar
when @xtype=61 then '''''''''+convert(char(23),'+@name+',121)+''''''''' --datetime
when @xtype=58 then '''''''''+convert(char(16),'+@name+',120)+''''''''' --smalldatetime
when @xtype=36 then '''''''''+convert(char(36),'+@name+')+''''''''' --uniqueidentifier
else @name end
end
end
fetch next from syscolumns_cursor into @name,@xtype
end
close syscolumns_cursor
deallocate syscolumns_cursor
set @sql='set nocount on select ''insert '+@tablename+'('+@column+') values(''as ''--'','+@columndata+','')'' from '+@tablename
print '--'+@sql
exec(@sql)
if @ident is not null
print 'SET IDENTITY_INSERT '+@TableName+' OFF'
GO
excel合计时,用sum计算时,以每个单元格计数,合并单元格合并个数为几,那么sum就计算几次!
<HTML>
<HEAD>
<title>WEB页面导出为EXCEL文档的方法
</title>
</HEAD>
<body>
<BR>
<table id = "PrintA" width="100%" border="1" cellspacing="0" cellpadding="0" bgcolor = "#61FF13">
<TR style="text-align : center;">
<TD>单元格A</TD>
<TD>单元格A</TD>
<TD>单元格A</TD>
<TD>单元格A</TD>
</TR>
<TR>
<TD colSpan=4 style="text-align : center;"><font color="BLUE" face="Verdana">单元格合并行A</FONT></TD>
</TR>
</TABLE>
<BR>
<table id = "PrintB" width="100%" border="1" cellspacing="0" cellpadding="0">
<TR style="text-align : center;">
<TD>单元格B</TD>
<TD>单元格B</TD>
<TD>单元格B</TD>
<TD>单元格B</TD>
</TR>
<TR>
<TD colSpan=4 style="text-align : center;">单元格合并行B</TD>
</TR>
</TABLE>
<br><br><br>
<input type="button" onclick="javascript:AllAreaWord();" value="导出页面指定区域内容到Word">
<input type="button" onclick="javascript:AllAreaExcel();" value="导出页面指定区域内容到Excel">
<input type="button" onclick="javascript:CellAreaExcel();" value="导出表单单元格内容到Excel">
<SCRIPT LANGUAGE="javascript">
//指定页面区域内容导入Excel
function AllAreaExcel()
{
var oXL = new ActiveXObject("Excel.Application");
var oWB = oXL.Workbooks.Add();
var oSheet = oWB.ActiveSheet;
var sel=document.body.createTextRange();
sel.moveToElementText(PrintA);
sel.select();
sel.execCommand("Copy");
oSheet.Paste();
oXL.Visible = true;
}
//指定页面区域“单元格”内容导入Excel
function CellAreaExcel()
{
var oXL = new ActiveXObject("Excel.Application");
var oWB = oXL.Workbooks.Add();
var oSheet = oWB.ActiveSheet;
var Lenr = PrintA.rows.length;
for (i=0;i<Lenr;i++)
{
var Lenc = PrintA.rows(i).cells.length;
for (j=0;j<Lenc;j++)
{
oSheet.Cells(i+1,j+1).value = PrintA.rows(i).cells(j).innerText;
}
}
oXL.Visible = true;
}
//指定页面区域内容导入Word
function AllAreaWord()
{
var oWD = new ActiveXObject("Word.Application");
var oDC = oWD.Documents.Add("",0,1);
var oRange =oDC.Range(0,1);
var sel = document.body.createTextRange();
sel.moveToElementText(PrintA);
sel.select();
sel.execCommand("Copy");
oRange.Paste();
oWD.Application.Visible = true;
//window.close();
}
</SCRIPT>
</body></html>
-
资料引用:http://www.knowsky.com/302647.html
1,有如下表格,我们要取第2行第2列的值
<table id="table1">
<tr>
<td>1行1列</td>
<td>1行2列</td>
</tr>
<tr>
<td>2行1列</td>
<td>2行2列</td>
</tr>
</table>
2,取值方法
var value==window.table1.rows.item(0).cells.item(0).innerText;
注意:行号,列号是从 0 开始的
例如 var value =window.table1.rows.item(1).cells.item(1).innerText;
这就取到了第2行第2列的值
3.改进方法
上面的方法,需要知道行号,实践中是不方便获得的,下面是改进的方法
<script language="javascript">
var str;
</script>
<table >
<tr onMouseDown="str=this.cells.item(0).innerText">
<td>1行1列</td>
<td>1行2列</td>
</tr>
<tr onMouseDown="str=this.cells.item(0).innerText">
<td>2行1列</td>
<td>2行2列</td>
</tr>
</table>
当鼠标按下时,我们就取到了该行第1列的值
<td onMouseDown="str=this.innerText">2行1列</td>
这可以取鼠标所在列的值
--阿拉伯数字转中文大写数字
Create function dbo.NToCC(@n int)
returns varchar(2)
as
begin
declare @s varchar(2)
if @n=0
set @s='零'
if @n=1
set @s='壹'
if @n=2
set @s='贰'
if @n=3
set @s='叁'
if @n=4
set @s='肆'
if @n=5
set @s='伍'
if @n=6
set @s='陆'
if @n=7
set @s='柒'
if @n=8
set @s='捌'
if @n=9
set @s='玖'
return @s
end
go
--可支持到上亿
alter function dbo.numbertoChineseBigString(@m money)
returns varchar(255)
begin
declare @i varchar(255)
declare @f varchar(255)
declare @r varchar(255)
declare @s varchar(255)
set @s=convert(varchar(255),@m)
if charindex('.',@s)>0
begin
set @i=substring(@s,1,charindex('.',@s)-1)
set @f=substring(@s,charindex('.',@s)+1,len(@s))
end
else
set @i=@s
set @r=''
declare @k int
set @k=len(@i)
while @k>=1
begin
--最多9位
if @k=9
set @r=@r+
dbo.NToCC(convert(int,substring(REVERSE(@i),@k,1)))
--@i
+'亿'
if @k=8
set @r=@r+dbo.NToCC(convert(int,substring(REVERSE(@i),@k,1)))+'仟'
if @k=7
set @r=@r+dbo.NToCC(convert(int,substring(REVERSE(@i),@k,1)))+'佰'
if @k=6
set @r=@r+dbo.NToCC(convert(int,substring(REVERSE(@i),@k,1)))+'拾'
if @k=5
set @r=@r+dbo.NToCC(convert(int,substring(REVERSE(@i),@k,1)))+'万'
if @k=4
set @r=@r+dbo.NToCC(convert(int,substring(REVERSE(@i),@k,1)))+'仟'
if @k=3
set @r=@r+dbo.NToCC(convert(int,substring(REVERSE(@i),@k,1)))+'佰'
if @k=2
set @r=@r+dbo.NToCC(convert(int,substring(REVERSE(@i),@k,1)))+'拾'
if @k=1
set @r=@r+dbo.NToCC(convert(int,substring(REVERSE(@i),@k,1)))+'圆'
set @k=@k-1
end
if convert(float,@f)=0
set @r=@r+'整'
else
begin
if substring(@s,1,1)>''
set @r=@r+dbo.NToCC(convert(int,substring(@f,1,1)))+'角'
if substring(@s,2,1)>''
set @r=@r+dbo.NToCC(convert(int,substring(@f,2,1)))+'分'
end
set @r=replace(@r,'零仟零佰零拾','零')
set @r=replace(@r,'零佰零拾','零')
set @r=replace(@r,'零仟零佰','零')
set @r=replace(@r,'零拾','零')
set @r=replace(@r,'零仟','零')
set @r=replace(@r,'零佰','零')
set @r=replace(@r,'拾零万','拾万')
set @r=replace(@r,'零零圆整','圆整')
set @r=replace(@r,'零圆整','圆整')
set @r=replace(@r,'零零万圆整','万圆整')
return @r
end
请先确认一下,点了打印按钮以后,打印机队列里是否有内容,如果有,并且打印机走纸了,但是打印出来的是白纸,请再看一下点了打印按钮以后,弹出的打
印设置对话框里,右下角的“缩放比例”设置,正确的应该是100。设置以后,保存为默认的打印参数(在工具栏上打印机按钮右面的下拉列表里设置);
如果打印队列里没有内容,就是打印机驱动的问题,需要换一个打印机驱动。
构造函数是和类同名的函数,没有返回类型,构造函数不能在普通的程序里面调用,只有当这个类被应用new实例化的时候才会被运行。构造函数没有返回类型,实际上,构造函数返回的就是这个class本身。例如
[code]public class MyClass {
public MyClass() {
this(15);
System.out.println("constructor");
}
public MyClass(String s1) {
this(); //调用没有参数的构造函数,从构造函数中调用构造函数只允许用this(), 而且只允许放在构造函数的第一行
System.out.println(s1);
}
public MyClass(int i) {
System.out.println("finally comes here"+i);
}
public static void main(String[] args) {
//看看调用不同的构造函数有什么区别。
MyClass mc = new MyClass();
MyClass mc1 = new MyClass("another test");
}
}[/code]