ASP之操作间隔字符串对应位置字符加减,自定义SplitStrAM函数

来源:互联网 发布:金慧软件 编辑:程序博客网 时间:2024/06/06 18:50

    以往存储用户状态数据的时候都是使用多个字段来分别记录,其实这种方法是很不方便的。一是需要在数据库中建立很多个字段,二是不方便于以后的扩展。对于那些不需要在查询的时候用来判断的字段的统计数据是没有必要单独建立字段的。

    思路:

    在数据库中的用户表,每条记录都需要去统计它的发帖总数,留言总数等。偶以前的做法是在用户登录自己的后台以后,使用此用户的ID号来查询相对应的表中记录数(使用语句[Select Count(ID) From  表名(0)])。这样又多做了一次查询,如果在用户发表帖子时候或有人对此用户留言的时候直接在用户表中的统计字段上加1,删除帖子的时候减1。

    然而这些字段往往有很多,由此想到了使用一个间隔字符将这些统计的数据写入一个字段中,即使以后再有新的统计只需要在这个字段上加一个间隔符就OK了。使用这种方法是不错,但对统计数值加减的操作比较麻烦,需要找到对应位置进行加减操作。

   在做上个站点的时候我曾有用过这种做法,因各类别下的字段数不一样,我使用了自定义表单项的做法,将多个字段使用间隔字符存储于一个备注字段中。但我也为此做了很多工作,当时为了索引各字段不乱使用了字段名等于值的做法,然后再使用间隔字符做的间隔(字段1=字段1值|字段2=字段2值)。

   有的时候一些东东是要视情况而定的,对于存储用户统计的字段使用间隔字符串的做法还是可行的,只是需要一个操作函数来快速对相应位置的字段值进行操作,存储格式(发帖总计|留言总计|被删除主题总计|

   实现:

     1、将多个不用于查询排序、条件判断的字段使用间隔字符串存储于一个字段中

     2、当有发布新的信息时对字段符相应位置的数值进行加减操作

   代码:

 

'**************************
'
函数名:SplitStrAM
'
说  明:需要外部整数转换函数支持
'
作  用:间隔字符串中某位置加减
'
参  数:参数位置从零计
'
        NeedStr(需要处理的串)
'
        DistantStr(间隔字符串)
'
        PositionNum(第几个位置)
'
        TypeStr(类型串)
'
返  回:完成加减后的字符串
'
*************************
Public Function SplitStrAM(ByVal NeedStr,ByVal DistantStr,ByVal PositionNum,ByVal TypeStr)
    
Dim TempSplit
    TempSplit
=Split(NeedStr,DistantStr)
    
Select Case UCase(TypeStr)
        
Case "A" '执行增加操作
            TempSplit(PositionNum)=ChkNumeric(TempSplit(PositionNum))+1 '这里的ChkNumeric为自定义数值转换函数
        Case "M" '执行减少操作
            TempSplit(PositionNum)=ChkNumeric(TempSplit(PositionNum))-1
    
End Select
    SplitStrAM
=Join(TempSplit,DistantStr)
End Function
原创粉丝点击