以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]手机显示ID和实际_Identify不符的问题?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=147483)

--  作者:新福星
--  发布时间:2020/3/18 7:55:00
--  [求助]手机显示ID和实际_Identify不符的问题?

手机一个项目。按照教材引用了一段程序。指定的主键 .Primarykey = "ID"  ,ID是由"_Identify"转换而来。ID在手机上已经显示出来了,见下图。

可是发现ID和真实的"_Identify“不一样。表中的ID是事后用由下段程序产生的;手机屏幕上的ID 是由_Identify As ID来的。

因为使用的是SQL语言,所以表里的ID没有实时产生。怎么解决呢?谢谢!也尝试直接用_Identify为主键,依然如此。

For Each a As Row In Tables(bm).Rows
a("ID")=a("_Identify")
Next

 


图片点击可在新窗口打开查看此主题相关图片如下:qq图片20200318074252.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:qq图片20200318074446.png
图片点击可在新窗口打开查看

[此贴子已经被作者于2020/3/18 7:56:28编辑过]

--  作者:有点蓝
--  发布时间:2020/3/18 8:58:00
--  
数据库里id为4036的是什么数据?这种要提供数据和项目测试才知道是什么原因了
--  作者:新福星
--  发布时间:2020/3/18 9:30:00
--  

ID=4036就是这段程序里面自动产生出来的。这段程序产生的ID和真正的_Identify不一样!


图片点击可在新窗口打开查看此主题相关图片如下:qq图片20200318074446.png
图片点击可在新窗口打开查看


--  作者:新福星
--  发布时间:2020/3/18 9:39:00
--  

这个表的ID是因为发现用程序引入的_Identify和实际查看到_Identify不一样,才后续加的。主要是查一下_Identify的值!

数据库里的ID是用程序

For Each a As Row In Tables(bm).Rows
a("ID")=a("_Identify")
Next

写出来的;手机显示是用 _Identify As ID出来的。理论上应该完全一致。但实际上不一样!

用SQL Into 插入记录之后 _Identify会自动产生么?


--  作者:有点蓝
--  发布时间:2020/3/18 9:47:00
--  
 _Identify保存后才是真正的值,没有保存前都是临时值,下面这种代码应该在保存后再使用

Tables(bm).save
For Each a As Row In Tables(bm).Rows
a("ID")=a("_Identify")
Next

--  作者:新福星
--  发布时间:2020/3/18 9:57:00
--  

是的ID列就是保存后再重新设置ID的值。

换个思路。这是服务器后台程序。多用户在使用,所以尽量都在用SQL语句。

这个表里有独立的ID列,如何使用SQL修改语句使ID和_Identify一样?

 

现在的问题是 用SQL _Identify As ID 出的值和把_Identify 赋值给ID列,这两种方法得到的值是不一样的;所以再用ID查_Identify 就查不到了!


--  作者:有点蓝
--  发布时间:2020/3/18 10:08:00
--  
_Identify As ID 得到的肯定是真正的_Identify 值,不可能有错。如果表格已经有一个ID列,建议改一下不要使用同名,如:_Identify As ID2 。

我觉得问题应该不在这里,可能是代码逻辑的问题。另外确定数据库里_Identify是自增的列?

--  作者:新福星
--  发布时间:2020/3/18 10:25:00
--  
也想到了可能ID重名问题。我刚刚把_Identify As ID1 了。这个不是真正的_Identify ,随后我在数据库加载后,用程序
For Each a As Row In Tables(bm).Rows
a("ID")=a("_Identify")
Next
 
得到的ID和ID1是不一样的;
 
逻辑是这样 有一个表A;先将指定范围的数据删除了;然后使用SQL INto加入数据(确切这种加入_Identify会形成么?);然后按照教课书上的例子 读取指定页码记录序号 其中将_Identify As ID1列,然后加入到了手机表格中;
 
接下的工作就是另一个程序用_Identify=ID1读这表A的数据,但是读不到;接着在数据库加载表A后,用程序
For Each a As Row In Tables(bm).Rows
a("ID")=a("_Identify")
Next 就会看到ID的值和手机显示的ID1是不一样的;
 
也直接使用_Identify不用ID1,主键用的是_Identify,仍然是这样,读不出来!
[此贴子已经被作者于2020/3/18 10:27:26编辑过]

--  作者:有点蓝
--  发布时间:2020/3/18 10:36:00
--  
不可能,_Identify As ID1 了。绝对是真正的_Identify!!!是不是接到其他数据库了
--  作者:新福星
--  发布时间:2020/3/18 11:08:00
--  

怎数据库没有接错。就是用的1楼的那段程序;不用ID1 直接用_Identify 作为主键,转到下个模块是正确的。

但是用这个得到的数找_Identify,就找不到了!接着用把_Identify赋值ID列,看到的就是不同的值!

刚才我用下面的程序强制把ID赋值了

 

 

 


图片点击可在新窗口打开查看此主题相关图片如下:qq图片20200318110630.png
图片点击可在新窗口打开查看

还是不行!

真的好奇怪!