- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是 FoxPro 的新手,所以请原谅这个很可能是一个非常愚蠢的问题。我正在努力思考几个由非程序员编写的 FoxPro 9 程序,并且我以前从未看过 FoxPro 代码,我发现理解它的一些特性是一件很麻烦的事。
我有一个非常简单的 SQL 语句,它从项目文件(用作表)返回信息。我有三个简单的功能,可以为我提供有关项目中包含的对象(文件)的一些有用信息。
这是运行的整个主程序。它只不过是一个使用三个简单函数的 SQL 语句:
SELECT ShortName(Name) AS SName, LongName(Name) AS LName, Type, GetType(Type) AS TypeName ;
FROM <my project file here> ;
ORDER BY Type, SName
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'
retVal = "Index"
CASE LEFT(ALLTRIM(pType),1) = 'L'
retVal = "Library"
CASE LEFT(ALLTRIM(pType),1) = 'M'
retVal = "Menu"
CASE LEFT(ALLTRIM(pType),1) = 'P'
retVal = "Program"
CASE LEFT(ALLTRIM(pType),1) = 'Q'
retVal = "Query"
CASE LEFT(ALLTRIM(pType),1) = 'R'
retVal = "Report Form"
CASE LEFT(ALLTRIM(pType),1) = 's'
retVal = "Screen Table"
CASE LEFT(ALLTRIM(pType),1) = 'S'
retVal = "Screen Program"
CASE LEFT(ALLTRIM(pType),1) = 'T'
retVal = "Configuration File"
CASE LEFT(ALLTRIM(pType),1) = 'x'
retVal = "File"
CASE LEFT(ALLTRIM(pType),1) = 'X'
retVal = "File"
CASE LEFT(ALLTRIM(pType),1) = 'Z'
retVal = "Application"
ENDCASE
RETURN retVal
最佳答案
实际上,更短的是,让函数 GetType() 始终返回“PADR( retVal, 15 )”(或任何长度)。
原因是。当 VFP 运行查询时,它实际上运行了两次。第一次检查以确保其有效,并查看函数调用以确保结果的给定类型。如果您对第一条记录的查询返回较短的字符串长度值,那么最终游标的列宽也是如此。
通过从您的函数中强制执行完整的恒定长度,您将保证它不会被截断,也不会在其他任何其他 SQL 调用中遗漏。
关于visual-foxpro - 从过程返回的 FoxPro 字符串被截断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9772328/
将 Visual Foxpro 6 应用程序转换为 Visual Foxpro 9 时是否存在任何问题?还是这很直接? 在此过程中有什么需要注意的地方吗? 最佳答案 是的...取决于您项目中的各种元素
我正在使用 Visual FoxPro,我需要将货币金额转换为数字。表中的2列是tranamt(numeric,12,2)和tranamt2(character) 这是我的例子: tranamt2=-
我们的 ERP 系统是一个混合系统。实际数据是SQL,但包含用户信息、配置文件、权限、安全性等的表是在Visual FoxPro 中。 我需要获得对 VFP 数据库的独占访问权限。我使用程序本身将每个
我有 2 个 dbf 表,我需要根据第二个表的值更新第一个表。我可以在 SQL Server 中完成,我需要 Visual Foxpro 的帮助。 这是我的 foxpro 命令: ==========
我正在将 VFP 9 应用程序移植到 SQL Server。 VFP 应用程序有一些表格,其中包含“常规”字段。查询字段的时候得到一个字节数组,存盘的时候可以看里面是word文档,还是Paint BM
今天有人向我寻求有关 FoxPro 问题的帮助,了解如何通过 HTTP 下载文件。 我发现了两件事:一个是付费的 ActiveX,另一个是 other one需要 libcurl。 有没有一种方法可以
我想知道当表单处于事件状态时是否可以将文本输出到 FoxPro 中的主窗口?一旦表格出来我的?命令被发送到表单,但这不是我希望它们显示的位置。 最佳答案 查看命令 激活屏幕 这应该重定向到 VFP 主
我是 FoxPro 的新手,所以请原谅这个很可能是一个非常愚蠢的问题。我正在努力思考几个由非程序员编写的 FoxPro 9 程序,并且我以前从未看过 FoxPro 代码,我发现理解它的一些特性是一件很
我有一个旧的 Visual FoxPro 9 应用程序,它将数据存储在 dbf 文件中。 以这种格式存储了公司的加密/编码名称- 3:569A>@@ACCDFFGIIJLLMOOPRRSUUVXXY[
我有一列用逗号分隔的字符串。 示例:城市、邮政编码 我想创建一个仅填充城市的列,以便逗号前的所有内容。 其他人是如何做到这一点的?我知道使用 Foxpro,您通常可以通过多种方式完成相同的任务。任何帮
我正计划试用 Re-Fox:http://www.refox.net/ 他们有一个演示版本——但是在测试它时它说在试用模式下不支持重新编译器(考虑到该工具的主要用途,这似乎很奇怪)。 这是一款 500
我有一个旧版FoxPro exe应用程序。 源代码不可用(它是外包编写的,从未交付过源代码)。 要求使用C#编写完全相同的应用程序,然后开发新功能。要求照常过时了。虽然我们可以看到应用程序在UI上执行
我想将许多大的 FoxPro dbf 文件(总共 >80G)从生产环境复制到测试机器。这些 dbf 文件是旧 FoxPro 应用程序的业务数据。此应用程序正在运行,我无法停止它。 我可以复制那些文件吗
文件 .fpt 和 .dbf(在 Visual FoxPro 8 中制作)包含我需要获取或至少需要查看的文本(人类可读)。但我不能那样做。 MS excel 不仅可以看到文本,还可以看到很多没有意义的
我对 FoxPro 完全陌生(并且对 MySQL 非常熟悉)。 我正在尝试在 FoxPro 中执行此查询: update expertcorr_memoinv.dbf set 'Memo' = (se
我对 FoxPro 完全陌生(并且对 MySQL 非常熟悉)。 我正在尝试在 FoxPro 中执行此查询: update expertcorr_memoinv.dbf set 'Memo' = (se
我需要通过互联网传输大量的 foxpro 文件,然后将数据导入到访问数据库中。在某些情况下,.fpt 文件比同名的 .dbf 文件大几倍。从我一直在阅读的内容来看,.dbf 文件似乎包含所有内容,我可
我对 FoxPro 不是很熟悉,并且在尝试修改报告时遇到了问题。 我有一个数值,我想将其转换为文本,以便获得前四个字符,但我只能获得前两个字符。 当我在命令窗口中执行以下命令时: ?左(STR(201
作为 SQL 查询的一部分,我有以下内容 iif(rapport_nc, 35, 0) AS rapport 如果第一条记录返回 0(就是这种情况),我会在每条返回 35 的记录上收到数字溢出错误。
如何在foxpro 9.0 中获取选定值(两个字段绑定(bind):name (0) 和id(1))、选定的组合框索引? 最佳答案 thisform.yourCombobox.Value “Value
我是一名优秀的程序员,十分优秀!