2017-07-29 48 views
1

我想添加一个新的记录到dbf文件(文件名是STCRD.dbf)。我使用visual studio 2017> data connectionse添加了一条新记录,如下图所示。CDX文件没有更新后添加一个新的DBF文件重新加入

enter image description here

一个新的记录添加后,该CDX文件,这是名STCRD.cdx,不更新。我是视觉foxpro的新手。在cdx文件改变后我仍然不知道,dbf文件应该改变或不改变。任何人都可以点我正确的方式来添加一个新的记录到这种类型的数据库?

我发现一些link包含一些信息,但我无法理解关于发布pack命令的答案。

+0

您只能在连接字符串中使用路径。除此之外,你的命令丢失了。你如何做你的插入/更新/删除?如果你让VS生成命令,那么要小心VS对VFP做错了。 –

回答

2

您可能想检查有关使用VFP和OleDb连接的其他文章。连接应该指向文件所在的路径,而不是单个文件名/ dbf/cdx/fpt。

所以你的连接字符串应指向刚刚

d:\工作\ Sirichai \ TNPSE

那么你的选择,插入,更新,删除可以只参照表,并没有问题应该工作。 ..

SELECT * FROM STCRD其中....

插入到STCRD(FLD1,FLD2,fld3)的值(?,?,?)

和参数化查询

+0

感谢您的支持。根据您的建议更改连接字符串后,我仍然得到相同的结果。文件STCRD.cdx仍然不更新。这是对的吗? – wittakarn

+0

@wittakarn,如果以前提交记录时遇到问题,则可能需要对其进行重新索引。现在连接是准确的,做FUTURE插入似乎工作,或者它仍然错过索引。 – DRapp

+0

如何/为什么要查找CDX文件中的更改?你唯一需要关注的是DBF文件,其中存储/读取/写入数据记录及其字段(INSERT,SELECT等全部转到DBF),如果创建正确,相关的CDX将“遵循” 。- 但谁在乎?是的,只要包含一个索引表达式作为查询的一部分,拥有一个活动索引文件就可以加速你的SQL查询,而且,如果你在VFP本身工作,SEEK()可以利用它并且数据表关系可以是成立,但从VB.ASP或C#的角度来看,谁在乎? – Dhugalmac

1

我是视觉foxpro的新手。我仍然不知道在cdx文件被更改为 之后,dbf文件应该改变或不改变。任何人都可以 指向我的正确方式来添加一个新的记录到这种 数据库?

在VFP中,您可以创建一个数据表(一个DBF文件),您可以在其中创建关联的索引文件(CDX文件)。
喜欢的东西:

CREATE TABLE MyTable (field1 C(10), field2 M, Field3 D) 
SELECT MyTable 
INDEX ON field1 TAG firstfld 

或许花一些时间在免费,在线教程VFP将帮助。
Free On-line VFP tutorials

的修改的数据表(DBF文件 - STCRD.dbf)将自动“触发”相关联的索引文件(CDX文件)来更新。

当您创建一个ODBC连接时,您会这样做到DBF文件(STCRD.dbf),而不是 CDX文件。一旦你的数据表'知道'其关联的索引文件,CDX文件行为是'自动'的。您不直接使用CDX文件。

我想,对于我来说,目前还不清楚你要完成什么。正确设置ODBC连接,然后清楚解释您遇到问题的原因。注意:数据库是一个容器(有些像'M $ SQL Server'这样的'智能'),而其他的不是(像VFP数据库),但它们本身就是Not Data表格。数据表可能驻留在数据库中,也可能不在数据库中,但它是数据记录“存活”的数据表(而不是数据库)。

好运