CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  MS-SQL Server >  疑难问题

菜鸟请教:SQL server2000问题,急……

楼主horsy()2006-07-04 17:36:33 在 MS-SQL Server / 疑难问题 提问

数据库中有表group   和userinfo等,在ASP中可分别对他们进行删除操作,但不能对userinfo进行插入操作,却可以对group插入。最初怀疑是代码问题,但相同的代码换到另外一台电脑上测试却无问题。  
   
  (说明:两台测试机的SQL   server   2000不是同一个人所安装,另外数据库均是还原以前备份的,出问题的是Windows2000   perfessional,另外一台是2000server) 问题点数:80、回复次数:9Top

1 楼zjcxc(邹建)回复于 2006-07-04 20:04:20 得分 20

是还原得来的数据库?  
   
  怀疑:  
  1.   孤立用户导致,   查询分析器连接服务器,   转到你的数据库,   执行下面的语句看看:  
  exec   sp_change_users_login   'Report'  
   
  如果上述查询返回了结果集,   则返回的就是孤立用户  
  孤立用户用下面的语句来修复:  
  EXEC   sp_change_users_login   'Auto_Fix',   '孤立用户名',   NULL,   '密码';  
      --   此密码为要修复的用户对应的登录不存在时,   sql自动登录,   为该登录指定的密码  
  Top

2 楼zjcxc(邹建)回复于 2006-07-04 20:04:36 得分 0

2.   如果不是孤立用户,   则检查用户的权限设置是否正确.Top

3 楼horsy()回复于 2006-07-05 08:31:52 得分 0

谢谢楼上解答,但执行:  
  exec   sp_change_users_login   'Report'  
  没返回任何结果~!Top

4 楼wangdehao(找找找(现在很幸福))回复于 2006-07-05 08:36:27 得分 20

没返回说明不是孤立用户的问题,在查询分析器里直接运行那个sql,看报的什么错误。Top

5 楼wangdehao(找找找(现在很幸福))回复于 2006-07-05 08:37:04 得分 0

用你asp程序所用的帐户执行sqlTop

