我有大量的视觉foxpro dbf文件,我想转换为csv.(如果您愿意,可以在此处下载部分数据.点击2011年的交易数据链接,准备等待很长时间......)
我可以使用DBF View Plus(一个非常棒的免费软件实用程序)打开每个表,但是将它们导出到csv每个文件需要几个小时,我有几十个文件可以使用.
是否有像DBF View plus这样的程序可以让我设置一批dbf-to-csv转换来在一夜之间运行?
/编辑:或者,是否有一种将.dbf文件直接导入SQL Server 2008的好方法?它们都应该进入1个表,因为每个文件只是来自同一个表的记录的子集,并且应该具有所有相同的列名.
我对FoxPro非常陌生,所以请原谅最有可能是一个非常愚蠢的问题.我试图将我的大脑包裹在由非程序员编写的几个FoxPro 9程序中,并且在我的生活中从未查看过FoxPro代码,我发现了解它的一些特性是相当繁琐的.
我有一个非常简单的SQL语句,它从Project文件返回信息(用作表).我有三个简单的函数来处理给我一些关于项目中包含的对象(文件)的有用信息.
这是运行的整个主程序.它只是一个使用三个简单函数的SQL语句:
SELECT ShortName(Name) AS SName, LongName(Name) AS LName, Type, GetType(Type) AS TypeName ;
FROM <my project file here> ;
ORDER BY Type, SName
Run Code Online (Sandbox Code Playgroud)
SQL语句运行正常,我的三个函数被调用,并且除了GetType函数之外,所有三个函数都返回我期望的数据.ShortName函数只返回文件名,LongName函数返回整个路径和文件名,GetType函数应返回一个更易读的字符串,告诉我文件类型是什么.如"表","程序"等...
这是问题:
正在运行GetType函数并且正在设置返回值,但返回的值将被截断为6个字符.

