以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  FT的内置表可否添加自增字段  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=188239)

--  作者:13135990604
--  发布时间:2023/9/10 6:47:00
--  FT的内置表可否添加自增字段
我之前做web开发时,用别的数据库,都有个自增字段,比如某个用户提交一条数据,我就直接往指定表提交数据就行了,不用管提交到第几行,
它返回给我的data就是一个json,这个json里就可以返回提交或更新后的数据id,这个id是自增的,有了这个自增id,我可以随时检查数据增删改查的情况;
当然,前端提交数据后,后端也会对应的写个服务,当数据提交后,返回data对象(json)里面就有数据id字段

我用FT时发现内置表跟excel很像,下面是我学习提交数据的时候写的代码:
    Dim dt As DataTable = DataTables("表B")
    \'先声明一个表dt获得其引用,行dataRow和列dataCol可以不声明,直接引用dataTable对象
    Dim 行数 As Integer
    dt.AddNew() \'表B增加一行
    行数 = dt.DataRows.Count    \'用.Count属性获取行数(int类型)
    dt.DataRows(行数 - 1)("账号ID") = 行数
    MessageBox.Show("真实行数:" & 行数)

由于FT的开发模式可能和之前做web开发的模式不同,我也不知道如何定义上述代码属于前端还是后端,总之上面代码虽然可以正常完成数据提交,但需要用dt.addNew()方法来手动增加一行,
然后还需要用.Count属性来获取现在该表的最大行数,这两句我感觉是有点冗余的;

虽然如此,我依然还是手动的给表增加了一个ID字段(非自增,整数型),可是我感觉我这样写法是错误的,问题在于:
1.这样写了之后,我为了避免以后的数据操作出错,强迫性的让我必须去全局代码建立很多变量(表A的最大行数,表B的最大行数,表C的最大行数 。。。。)
2.然后我还需要在每次项目启动事件里,加入几行代码(有几个表就要写几行),把所有表的最大行数取出来,赋值给全局变量
3.以后我在增删改查时,都要去全局变量里取所有表的行数,这样才可能不会出错

以上,是我个人这几天学习的对FT的理解,我知道有句古话叫:"代码有BUG,首先怀疑自己,其次还是自己",
请蓝老大包容一下我这个新手,我其实依然怀疑是我自己的问题,对FT的理解不够,我想FT肯定是有办法已经完备的处理的以上我的疑惑的,
解决方案请老大告诉我一下,蟹蟹啊~



--  作者:有点蓝
--  发布时间:2023/9/10 20:09:00
--  
在Foxtable创建的表默认就是有一个自增字段的,这个自增列名称为“_identify”。http://www.foxtable.com/webhelp/topics/1807.htm
--  作者:13135990604
--  发布时间:2023/9/10 21:24:00
--  
我们FT里的表不都默认是 Access吗,为什么没有 _identify

我看文档里写的要自己去Access建表


--  作者:13135990604
--  发布时间:2023/9/10 21:24:00
--  
就是为什么FT里自带的表不能这样设置  还请详细告知下步骤
--  作者:有点蓝
--  发布时间:2023/9/10 21:39:00
--  
FT里自带的表肯定都有_identify,不过这个被当做系统列,不会显示到界面的。自增列都是由数据库控制的,正常情况下用户也不需要看到这列的值,也无法手工改这个列的值。

除了一些特殊的功能,Foxtable不会要求要自己去Access建表的,目前在要自己去Access建表的应该也就外部用户管理(http://www.foxtable.com/webhelp/topics/2723.htm)这个功能需要用到。

--  作者:13135990604
--  发布时间:2023/9/11 1:02:00
--  
好的 明白了  谢谢蓝老大