把下列VBScript的函数转换成SQL2000的数据库函数,请问应该怎么写?
' ============================================
' 根据表名,字段和字段值得到和该字段值相等的值
' 参数说明:
' strTableName    : 表名称
' strFieldName    : 要得到值的字段
' strCon          : 条件字段
' strConValue     : 条件值
' ============================================Function GetSingleValue(strTableName, strFieldName, strCon, strConValue)
    Dim objRs, strSQL
    Set objRs = server.CreateObject("adodb.recordset")
    strSQL = "select "&strFieldName&" from "&strTableName&" where "&strCon&" = '"&strConValue&"' and LogoutFlag='0'"
    objRs.Open strSQL, conn, 1, 1
    If Not objRs.EOF Then
        GetSingleValue = objRs(0)
    Else
        GetSingleValue = ""
    End If
    objRs.Close
    Set objRs = Nothing
End Function

解决方案 »

  1.   

    我自己写的,但通不过!
    CREATE function f_GetSingleValue(@strTableName nvarchar(255), @strFieldName nvarchar(255), @strCon nvarchar(255), @strConValue nvarchar(255))
    returns nvarchar(1000)
    as
    begin
    declare @s nvarchar(1000)
    select @s=@strFieldName from @strTableName where @strCon = @strConValue and LogoutFlag=0
    return @s
    end
      

  2.   


    declare @strTableName varchar(10),@strFieldName varchar(10),@strCon varchar(400),@strConValue varchar(10)
    exec('select '+@strFieldName+' from '+@strTableName+' where '+@strCon+' = '+@strConValue+' and LogoutFlag=''0''')
      

  3.   

    create proc proc_query
    @strTableName varchar(10),
    @strFieldName varchar(10),
    @strCon varchar(10),
    @strConValue varchar(50)
    as
    exec('select '+@strFieldName+' from '+@strTableName+' where '+@strCon+'='+@strConValue)
      

  4.   

    if (object_id ('p_select' ) is  not  null )
    drop proc p_select
    go
    create proc p_select (@tb varchar (100 ), @cols varchar (100 ), @wherecol varchar (100 ), @value varchar (100 ))
    as
    begin
        declare @s varchar (8000 )
        exec xp_sprintf @s output , 'select %s from %s where %s=''%s''' , @cols , @tb , @wherecol , @value
        exec (@s)
    end
    goexec p_select 'sysobjects' , 'id,xtype,crdate' , 'name' , 'p_select'/*id          xtype crdate
    ----------- ----- -----------------------
    898102240   P     2009-08-18 03:01:51.153
    */
      

  5.   

    --不会就是这个吧?
    select strFieldName from strTableName where strCon = strConValue and LogoutFlag='0'
      

  6.   


    CREATE PROCEDURE RPS 
    @PRAM VARCHAR(10),@TJ VARCHAR(6),@VALUES VARCHAR(20),@TBNAME VARCHAR(20) 
    AS 
    DECLARE @SQL VARCHAR(500) 
    SET @SQL = 'SELECT * FROM  ' +@TBNAME+' WHERE '+@PRAM+' '+@TJ+' '+'''' +@VALUES + '''' 
    ---PRINT @SQL 
    EXEC(@SQL) 這個是我以前寫的動態查詢存儲過程,可以自定義表名,字段和條件, 參數 
      

  7.   

    表值函数需要表结构确定,这个明显不符合你的需求.用openrowset可以获取存储过程的行集,参考
    http://blog.csdn.net/jinjazz/archive/2009/08/27/4489870.aspx