yulihua49 发表于 2016-10-12 13:26

本帖最后由 yulihua49 于 2016-10-12 13:36 编辑

BetonArmEE 发表于 2015-11-06 20:33
回复 14# yulihua49   动态的不行,一般都是写代码时就确定了要操作的表名和字段名,至少某商业银行核心系统里4000多个交易中还没有需要动态指定表名字段名的技术需求,够用就行,太灵活也带来复杂易错性和性能相对降低,简单、直接就是稳定、高效。







我现在:

<p>static int ins_JSON(GDA *context,const char *tabname,JSON_OBJECT rows,JSON_OBJECT err_json)
{
int ret,i,n;
char stmt,*p,*recs=NULL,*summary_p,*summary_recs=NULL;
int ins_rows=0,ddt_rows=0,rec_size,summary_recsiz,summary_num;
DAU dau,*dp,summary_DAU;
char summary_tabname;
T_PkgType *tp;

      if ( !rows ) return -1001;
      n=json_object_array_length(rows);
      if ( n < 1 ) return -1002;
      dp=&dau;
      dau.pos=context->poolno;
      summary_DAU.pos=context->poolno;
//取得数据库模板
      ret=DAU_mk(&dau,context->SQL_Connect,tabname);//这个tabname的模板就取到了,不管它有多少列。</p><p>表名是任意的,完全的泛型处理。
</p>这个工具很成熟,极其可靠,已经用在生产环境。而且性能非常高,往往比你自己写SQL效率高得多。

evaspring 发表于 2016-10-13 15:10

:em17:在下佩服

Traxex 发表于 2016-11-04 02:31

我也实现了个。。
没有用宏

        class myclass: public object<myclass>        {
        public:
                myclass(){}

                static void static_this()
                {
                        install_property("count", &myclass::get_count, &myclass::set_count);
                }

                const int&get_count()                                { return count_;        }
                void                 set_count(const int& value)        { count_ = value;         }

        private:
                int         count_;
        };



yulihua49 发表于 2016-11-08 18:24

Traxex 发表于 2016-11-04 02:31
我也实现了个。。
没有用宏

这说明啥?

pandaiam 发表于 2016-11-25 14:11

能不能简洁的讲下反射。。。

yulihua49 发表于 2016-11-25 21:26

回复 25# pandaiam 就是在运行时能够知道一个对象内部的数据,如名称,属性(类型,长度,。。。。),位置,权限等等。



页: 1 2 [3]
查看完整版本: 前两天有人提到C++没反射,写了个实验版