posted @ 2007-05-19 18:54 火星 閱讀(318) | 評論 (1) | 編輯 收藏
很快注冊了一個帳號,用fterm連接上unix.
純命令的操作給了一直在可視化開發環境下工作的我很大的震撼,原來,直接用命令做所有的操作是那么的舒暢!
posted @ 2007-05-15 08:43 火星 閱讀(185) | 評論 (0) | 編輯 收藏
一個是用JavaScript,一次性將兩個select的數據統統取出來,將第二張表的數據放到數組中,通過第一個的change事件來改變,優點,運行速度快,缺點,需編寫對應的javascript代碼,且無法反映實時數據
第二種方案是每次都提交,進行聯動,優點,能反映數據庫實時數據信息,無須寫javascript,缺點,運行速度相對慢,且需要考慮保存用戶的已經填寫的其他表單數據
看我的,方便
<form name="form1" method="post">
<td width="40%">
<select>
<%
try{
Connection con=j.getConnection();
Statement statement=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
String sql="select * from table";
ResultSet r=statement.executeQuery(sql);
while(r.next())
{
%>
<option value=<%=r.getString(1)%>><%=r.getString(1)%></option>
<%}
j.releaseConnection(con);
}catch(SQLException ee){out.print("數據庫連接失敗!");}
%>
</select>
</td>
</form>
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.sql.*"%>
<%@ page import="java.io.*"%>
<jsp:useBean id="user" class="com.conn_" scope="page"/>
<%
String las =request.getParameter("la");
String ars =request.getParameter("ar");
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<script language="javascript">
function yjchang(){
document.form2.la.value=document.form1.la.value;
document.form2.submit();
}
</script>
</head>
<body>
<form action="xx_add.jsp" method=post name="form2">
<input type="hidden" name="la" id="la" value="<%=las%>">
<input type="hidden" name="ar" id="ar" value="<%=ars%>">
</form>
<form name="form1" method="post" action="xx_add_do.jsp">
<br/>
<table width="80%" border="0" align="center" cellpadding="1" cellspacing="1" class="table1">
<tr>
<td width="16%" height="40" align="right">部門:</td>
<td height="40">
<select name="la" id="la" style="width:147" onChange="yjchang()">
<option></option>
<%
String la1=request.getParameter("la");
String la="";
ResultSet rs_la=null;
try{
rs_la=user.executeQuery("select branch_id,name from branch");
while(rs_la.next()){
la="";
if(rs_la.getString("branch_id").equals(la1)){
la="selected";
%>
<option value="<%=rs_la.getString("branch_id")%>" <%=la%>><%=rs_la.getString("name")%></option>
<%
}else{
la="";
%>
<option value="<%=rs_la.getString("branch_id")%>"><%=rs_la.getString("name")%></option>
<%}}
}catch( SQLException sqle ){}
catch( Exception e ){}
finally{
try{
user.getClose();
if (rs_la !=null){
rs_la.close();
rs_la=null;
}
}catch( SQLException sqle ){}
}
%>
</select>
</td>
<td height="40" align="right">員工:</td>
<td height="40">
<select name="ar" id="ar" style="width:147">
<option></option>
<%
if(las!=null){
String ar1=request.getParameter("ar");
String ar="";
ResultSet rs_area=null;
try{
rs_area=user.executeQuery("select ygid,name from hyj.area where branch_id='"+las+"'");
while(rs_area.next()){
ar="";
if(rs_area.getString("ygid").equals(ar1)){
ar="selected";
%>
<option value="<%=rs_area.getString("ygid")%>" <%=ar%>><%=rs_area.getString("name")%></option>
<%}else{%>
<option value="<%=rs_area.getString("ygid")%>"><%=rs_area.getString("name")%></option>
<%}}
}catch( SQLException sqle ){}
catch( Exception e ){}
finally{
try{
user.getClose();
if (rs_area !=null){
rs_area.close();
rs_area=null;
}
}catch( SQLException sqle ){}
}
%>
</select>
</td>
</tr>
<tr align="center">
<td height="40" colspan="4">
<input type="Submit" name="tj" value="提交" class="button">
<input type="reset" name="Submit" value="重置" class="button">
</td>
</tr>
</table>
</form>
</body>
</html>
posted @ 2007-04-12 10:21 火星 閱讀(4115) | 評論 (2) | 編輯 收藏
1、insert into "test"
(
select char(f_index) from T_QA_RPT_FACE_MONTH where F_RPT_ID=0
);
如果“select char(f_index) from T_QA_RPT_FACE_MONTH where F_RPT_ID=0“
返回結果數為0,那么test表中不會插入記錄。
2、存儲過程里用for語句比while loop好用些:(類似VB語法)
SET SCHEMA MES ;
SET CURRENT PATH = "SYSIBM","SYSFUN","SYSPROC","MES";
CREATE PROCEDURE "MES"."P_QA_TEST" ( )
DECLARE iCount INT DEFAULT 0;
SET iCount = 0;
FOR dayrpt AS SELECT * FROM T_QA_RPT_FACE_DAY WHERE F_RPT_ID > 0 DO
ADD_BONUS:
for monrpt as SELECT * FROM T_QA_RPT_FACE_MONTH WHERE F_RPT_ID > 0 DO
if (monrpt.F_INDEX = dayrpt.F_INDEX) AND (monrpt.F_TYPE = dayrpt.F_TYPE) THEN
SET iCount=iCount+1;
insert into "test" values(char(iCount));
LEAVE ADD_BONUS;
END IF;
end for ADD_BONUS;
END FOR;
return iCount;
END;
3、上例中:
FOR dayrpt AS SELECT * FROM T_QA_RPT_FACE_DAY WHERE F_RPT_ID > 0 DO
dayrpt 就是后面那個select語句的結果集,即for語句只需讀一次表,而不會像游標那樣鎖定表然后進行逐記錄select
posted @ 2007-04-12 10:13 火星 閱讀(550) | 評論 (0) | 編輯 收藏