6 楼zlp321002(Life Is Good,Let's Shine)回复于 2006-07-05 08:37:21 得分 20

1:   在不能对userinfo进行插入操作的服务器,连接数据库服务器,手工做插入操作,是否报错.  
        是不是权限问题?  
   
  2:   对报告错误的服务器,把错误信息贴出来看看.  
      是不是两台服务器环境不一样?Top

7 楼horsy()回复于 2006-07-05 09:46:27 得分 0

ASP所用帐户是sa。不因该有权限的问题啊~!  
  在查询分析器中可以对该数据库插入。  
  在ASP中试图插入时也没有报错误。日志文件里也没有。  
  在错误服务器上没有对SQL进行什么设置~!安装好后配置了系统DNS和建立user数据库并从备份恢复。就做了这些工作~!Top

8 楼fcuandy(了此残生.)回复于 2006-07-05 09:50:46 得分 20

贴上你的代码看看。   有没有   On   Error   之类的语句.  
  还有插表时,把SQL语句打出来,到查询分析器执行看看能否成功。  
  Top

9 楼horsy()回复于 2006-07-05 10:13:02 得分 0

Dim   userid,   username,   loginname,   passwd,   usertype,   groupid,   qxid,   addr,   dw,   tel,   regdate,   bz,   czr,   czdate  
  Dim   sqlstr  
  Dim   opr,   gid,   uname  
  Dim   ret,   oprtype  
  Private   Sub   Class_Initialize()  
  On   Error   Resume   Next  
          Set   objContext   =   GetObjectContext  
          Set   Application   =   objContext.Item("Application")  
          Set   Server   =   objContext.Item("Server")  
          Set   Session   =   objContext.Item("Session")  
          Set   Request   =   objContext.Item("Request")  
          Set   Response   =   objContext.Item("Response")  
  End   Sub  
  Private   Sub   Class_Terminate()  
  On   Error   Resume   Next  
          Set   Application   =   Nothing  
          Set   Server   =   Nothing  
          Set   Session   =   Nothing  
          Set   Request   =   Nothing  
          Set   Response   =   Nothing  
          Set   objContext   =   Nothing  
  End   Sub  
  Public   Sub   AspClassInit()  
  On   Error   GoTo   Err  
            Set   AspTransBuilderObject   =   Server.CreateObject("JFAsp.Class9")  
            Set   conn   =   Server.CreateObject("ADODB.Connection")  
            conn.open   AspTransBuilderObject.xConn  
          If   Err   =   0   Then  
          Else  
                  If   conn.Errors.Count   >   0   Then  
                          Response.Redirect   ("regerror.asp?opr=0&error=连接数据库失败!")  
                  End   If  
          End   If  
          Set   AspTransBuilderObject   =   Nothing  
          ret   =   0  
          oprtype   =   9  
          opr   =   Request.Form("oprtype")  
          gid   =   Request.Form("gid")  
          uid   =   Request.Form("uid")  
          uname   =   Request.Form("uname")  
          userid   =   gid   +   Request.Form("userid")  
          username   =   Request.Form("username")  
          loginname   =   Request.Form("loginname")  
          passwd   =   Request.Form("passwd")  
          usertype   =   Request.Form("usertype")  
          groupid   =   gid  
          qxid   =   ""  
          addr   =   Request.Form("addr")  
          dw   =   Request.Form("dw")  
          tel   =   Request.Form("tel")  
          If   opr   =   "A"   Then  
                  regdate   =   CStr(Now)  
          ElseIf   opr   =   "E"   Then  
                  regdate   =   Request.Form("regdate")  
          End   If  
          bz   =   Request.Form("bz")  
          czr   =   Session("userid")  
          czdate   =   CStr(Now)  
          If   opr   =   "A"   Then  
                  oprtype   =   0  
                  sqlstr   =   "insert   into   userinfo(userid,username,loginname,passwd,usertype,groupid,qxid,addr,dw,tel,regdate,bz,czr,czdate)   values('"   +   userid   +   "','"   +   username   +   "','"   +   loginname   +   "','"   +   passwd   +   "','"   +   usertype   +   "','"   +   groupid   +   "','"   +   qxid   +   "','"   +   addr   +   "','"   +   dw   +   "','"   +   tel   +   "','"   +   regdate   +   "','"   +   bz   +   "','"   +   czr   +   "','"   +   czdate   +   "')"  
          ElseIf   opr   =   "E"   Then  
                  oprtype   =   1  
                  sqlstr   =   "update   userinfo   set   userid='"   +   userid   +   "',username='"   +   username   +   "',loginname='"   +   loginname   +   "',passwd='"   +   passwd   +   "',usertype='"   +   usertype   +   "',groupid='"   +   groupid   +   "',qxid='',addr='"   +   addr   +   "',dw='"   +   dw   +   "',tel='"   +   tel   +   "',regdate='"   +   regdate   +   "',bz='"   +   bz   +   "',czr='"   +   czr   +   "',czdate='"   +   czdate   +   "'   where   userid='"   +   uid   +   "'   and   groupid='"   +   gid   +   "'"  
          ElseIf   opr   =   "D"   Then  
                  oprtype   =   2  
                  sqlstr   =   "delete   from   userinfo   where   userid='"   +   uid   +   "'"  
          End   If  
          conn.Execute   (sqlstr)  
          If   Err   =   0   Then  
                  tt   =   1  
          Else  
                  tt   =   0  
                  Response.Redirect   ("../error.asp?error="   +   sqlstr   +   "数据库操作失败!")  
          End   If  
          Response.Write   "<script   language=""javascript"">"   &   vbCrLf  
          Response.Write   "var   ret;"   &   vbCrLf  
          Response.Write   "var   oprtmp;   "   &   vbCrLf  
          Response.Write   "ret="  
          Response.Write   tt  
          Response.Write   ";"   &   vbCrLf  
          Response.Write   "oprtmp="  
          Response.Write   oprtype  
          Response.Write   ";"   &   vbCrLf  
          Response.Write   "if   (ret==1)"   &   vbCrLf  
          Response.Write   "{       "   &   vbCrLf  
          Response.Write   "         var   obj=parent.parent.frmleft.tree.getSelected();"   &   vbCrLf  
          Response.Write   "         if(oprtmp==0)"   &   vbCrLf  
          Response.Write   "         {"   &   vbCrLf  
          Response.Write   "             "  
          Response.Write   "obj.folder=true;"  
          Response.Write   "obj.doExpand();"  
          Response.Write   "var   U"   +   userid   +   "=new   parent.parent.frmleft.wTreeI('<font   color=#7b2e00>"   +   username   +   "</font>','javascript:setval(\'"   +   userid   +   "\',\'"   +   username   +   "\',\'"   +   usertype   +   "\',\'"   +   groupid   +   "\')',obj);"  
          Response.Write   "           }"   &   vbCrLf  
          Response.Write   "         if(oprtmp==1)"   &   vbCrLf  
          Response.Write   "         {"   &   vbCrLf  
          Response.Write   "             "  
          Response.Write   "parent.parent.frmleft.setSubNodeText('"   +   uname   +   "','"   +   username   +   "');"  
          Response.Write   "         }"   &   vbCrLf  
          Response.Write   "         if(oprtmp==2)"   &   vbCrLf  
          Response.Write   "         {"   &   vbCrLf  
          Response.Write   "             parent.parent.frmleft.delsubnode();"   &   vbCrLf  
          Response.Write   "             parent.clearform();"   &   vbCrLf  
          Response.Write   "         }"   &   vbCrLf  
          Response.Write   "}"   &   vbCrLf  
          Response.Write   "parent.msg(ret);"   &   vbCrLf  
          Response.Write   "</script>"   &   vbCrLf  
          Set   conn   =   Nothing  
          Set   AspTransBuilderObject   =   Nothing  
          Exit   Sub  
  Err:  
          If   Err.Number   =   -13572468   Then   Exit   Sub  
          Resume   Next  
  End   Sub  
   
  在ASP中执行插入操作后通过:     Response.Write   "parent.msg(ret);得到数据保存成功的信息。但SELECT出为NULL。好象并没有插进去。但相同的代码在别的服务器上却成功~!  
   
  Top

相关问题

关键词

得分解答快速导航

  • 帖主:horsy
  • zjcxc
  • wangdehao
  • zlp321002
  • fcuandy

相关链接

  • SQL Server类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo