public function ececute(byval sql as string)as adodb.recordset...
conn="provider=sqloledb;data source=127.0.0.1;use id=sa;password=;
   initial catalog=库名;"
...
txtsql="exec sp_addlogin '用户','密码','默认数据库'"
set mrc=execute(txtsql)

解决方案 »

  1.   

    这样的问题怎么解决?
    CREATE PROCEDURE dbo.AddNewUser @username nvarchar(20)
     AS
    exec sp_addlogin @username,'guide'
    exec sp_adduser @username,@username,db_datawriter
    GO以上在sql query analyzer中可以正常运行。
    下面是源码:    Dim cmd As adodb.Command
        Dim rs As adodb.Recordset
        Dim param1 As adodb.Parameter
        
        Set cmd = New adodb.Command
        cmd.CommandText = "AddNewUser"
        cmd.CommandType = adCmdStoredProc
          Set cmd.ActiveConnection = cn'cn 是全局的,状态是打开的。    Set param1 = cmd.CreateParameter("username", adVarChar, adParamInput)
        
        cmd.Parameters.Append param1
        param1.Value = "asd"
        
        Set rs = cmd.Execute...报错如下:
    parameter object is improperly defined.inconsistent or incomplete information was provided.为什么?
      

  2.   

    多谢,解决了,因为CreateParameter 少了一个字符长度的参数,不过向大家了解一下,这是不是解决问题的较好办法。即:将用户设定做成存储过程,在程序中按参数调用,就可以了。但是这样还是要以dbo的身份进入一次。
      

  3.   

    不一定要DBO,有权限的用户都可以,;)