Visual FoxPro更新不会更新任何内容

时间:2014-08-13 10:29:07

标签: sql foxpro visual-foxpro

我对VFP知之甚少,但我的任务是对一个相当大的表进行一些数据更改。在命令窗口中运行标准SQL更新命令时,VFP声明记录正在更新,但它们永远不会更改。

我试过了:

UPDATE selections ;
SET selections.gender = "FEMALE" ;
WHERE selections.gender = "F"

VFP报告称它在大约十秒内更新了4221674条记录(预期数量)。但是当我重新询问桌子时,性别领域没有改变。

以防万一这是基于我试图更新我正在过滤的字段的事实,我尝试了这个:

UPDATE selections ;
SET selections.gender = "FEMALE" ;
WHERE Urn = "946000001484066"

据报道已更新1条记录但未进行任何更改。

我做错了什么?是否存在我需要调用的某种后命令进程,比如当您将记录标记为删除然后进行实际的删除步骤时?

编辑:这......

REPLACE ALL gender WITH "FEMALE" for gender = "F"

具有相同的效果 - 它说它已经取代了400万条记录,但数据似乎没有改变。

我发现我似乎无法向表中添加字段,这表明存在某种锁定。但我看不到任何相关的设置。

1 个答案:

答案 0 :(得分:2)

表格结构可能只是性别中的一个字符,因为一个人只能是生物学上的男性或女性,而且简称为" M"或" F"分别

VFP只是没有唠叨你,你试图写一个比表中的列可以处理更大的字符串值,因此只保留" F"出于"女性"尝试。

如果您希望某些报告中的输出显示完整的性别参考,您可以在sql查询中执行类似的操作来获取数据。

select ;
      iif( s.gender = "F", "FEMALE", "MALE" ) as ShowThisGender,;
      s.OtherColumns ;
   from ;
      Selections s;
   where ;
      conditions...

如果您在VFP中,要确认结构,请在命令窗口中键入

use Selections  
display structure

为了澄清,您可以使用显式路径引用来确定您的选择表所在的位置,例如

use X:\SomePath\SubPath\Selections