我想用一个函数来处理我的程序里面的所有更新问题,比如说更新一个用户信息
字段为: 用户ID,用户名,密码. 更新一个书的信息,字段为:书ID,书名,作者,出版时间
这两个更新的区别是参数不一样多,参数类型不一样;
我定义了两个结构
Type
  用户信息 = record
  用户ID;
  用户名;
  密码;
  end;
  书 = record
  书ID;
  书名;
  作者;
  出版时间
  end;
怎么在查询函数用一个动态的参数统一识别它们?我猜是不是要用到枚举类型(我对枚举不太熟习),或是有什么其他的好方法?

解决方案 »

  1.   

    不会吧,就算是采用SIZEOF函数,可传给更新函数的参数怎么办列,怎样用一个参数来动态表示这两个结构列
      

  2.   

    不会要我就为了这几个参数,创建几个Object的派生类然后用他们的共同的父类Object来当参数给更新函数吧,这也开销大了点吧,有没有什么更好的方法呀?谢谢了.
      

  3.   

    我也碰到了这样的问题,我是这么解决的,和你的思路完全不一样,仅供参考:
    定义一个CString型的链表,将读出的记录集的当前记录中的字段按照类型都转换成字符串类型后添加至链表,字段越多链表越长,这样可以处理字段数不一样、而且字段类型不一样的所有表——这是读出。
    写入刚好相反,将更改先在链表中进行,然后从链表的表头开始按照相应字段的数据类型进行转换(数据类型可以从数据库表的字段信息中获得),直至表尾,即将记录集中当前记录进行了修改,然后更新数据库。这样处理的好处是几乎可以处理所有的数据表而不需要进行任何改动,不好的地方有两个,一是可能效率相对较低,因为进行移动指针等操作时都得更新该链表;二是不能和界面绑定,而且所有数据处理时都是字符串,有些地方失去了数据控制的功能(如只能输入数字等)。我这样尝试已经成功了,如果可以你也可以试一试,呵呵,通用性还可以,^_^