- 主题:我们很多同事都是完全不用unique_ptr,一律shared_ptr
就是操作任意struct的任意member field。
你想要什么样的绑定操作?
【 在 ylh1969 的大作中提到: 】
: 绑定那段,AI完全理解错啦。不是那个操作。
: 可以考虑模板与struct完全分离。。
--
FROM 111.199.144.*
f.ptr就是绑定的字段成员的地址啊
f.name是字段的名字
cout那些打印是可以无视的,那只是演示怎么用那些数据。
【 在 ylh1969 的大作中提到: 】
: 这是由数据库接口确定的,我只能服从。
: 绑定的数据,只能使用指针。
: 我看错了,它没有操作绑定,只是cout了,看看而已。
: ...................
--
FROM 111.199.144.*
你这就是TLV(type + length + value),以前你说过的
【 在 ylh1969 的大作中提到: 】
: f.ptr,理论上可以,实际上,难。
: 因为实际上要面对一大堆数据,结构数组,不需要每个记录都有模板,一个模板即可。
: 所以,模板里,ptr要变成offset。与数据分离,一个模板处理一大堆数据,各个来源各个去处的,不同函数里的。
: ...................
--
FROM 111.199.144.*
这种TLV应该是没有编译期的类型检查,T是手动填写的,不是编译器自动推导出来的。
【 在 ylh1969 的大作中提到: 】
: 哦,你给引申了,有那么点意思。
--
修改:z16166 FROM 111.199.144.*
FROM 111.199.144.*
sql注入就是外部给的畸形数据导致的。用字符串拼接出sql语句,是大忌
不过拼接sql语句的代码,改成调用数据库提供的prepared statement API,也很方便。
你之前说的绑定,就是把f.name、f.ptr喂给prepared statement?
【 在 ylh1969 的大作中提到: 】
: sql注入不用考虑,拼接是内部过程,不对外。
: 外部只提供数据,才不管语句。
--
修改:z16166 FROM 111.199.144.*
FROM 111.199.144.*
现阶段反射的实现,处理meta信息,只能是要么用宏,要么用预处理了
用预处理的库也有现成的,比如开源的ODB,支持ORM
ylh1969老哥说的是他在pure C时代的实现,他跟我们讨论C++的实现那是财务自由退休了放不下技术讨论着玩
【 在 hgoldfish 的大作中提到: 】
: 你们也太折腾了。
: 要我就写个预处理器读 sql 表结构,让 cmake 在编译之前跑一下。
: 最终上层的代码一定非常漂亮。
: ...................
--
修改:z16166 FROM 111.199.144.*
FROM 111.199.144.*
知道啊,prepared statement的bind操作
【 在 ylh1969 的大作中提到: 】
: 外部给的一切数据,都是数据,不会成为sql语句的一部分。
: 绑定变量的原理你要了解一下。
:
--
FROM 111.199.144.*