📄 database.asp
字号:
}
var tmpNode = new Node(fieldName, "", fieldValue, 2);
var xPath = fieldName;
if(node.findNodeByXPath(xPath)==null)
node.addChildNode(tmpNode);
//Response.Write(tmpNode.value);
}
rs.close();
return 1;
}
}
//查询多条记录,结果包含所有字段
//参数QueryCond:查询条件Entity结点, 该结点只有一个子结点where,例如user/where[@criteria='userid>10 and username like='%d%'']
function queryEntityAll(QueryCond) {
/*
var strSQL = "select * from " + QueryCond.name + " ";
var whereNode = QueryCond.findNodeByXPath("where");
if(whereNode!=null && whereNode.value!="") {
strSQL += "where " + whereNode.value;
}
*/
var strSQL = convertQueryCondToSQL(QueryCond);
return this.runQuerySql(strSQL);
}
//分页查询,结果包含所有字段
//参数QueryCond:查询条件Entity结点, 该结点只有一个子结点where,例如user/where[@criteria='userid>10 and username like='%d%'']
//参数PageCond:分页信息Entity结点, 该结点结构是:<PageCond><PageSize/><AbsolutePage/><RecordCount/><PageCount/><PrePage/><NextPage/></PageCond>,
//PageSize默认为10,AbsolutePage默认为1
function queryEntityAllWithPage(QueryCond, PageCond) {
var strSQL = convertQueryCondToSQL(QueryCond);
return this.runQuerySqlWithPage(strSQL, PageCond);
}
//查询多条记录,并返回为表单的隐藏域
//参数QueryCond:查询条件Entity结点, 该结点只有一个子结点where,例如user/where[@criteria='userid>10 and username like='%d%'']
function queryEntityAllReturnHiddenData(QueryCond) {
var strSQL = convertQueryCondToSQL(QueryCond);
return this.runQuerySqlReturnHiddenData(strSQL, QueryCond.name);
}
//分页查询多条记录,并返回为表单的隐藏域
//参数QueryCond:查询条件Entity结点, 该结点只有一个子结点where,例如user/where[@criteria='userid>10 and username like='%d%'']
//参数PageCond:分页信息Entity结点, 该结点结构是:<PageCond><PageSize/><AbsolutePage/><RecordCount/><PageCount/><PrePage/><NextPage/></PageCond>,
function queryEntityAllReturnHiddenDataWithPage(QueryCond, PageCond) {
var rs = this.queryEntityAllWithPage(QueryCond, PageCond);
return convertRecordSetToHiddenDataWithPage(rs, QueryCond.name);
}
function runInsertSql(sql) {
this.dbconn.Execute(sql);
}
function runUpdateSql(sql) {
this.dbconn.Execute(sql);
}
function runDeleteSql(sql) {
this.dbconn.Execute(sql);
}
function runQuerySql(sql) {
//Response.Write(sql);
var recordSet = Server.CreateObject("ADODB.RecordSet");
recordSet.Open(sql, this.dbconn, 1, 1);
return recordSet;
}
function runQuerySqlWithPage(sql, PageCond) {
//Response.Write(sql);
var PageSize = 10; //每页记录数
var AbsolutePage = 1; //当前页号
var RecordCount = 0; //记录总数
var PageCount = 0; //总页数
var PrePage = 0; //上一页号
var NextPage = 0; //下一页号
var node_PageSize = PageCond.findNodeByXPath("PageSize");
var node_AbsolutePage = PageCond.findNodeByXPath("AbsolutePage");
var node_RecordCount = PageCond.findNodeByXPath("RecordCount");
var node_PageCount = PageCond.findNodeByXPath("PageCount");
var node_PrePage = PageCond.findNodeByXPath("PrePage");
var node_NextPage = PageCond.findNodeByXPath("NextPage");
if(node_PageSize!=null) PageSize = parseInt(node_PageSize.value);
if(node_AbsolutePage!=null) AbsolutePage = parseInt(node_AbsolutePage.value);
if(PageSize<1) PageSize = 10;
if(AbsolutePage<1) AbsolutePage = 1;
var recordSet = Server.CreateObject("ADODB.RecordSet");
recordSet.Open(sql+"", this.dbconn, 1, 1);
recordSet.PageSize = PageSize;
if(recordSet.RecordCount>0) recordSet.AbsolutePage = AbsolutePage;
RecordCount = recordSet.RecordCount;
PageCount = recordSet.PageCount;
if(AbsolutePage==1)
PrePage = -1;
else
PrePage = AbsolutePage - 1;
if(AbsolutePage==PageCount)
NextPage = -1;
else
NextPage = AbsolutePage + 1;
if(node_PageSize==null) {
var tmpNode = new Node("PageSize","",PageSize,2);
PageCond.addChildNode(tmpNode);
}
else {
node_PageSize.value = PageSize;
}
if(node_AbsolutePage==null) {
var tmpNode = new Node("AbsolutePage","",AbsolutePage,2);
PageCond.addChildNode(tmpNode);
}
else {
node_AbsolutePage.value = AbsolutePage;
}
if(node_RecordCount==null) {
var tmpNode = new Node("RecordCount","",RecordCount,2);
PageCond.addChildNode(tmpNode);
}
else {
node_RecordCount.value = RecordCount;
}
if(node_PageCount==null) {
var tmpNode = new Node("PageCount","",PageCount,2);
PageCond.addChildNode(tmpNode);
}
else {
node_PageCount.value = PageCount;
}
if(node_PrePage==null) {
var tmpNode = new Node("PrePage","",PrePage,2);
PageCond.addChildNode(tmpNode);
}
else {
node_PrePage.value = PrePage;
}
if(node_NextPage==null) {
var tmpNode = new Node("NextPage","",NextPage,2);
PageCond.addChildNode(tmpNode);
}
else {
node_NextPage.value = NextPage;
}
return recordSet;
}
//查询多条记录,并返回为表单的隐藏域
function runQuerySqlReturnHiddenData(sql, entityName) {
var recordSet = this.runQuerySql(sql);
//var tableName = findTableNameInSql(sql);
var tableName = entityName;
var recordCount = recordSet.RecordCount;
var fieldsCount = recordSet.Fields.Count;
var hiddenData = "";
for(var i=0; i<recordCount; i++) {
for(var j=0; j<fieldsCount; j++) {
var fieldName = recordSet.Fields(j).Name;
var fieldValue = recordSet(fieldName)+"";
if(fieldValue=="null") fieldValue="";
hiddenData += "<input type=\"hidden\" name=\"list/" + tableName + "[@rowNum="" + i + ""]/" + fieldName + "\" value=\"" + fieldValue + "\">\n";
}
recordSet.MoveNext();
}
recordSet.close();
return hiddenData;
}
//分页查询多条记录,并返回为表单的隐藏域
//参数QueryCond:查询条件Entity结点, 该结点只有一个子结点where,例如user/where[@criteria='userid>10 and username like='%d%'']
//参数PageCond:分页信息Entity结点, 该结点结构是:<PageCond><PageSize/><AbsolutePage/><RecordCount/><PageCount/><PrePage/><NextPage/></PageCond>,
function runQuerySqlReturnHiddenDataWithPage(sql, entityName, PageCond) {
var rs = this.runQuerySqlWithPage(sql, PageCond);
return convertRecordSetToHiddenDataWithPage(rs, entityName);
}
/*=========================================================================================*/
//将RecordSet转化为表单的隐藏域
function convertRecordSetToHiddenDataWithPage(rs, entityName) {
var recordSet = rs;
var tableName = entityName;
//var recordCount = recordSet.RecordCount;
var fieldsCount = recordSet.Fields.Count;
var hiddenData = "";
for(var i=0; i<recordSet.pagesize; i++) {
if(recordSet.EOF) break;
for(var j=0; j<fieldsCount; j++) {
var fieldName = recordSet.Fields(j).Name;
var fieldValue = recordSet(fieldName)+"";
if(fieldValue=="null") fieldValue="";
hiddenData += "<input type=\"hidden\" name=\"list/" + tableName + "[@rowNum="" + i + ""]/" + fieldName + "\" value=\"" + fieldValue + "\">\n";
}
recordSet.MoveNext();
}
return hiddenData;
}
//从TRX_REFNO表得到主键序列,成功则返回序列,不成功返回"-1"
function getRefNo(conn, recordSet, tableName) {
try{
var refNo = "";
var strSQL = "select * from TRX_REFNO where C_TABLE_NAME='" + tableName + "'";
recordSet.Open(strSQL, conn);
if(!recordSet.EOF) {
var refSeq = recordSet("I_REF_SEQ");
var refLeng = recordSet("I_REF_LENG");
refNo = "" + refSeq;
refNo = "00000000000000000000".substr(0,(refLeng-refNo.length)) + refNo;
}
else {
refNo = "-1";
}
recordSet.close();
setRefNo_add(conn, recordSet, tableName);
return refNo;
}
catch(e) {
throw e;
}
finally {
}
}
//从TRX_REFNO表得到主键前缀,成功则返回前缀,不成功返回""
function getRefPref(conn, recordSet, tableName) {
try{
var refPref = "";
var strSQL = "select C_REF_PREF from TRX_REFNO where C_TABLE_NAME='" + tableName + "'";
recordSet.Open(strSQL, conn);
if(!recordSet.EOF) {
refPref = recordSet("C_REF_PREF") + "";
if(refPref=="null") refPref = "";
}
else {
refPref = "";
}
recordSet.close();
return refPref;
}
catch(e) {
throw e;
}
finally {
}
}
//从TRX_REFNO表得到主键后缀,成功则返回前缀,不成功返回""
function getRefSuff(conn, recordSet, tableName) {
try{
var refPref = "";
var strSQL = "select C_REF_SUFF from TRX_REFNO where C_TABLE_NAME='" + tableName + "'";
recordSet.Open(strSQL, conn);
if(!recordSet.EOF) {
refPref = recordSet("C_REF_SUFF") + "";
if(refPref=="null") refPref = "";
}
else {
refPref = "";
}
recordSet.close();
return refPref;
}
catch(e) {
throw e;
}
finally {
}
}
//让指定表的当前可用最大序列I_REF_SEQ加一
function setRefNo_add(conn, recordSet, tableName) {
try {
var strSQL = "select * from TRX_REFNO where C_TABLE_NAME='" + tableName + "'";
recordSet.Open(strSQL, conn, 1, 3);
if(!recordSet.EOF) {
recordSet("I_REF_SEQ") = recordSet("I_REF_SEQ") + 1;
recordSet.Update();
}
else {
recordSet.close();
return "-1"
}
recordSet.close();
return "1";
}
catch(e) {
throw e;
}
finally {
}
}
//从TRX_REFNO_NOUSE表得到生成但未使用的主键序列,如果没有找到则返回字符串:"-1"
function getNoUsedRefNo(conn, recordSet, tableName) {
try {
var refNo = "";
var strSQL = "select * from TRX_REFNO_NOUSE where C_REF_NO_STAT='N' and C_TABLE_NAME='" + tableName + "'";
recordSet.Open(strSQL, conn);
if(!recordSet.EOF) {
refNo = recordSet("C_REF_NO") + "";
}
else {
refNo = "-1";
}
recordSet.close();
return refNo;
}
catch(e) {
throw e;
}
finally {
}
}
//保存生成了但没有使用的主键序列
function saveNoUsedRefNo(conn, recordSet, tableName, refNo, refNoStat) {
try {
clearNoUsedRefNo(conn, recordSet, tableName, refNo);
var strSQL = "select * from TRX_REFNO_NOUSE";
recordSet.Open(strSQL, conn, 1, 3);
recordSet.AddNew();
recordSet("C_TABLE_NAME") = tableName;
recordSet("C_REF_NO") = refNo;
recordSet("C_REF_NO_STAT") = refNoStat;
recordSet.Update();
recordSet.close();
}
catch(e) {
throw e;
}
finally {
}
}
//在生成了但没有使用的主键序列中清除指定序列
function clearNoUsedRefNo(conn, recordSet, tableName, refNo) {
try {
var strSQL = "select * from TRX_REFNO_NOUSE where C_TABLE_NAME='" + tableName + "' and C_REF_NO='" + refNo + "' ";
recordSet.Open(strSQL, conn, 1, 3);
if(!recordSet.EOF) {
recordSet.Delete();
recordSet.Update();
}
recordSet.close();
}
catch(e) {
throw e;
}
finally {
}
}
//得到指定表的I_REF_LENG,如果没找到返回-1
function getRefNoLength(conn, recordSet, tableName) {
try{
var refNoLength = -1;
var strSQL = "select * from TRX_REFNO where C_TABLE_NAME='" + tableName + "'";
recordSet.Open(strSQL, conn);
if(!recordSet.EOF) {
refNoLength = parseInt(recordSet("I_REF_LENG"));
}
else {
refNoLength = -1;
}
recordSet.close();
return refNoLength;
}
catch(e) {
throw e;
}
finally {
}
}
function convertQueryCondToSQL(QueryCond) {
var strSQL = "select * from " + QueryCond.name + " ";
var whereNode = QueryCond.findNodeByXPath("where");
var orderbyNode = QueryCond.findNodeByXPath("orderby");
if(whereNode!=null && whereNode.value!="") {
strSQL += " where " + whereNode.value + " ";
}
if(orderbyNode!=null && orderbyNode.value!="") {
strSQL += " order by " + orderbyNode.value + " ";
}
//Response.Write(strSQL);
return strSQL;
}
function findTableNameInSql(strSQL) {
var p1 = strSQL.indexOf(" from ")+6;
var p2 = strSQL.indexOf(" ",p1);
var tableName = strSQL.substring(p1,p2);
return tableName;
}
/*=========================================================================================*/
%>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -