#
存储过程传参数:
【存储过程】◆传值测试◆
exec usp_testinbill ('itemname=''')
在('')可带条件如
因我写的存储过程测试程序已删除..暂未找到..等时间充裕...会再做笔记.
有这样一种情况
表1:
字段1 字段2 字段3
A 组1 20
B 组1 30
C 组2 40
D 组1 50
E NULL 60
F 组2 70
G NULL 90
现在要实现对组的汇总 非组的也要汇总
结果
ALL 组1 100
ALL 组2 110
E NULL 60
G NULL 90
解答
SELECT
字段1 = CASE WHEN 字段2 IS NOT NULL THEN 'ALL' ELSE 字段1 END,
字段2,
字段3 = SUM(字段3)
FROM 表1
GROUP BY
CASE WHEN 字段2 IS NOT NULL THEN 'ALL' ELSE 字段1 END,
字段2
一:Ajax思路:
1: send_request('sample1_2.jsp?username='+username);
2: http_request = new ActiveXObject("Msxml2.XMLHTTP");
3:http_request.onreadystatechange = processRequest;
4:http_request.open("GET", url, true);
http_request.send(null);
5:if (http_request.readyState == 4)
if (http_request.status == 200)
说明:alert(http_request.responseText);返回整个页面内容
declare @lastmonth datetime,
@balance_yymm char(7), --本月年月(如YY-MM)
@lastchar char(7) --上月年月(如YYMM)
set @lastmonth=dateadd(month,-1,@balance_date)
set @lastchar=convert(char(7),@lastmonth,126)
set @lastchar=left(@lastchar,4)+substring(@lastchar,6,2)
判断语句里是否有数据:
strSql1="select top 10 * from t_message where begdate < = getdate() and enddate >=getdate() order by begdate";
rsVector1 = CCommonDAO.select(strSql1,"ESYSDATACON");
if(rsVector1!=null&&!rsVector1.isEmpty()){
title=new String[rsVector1.size()];
billman=new String[rsVector1.size()];
enddate=new String[rsVector1.size()];
begdate=new String[rsVector1.size()];
bill=new String[rsVector1.size()];
for(int j=0;j<rsVector1.size();j++){
CM1 = (CommonModel)rsVector1.get(j);
title[j]=CM1.getAttrValue("title");
billman[j]=CM1.getAttrValue("billman");
enddate[j]=CM1.getAttrValue("enddate");
begdate[j]=CM1.getAttrValue("begdate");
bill[j]=CM1.getAttrValue("bill");
}
}
计算一个月的最后一天
如算八月的最后一天,那么直接用九月一日减一,再取日期,一切OK.
JS里写到
if (itemnum==''){
continue;
}
本人一直以为在当前循环里继续执行,没想到是俺语法理解有误,coutinue在JS里是指跳出当前循环,直接执行下一个语句.
tofloat(itemnum,4):
表示取浮点小数四位小数位.
声明一个字符集
StringBuffer itemnums = new StringBuffer(200); //用来保存主键的StringBuffer
今天上午做了个交叉报表,本以为很容易,但弄了一上午才弄完,确实有些晕.
1:固定交叉报表的宽度可让交叉报表在一个页面里显示,但固定页面宽度后,表格的大小也需固定,那么数据有可能显示不全.:
得到专家答复:
你设置了交叉表的MaxWidth属性为1200,那么所有的列都在这个宽度内显示,导致单元格的宽度不够显示你的数据2:交叉报表第一列出现0.00000怎么办啊?
检查:
没有空值或者字段值不是0,不可能这样显示的
行头字段是不能有空值的,你要把数据集里的行头字段空值的记录去掉,或者用其他字符串代替
最终解决,交叉报表的数量栏有些为空值,应该赋空值为零,问题解决.
3:交叉报表的属于设置是拖动鼠标选择字段.(笨笨的俺是把眼睛睁大了在找按钮,死命也找不到,然后又想到右击能否出现菜单,最后才想到直接拖动.
最近虽然很忙,但做的东东如果不留点底,肯定又会忘记这些东东了.
最近做了个日库存仓库多选,现把步骤写下:
1:;先在JSP页面写:
<script language = "javascript"
src="../../findall/find_dayware/js/find_ware.js"></script>
2:在JSP页面调用函数:
<input style="width:220" name = "ware_name" type = "input" class = "input2" value="" onkeydown="keyenter(myform,this)" nullable="y" datatype='' cname="仓库名称" readonly><img style="cursor:hand" src="../../images/jt002b.gif" onclick = "find_ware(myform.ware_code,myform.ware_name,myform.addr,myform.waretype)"readonly>
3:进入find_dayware页面
4:JS页面:
function find_ware(code,name,addr,ware_type){
var url,getfields;
url="../../findall/find_dayware/find_ware_operation.jsp";
getfields=openwindow_find(url);
if(typeof(getfields)!="undefined"){
if(getfields.length != 0){
code.value = getString(getfields,1);
name.value = getString(getfields,2);
addr.value = getString(getfields,3);
ware_type.value = getString(getfields,4);
}
}
}
//这就是选定调用函数以"|"区分开.
function sele_all(){
var is_checked = false;
var strurl="";
var strware="";
obj_chk=window.parent.record_list_f.document.all("chk");
if(obj_chk){
if(typeof(obj_chk.length)!="undefined"){
for(inti=0;inti<obj_chk.length;inti++){
if(obj_chk[inti].checked){
strurl+=getString(obj_chk[inti].value,1);
strware+=";"+getString(obj_chk[inti].value,2);
is_checked = true;
}
}
}else{
if(obj_chk.checked){
strurl+=getString(obj_chk.value,1);
strware+=getString(obj_chk.value,2);
is_checked = true;
}
}
if(is_checked){
str=strurl+"|"+strware+"|||";
window.parent.returnValue =str;
window.parent.close();
return;
}
}
}
这样选定后仓库编码和仓库名称带出来了但需要区分开来,我们仓库编码是二位组成,那么我们需要区分:
if(ware_code.length()>0){
if(ware_code.length()==2){
sqlwhere+=" and ware_code in('"+ware_code+"')";
}else{
for(int i=0;i<=ware_code.length();i++){
if(i+2<ware_code.length()){
strwarecode =strwarecode+ "'"+ware_code.substring(i,i+2)+"',";
}else if(i+4>ware_code.length()){
strwarecode =strwarecode+ "'"+ware_code.substring(i,i+2)+"'";
i=ware_code.length();
}
i=i+1;
}
sqlwhere+=" and ware_code in("+strwarecode+")";
}
}
这样问题就解决了...
我一同事最近看了篇如此破解密码的文章,转个头在我们系统里一试,哎,真觉得安全性超次,直接输入用户名再加'--,便可以直接进入我们系统了,
搜索栏也是,只要加上';加上删除的内容,直接可以把表名给删了,
觉得这些黑客真是厉害,这也能被人发现,
不知道还有什么破坏系统的东西,真是防不胜防啊...
配置本公司 JBOSS 服务器以配置 OLS 为例 (jboss3.2.5) :
1、 拷贝 JDK 到根止录下。
2、 解压缩 JBOSS 包到根目录下。
3、 配置环境变量:
变量名: JAVA_HOME
变量值: e:\jdk1.4
配置 JBOSS_HOME
变量名: JBOSS_HOME
变量值: d:\jboss-4
配置 PATH
在现在 path 环境变量里加上: e:\jdk1.4\bin; D:\ jboss-4\bin
4、 配置 JDBC 驱动:
现以 Microsoft SQL Server 2005 JDBC Driver 为例:
拷贝文件 sqljdbc.rar 到目录 E:\jboss-3.2.5\server\default\lib 下
从 E:\jboss-3.2.5\docs\examples\jca\mssql-ds.xml
到目录 E:\jboss-3.2.5\server\default\deploy 下。
配置 mssql-ds.xml 文件如下:
<local-tx-datasource>
<jndi-name>MSSQLDS</jndi-name>
<connection-url>jdbc:sqlserver://localhost:1433;DatabaseName=esysdb</connection-url>
<driver-class>com.microsoft.sqlserver.jdbc.SQLServerDriver</driver-class>
<user-name>sa</user-name>
<password>sa</password>
<min-pool-size>150</min-pool-size>
<max-pool-size>300</max-pool-size>
</local-tx-datasource>
5、 拷贝 ejbdao.rar, ejbdatagrid.rar, ejbfreeedit.rar, ejblicence.rar, ejbweb.rar 文件到 E:\jboss-3.2.5\server\default\deploy 目录下
6、 拷贝应用程序 my.rar
7、 更改 dbconn.properties 配置文件: E:\jboss-3.2.5\server\default\deploy\MY.war\WEB-INF\classes
8、 禁止其他人员查看本系统目录方法:
E:\jboss-3.2.5\server\default\deploy\jbossweb-tomcat50.sar\web.xml
改变属性
<init-param>
<param-name>listings</param-name>
<param-value>true</param-value>
</init-param> 改为 <param-value>false</param-value>
远程浏览本系统 ssl 配置:
首先用 keytool 命令生成认证文件。
更改 E:\jboss-3.2.5\server\default\deploy\jbossweb-tomcat50.sar\server.xml
增加远程访问:如端口为: 8443
<Connector port="8443" address="${jboss.bind.address}"
maxThreads="300" minSpareThreads="5" maxSpareThreads="100"
scheme="https" secure="true" clientAuth="false"
keystoreFile="${jboss.server.home.dir}/conf/mykeystore.jks"
keystorePass="MyPassword" sslProtocol = "TLS"
URIEncoding="GBK" />
说明: keystoreFile 为密钥存储位置。
9:如果想调用局域网另一个数据库,但不采用连接池的配置:
############################# 4:EDTEXPCON Connection Config Begin ###########################################
EDTEXPCON.isDataSource=false
EDTEXPCON.driver=com.microsoft.sqlserver.jdbc.SQLServerDriver
EDTEXPCON.url=jdbc:sqlserver://10.0.10.10:1433;databaseName=ee
EDTEXPCON.userName=sa
EDTEXPCON.password=sa
############################# EDTDATACON Connection Config End##############################################
错误信息说明及解决办法:
1:Unhandled token type: Unknown token: 0x00
JDBC 驱动与 JBOSS 不匹配,造成系统不稳定。
解决办法,更新 JDBC 驱动。
2,乱码解决:
我们在进行开发时,如果JBOSS配置出现问题,将出现类似???????的乱码,
解决办法:
在相应的JSP页面里写到:
<%@ page contentType="text/html;charset=GBK" %>
gb2312必为GBK
在路径为:D:\jboss-3.2.5\server\default\deploy\jbossweb-tomcat50.sar\server.xml文件里的:
<Connector port="8000" address="${jboss.bind.address}"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true"
URIEncoding="GBK" />
URIEncoding 改为GBK,
这样,乱码就会不再出现了.
3