新书推介:《语义网技术体系》
作者:瞿裕忠,胡伟,程龚
   XML论坛     W3CHINA.ORG讨论区     >>计算机科学论坛<<     SOAChina论坛     Blog     开放翻译计划     新浪微博  
 
  • 首页
  • 登录
  • 注册
  • 软件下载
  • 资料下载
  • 核心成员
  • 帮助
  •   Add to Google

    >> 关于 XML 的一般性技术讨论,提供 XML入门资料 和 XML教程
    [返回] 计算机科学论坛XML.ORG.CN讨论区 - XML技术『 XML基础 』 → 帮帮我,各位大虾! 查看新帖用户列表

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 1394 个阅读者浏览上一篇主题  刷新本主题   树形显示贴子 浏览下一篇主题
     * 贴子主题: 帮帮我,各位大虾! 举报  打印  推荐  IE收藏夹 
       本主题类别:     
     huayun 美女呀,离线,快来找我吧!
      
      
      等级:大一新生
      文章:0
      积分:58
      门派:XML.ORG.CN
      注册:2004/4/26

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给huayun发送一个短消息 把huayun加入好友 查看huayun的个人资料 搜索huayun在『 XML基础 』的所有贴子 引用回复这个贴子 回复这个贴子 查看huayun的博客楼主
    发贴心情 帮帮我,各位大虾!

    下面是我做的毕业设计,内容是将sql server的普通sql查询转换为xml查询的技术。以下是我的编写的程序,但是有很多问题,调试不出来,请帮帮我吧!感激涕零!

    -------main.html--------
    <html>
    <head>
    <title>查询页面</title>
    </head>

    <body>
    <h2>请输入查询条件<h2>
    <p>姓名 <input type="text" size="20" name="xm">
    </p>

    <p align="left">
       <input TYPE='button' VALUE=' 查  询 ' ONCLICK="OnSearch()" NAME="btn">
    </p>


    <!--以下是OnSearch()的代码-->
    <script language="JavaScript">

    function OnSearch()
    {  
      //输入名字的判断程序;
        var SQueryXML="";
        var parser=document.all("xmlDOM");
        if(xm.value!="")
          SQueryXML+=makeByName(xm.value);

        if(SQueryXML!="")
         {
         SQueryXML="<xsquery>"+SQueryXML+"</xsquery>";
      
         parser.asynch="false";
         parser.load("entry.asp?"+SQueryXML);

         HandleResponse(document.all('results'));
         }
      }

    <!--以下是makeByName()的代码-->

    function makeByName(sxm)
    {
       //打开byname标签
        var SQueryString="<ByName>";
        if(sxm!="")
            SQuerystring+="<xm>"+sxm+"</xm>";   
       
       //关闭byname标签
        SQueryString+="</ByName>";
      
      return SQueryString;

    }

    <!--以下是HandleResponse()的代码-->

    function HandleResponse(oDIV)
    {
             
         var parser=document.all("xmlDOM");
         var docroot;
         var nChildCount;
         var stable="";
        
      //清除网页中显示结果的区域    
         oDIV.innerHTML="";
         
      // 如果解析器已准备好,检查根元素类型是否正确      
         if(parser.readyState==4 && parser.lastError.reason=="")
           {
               docroot=parser.documentNode;
                  
               if(docroot.nodeName=="xsQuery")
                  {
                       for(nChild=0;nChild<docroot.childNodes.length;nChild++)
                         {
                             stable=HandleResult(docroot.childNodes.item(nChild));
                             
                            //如果子结点不是我们所处理的类型,则字符串符空值。
                            //在网页中插入表格
         
                             if(stable!="")
                             oDIV.insertAdjacentHTML("beforeEnd",sTable);
                           }
                    }
                 else
                        window.alert("improper response type");
              }
           else
               window.alert("parser not ready or response not well-formed");
       }

    <!--以下是HandleResult()的代码-->

    function  HandleResult(node)
          {
               var m;
               var sReply;
               var child;
       
              //for xml Element
               if(node.nodeType==0)
                {
                     if(node.nodeName=="ByName")
                        sReply='<h2>Results from xs</h2>';

                     //至从服务器中返回一个结果
                     if(sReply!="")
                        {
                            sReply=sReply+'<table border="1" width="100%">';

                            for(m=0;m<node.childNodes.length;m++)
                              {
                                   //重复遍及子结点
                                    child=node.childNodes.item(m);
                                    if(child.nodeType==0)
                                    {
                                       if(child.nodeName=="xm")
                                          sReply=sReply+MakeHTMLFromxs(child);
                                
                                       if(child.nodeName=="noResults")
                                           sReply=sReply+'<tr><td width="100%">no papers      found</tr></td>'
                                     }
                                }
                               sReply=sReply+'</table>';
                         }
                    }
                    return sReply;
             }

    <!--以下是MakeHTMLFromxs()的代码-->

        function MakeHTMLFromxs(xmNode)
            {
                var m;
                var childNode;
                var sxm;
                
                  
                for(m=0;m<xmNode.childNodes.length;m++)
                    {
                       childNode=xmNode.childNodes.item(m);

                       if(childNode.nodeType==0)
                         {
                             if(childNode.nodeName=="xm")
                                sxm=childNode.nodeValue;

                          }
               

                  sRow+='</td><td width="33%">';
                  if(sxm!="")
                  sRow+=sxm;
                  sRow+='</td>';

                     }
                    
            
          return sRow;
       }                             


    </body>


    ----------entry.asp---------
    <%@LANGUAGE=JavaScript%>

    <%
      var dbConn,dbRecordSet;
      var parser=Server.CreateObject("Microsoft.xmldom");
      parser.loadXML(Request.ServerVariables("QUERY_STRING"));

      if(parser.readyState==4 && parser.lastError.reason=="")
        {
           var docroot=parser.documentNode;

             if(docroot.nodeName=="xsQuery")
               {
                 //与数据库建立连接
                 dbConn=Server.CreateObject("ADODB.Connection");
                 dbConn.Open("bysj","server","");                                                           dbRecordSet=Server.CreateObject("ADODB.RecordSet");
       
                //处理查询要求
                 AssembleQueries(docroot);
                 

                 dbRecordSet.Close();
                 dbConn.Close();
                 dbConn=null;
                 dbRecordSet=null;
                }
              else
                 Response.Write("<InvalidQuery></InvalidQuery>");
         }
      else
             Response.Write("<Error></Error>");

    %>


    <%
      function AssembleQueries(oRoot)
        {
             var childNode;
             var sQueryStem="SELECT xsb.xh,xsb.xm,xsb.xb FROM xsb";

            //建立xml的doc root
             Response.Write("<xsResponse>");
    ]
            // each child represents a single datebase search
             for(var nChild=0;nChild<oRoot.childNodes.length;nChild++)
                {
                    childNode=oRoot.childNodes.item(nChild);
      
             //if this is an element
                    if(childNode.nodeType==0)
                      {
                         if(childNode.nodeName=="ByName")
                             AssembleAuthor(sQueryStem,childNode);
                       }
                 }
                Response.Write("</xsResponse>");
          }

    %>

    <%
      function AssembleStu(sStem,oChild)
        {
            var paramNode;
            var sxm="";
            var sConstraintClause="";
            var sQuery="";

            for(nParam=0;nParam<oChild.childNodes.Length;nParam++)
               {
                          //提取我们能够理解的参数
                           paramNode=oChild.childNodes.item(nParam);
                 
                           if(paramNode.nodeType==0)        
                             {
                                if(paramNode.nodeName=="xm")
                                    sxm="stu's name'"+paramNode.nodeValue+"'";

                             

                                sConstraintClause=sxm;
                                
                               if(sConstraintClause!="")
                                      sConstraintClause="WHERE"+sConstraintClause;
                                  
                                sQuery=sStem+sConstraintClause+";";
       
                                MakeResponse(1,sQuery);

                               }
                     }
           }

    %>


    <%
         function MakeResponse(nQueryType,sQuery)
             {
                 var sTypeEndTag;

                 dbRecordSet=dbConn.Execute(sQuery) ;
       
                 if(!dbRecordSet.BOF)
                    dbRecordSet.MoveFirst();

                  //no results
                 if(dbRecordSet.EOF && dbRecordSet.BOF)
                    Response.Write("<NoResult></NoResult>");

                 switch(nQueryType)
                   {
                        case1:
                               Response.Write("<ByName>");
                               STypeEndTag="</ByName>";
                               break;
                    }

                 //go through all the results
                 while(!dbRecordSet.EOF)
                    {
                        Response.Write("<xsResponse>");
                        if(dbRecordSet("xm")!="")
                            Response.Write("<xm>+"dbRecordSet("xm")+"</xm>");

                        
                         Response.Write(sTypeEndTag);
                      }
                  Response.Write("</xsResponse>");
              }
                     
    %>


       收藏   分享  
    顶(0)
      




    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2004/4/26 14:38:00
     
     GoogleAdSense
      
      
      等级:大一新生
      文章:1
      积分:50
      门派:无门无派
      院校:未填写
      注册:2007-01-01
    给Google AdSense发送一个短消息 把Google AdSense加入好友 查看Google AdSense的个人资料 搜索Google AdSense在『 XML基础 』的所有贴子 访问Google AdSense的主页 引用回复这个贴子 回复这个贴子 查看Google AdSense的博客广告
    2025/9/3 19:07:41

    本主题贴数1,分页: [1]

    管理选项修改tag | 锁定 | 解锁 | 提升 | 删除 | 移动 | 固顶 | 总固顶 | 奖励 | 惩罚 | 发布公告
    W3C Contributing Supporter! W 3 C h i n a ( since 2003 ) 旗 下 站 点
    苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
    109.375ms