我已经验证函数的返回值是函数退出之前我期望的完整文本字符串.然而; 当数据在查看器中显示时,值将被截断.
为什么这些数据会被截断?另外两个函数的工作方式几乎相同(至少从我完全"不知情的"观点来看)并且它们没有被截断.
以下是GetType函数的代码
PARAMETERS pType
retVal = ""
DO CASE
CASE LEFT(ALLTRIM(pType),1) = 'B'
retVal = "Lable"
CASE LEFT(ALLTRIM(pType),1) = 'D'
retVal = "Table"
CASE LEFT(ALLTRIM(pType),1) = 'd'
retVal = "XBase Table"
CASE LEFT(ALLTRIM(pType),1) = 'F'
retVal = "Format"
CASE LEFT(ALLTRIM(pType),1) = 'H'
retVal = "Header"
CASE LEFT(ALLTRIM(pType),1) = 'I' …Run Code Online (Sandbox Code Playgroud) lcVillkor1 = "table.numbers > 1"
SELECT * FROM table WHERE lcVillkor1 ORDER BY table.numbers
Run Code Online (Sandbox Code Playgroud)
我收到了错误 - SQL: WHERE clause is invalid.
我几乎尝试了所有可能的组合
"table.numbers > 1", (table.numbers > 1), "(table.numbers > '1')" 等等..
我试图从一张桌子上打印一些帖子(数字大于1).
我有2个dbf表,我需要根据第二个表值更新第一个表.我能够在SQL服务器上完成它,我需要Visual Foxpro的帮助.
这是我的foxpro命令:
================================================== =======
use table1
use table2
UPDATE table1
SET table1.name = table2.name
from table1 inner join table2
on table1.id = table2.id
WHERE table1.dsdate >= {^2011-04-13} and table1.dsdate <= {^2012-04-12}
Run Code Online (Sandbox Code Playgroud)
================================================== =======
请帮助我,非常感谢!
有没有人有过VFP 到 .Net 编译器的经验或了解?
我在一家拥有广泛 VFP9 应用程序的公司工作,他们正在寻找一种快速方法来让应用程序在 .Net 中运行。我被要求检查这个编译器,看看它是否是一个可行的选项,但到目前为止我还无法让它成功编译任何东西 - 即使我的“Hello World”世界应用程序也无法运行。
只是为了限定最后一句话:我可以“编译”非常简单的 Fox 应用程序,但生成的 .Net 可执行文件无法成功执行。我已经反汇编了源代码并将其转换为 C#,但通常它包含许多错误(100 多个)。
我很想立即放弃整个技术,但是 Fox 用户社区似乎对此有很多支持和兴奋。有人对此有任何见解吗?
这是VFP 到 .Net 编译器的链接
我正在使用MS Access 2003前端通过odbc访问由Visual Foxpro 9应用程序拥有的网络驱动器上的数据,而且它似乎速度令人难以置信 - 在一个特定的表中有大约1400条记录,并且它需要一个好的尽管在使用基本DBF查看器或表所属的应用程序时,加载Access接口的时间很短,但它是即时的.查询数据时,它比打开整个表视图更快,但仍然比我预期的要慢得多; 它访问的计算机位于同一网络上,目前通过应用程序访问的速度比网络托管的SQLServer慢,其上的记录数量是其上的10倍.
任何有关我可以尝试使用VFP ODBC链接来加速它并不明显的事情的建议将不胜感激.
谢谢Dave,目前,我正在玩一个试图让它在Access'查询选项卡中运行的查询...
查询现在需要大约4分钟才能运行..它返回一个包含10行信息的交叉表,基于大约230条记录的输入条件 - 我尝试过没有来自Group表的连接和字段,但速度差异可以忽略不计.
只是对它提出一些看法:
Allsales包含大约50个字段和15,000个记录Stock包含大约100个字段和500个记录组包含3个字段和8个记录.
SELECT allsales.type, allsales.branch, allsales.terminal, allsales.date, Sum(allsales.totalprice) AS SumOftotalprice, Sum(allsales.discamount) AS SumOfdiscamount, Sum(allsales.tender1) AS SumOftender1, Sum(allsales.tender2) AS SumOftender2, Sum(allsales.tender3) AS SumOftender3, Sum(allsales.tender4) AS SumOftender4, Sum(allsales.tender5) AS SumOftender5, Sum(allsales.tender6) AS SumOftender6, Sum(allsales.tender7) AS SumOftender7, Sum(allsales.tender8) AS SumOftender8, Sum(allsales.tender9) AS SumOftender9, Sum(allsales.tender10) AS SumOftender10, Sum(allsales.tender11) AS SumOftender11, Sum(allsales.tender12) AS SumOftender12, Sum(allsales.loypoints) AS SumOfloypoints, Count(allsales.type) AS Fuzz, groups.desc
FROM (stock RIGHT JOIN allsales ON stock.plu = allsales.plu) …Run Code Online (Sandbox Code Playgroud) VS 2010、VB.NET、WINFORMS。在我的应用程序中,我需要导入 foxpro 数据库表并排除已删除的记录。问题是 FOXPRO 表将删除的项目保留在同一个表中。我曾尝试在连接字符串中使用 DELETED=NO 但 vb 抛出
"Format of the initialization string does not conform to the OLE DB specification."
Run Code Online (Sandbox Code Playgroud)
我的功能如下:
Dim _DBConn1 As String = "provider=vfpoledb.1; Data Source = " & file1 & ";DELETED=NO"
Dim _DBConn2 As String = "provider=vfpoledb.1; Data Source = " & file2 & ";DELETED=NO"
Dim _DBConn3 As String = "provider=vfpoledb.1; Data Source = " & file3 & ";DELETED=NO"
Dim _DBConn4 As String = "provider=vfpoledb.1; Data Source = " & file4 & ";DELETED=NO" …Run Code Online (Sandbox Code Playgroud) 我的表中有一个值“ABC”,我想将其转换为 ASCII 值。
如何才能做到这一点?
我的输出应该是:656667
我最近需要更新一个旧的FoxPro遗留应用程序,该应用程序使用Internet Explorer Automation来通过单击某些href链接并将数据输入到表单并提交来驱动网页内容.
这曾经工作得很好但是用IE 11(Windows 10)以及IE 10(Windows 7)检查Windows的最新版本我发现任何对元素的点击事件调用都没有效果而且它们无声地失败 - 没有错误,但也没有点击.
o = CREATEOBJECT('InternetExplorer.Application')
o.visible = .t.
o.Navigate('http://test.com/ControlBasics.wcsx')
wait window 'page loading...' timeout 1.5
* Target object has no id so navigate DOM to get object reference
oLinks = o.Document.getElementsByTagName('a')
oLink = oLinks.item(0)
oLink.Click()
* o.navigate(oLing.href) && works but not sufficient
o.document.getElementById('txtName').value = 'Rick'
oButton = o.document.getElementById('btnSubmit')
oButton.Click()
Run Code Online (Sandbox Code Playgroud)
在上面的代码中,.click()事件触发器都没有任何效果.然而,对文本框的分配工作正常,因此页面是脚本化的.
有人知道发生了什么变化或者可能会对行为产生什么影响,以便自动化以前工作的事件代码不再有效吗?