CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  其他数据库开发 >  VFP

求助(VFP里面用到的行缓冲或表缓冲方式)

楼主zenglinda(曾敏儿)2003-12-02 22:28:31 在 其他数据库开发 / VFP 提问

1.销货表单里,有添加,删除,修改,取消,存储,我想要的功能是:点击"添加"后输入记录,就点击"存储",但是我每次点"存储",它都会出现错误:函数要求使用行缓或表缓冲方式.  
  2.点"修改"后,我想取消,但是每次点"取消"按钮都会出现错误:函数要求使用行缓冲或表缓冲方式.  
  3."取消"的click的代码:  
  if   messagebox("是否放弃当前操作?",48+4,"信息提示")=6     &&回答是“是”  
        tablerevert(.f.)   &&将数据恢复  
        this.enabled=.f.  
        thisform.commandgroup1.command9.enabled=.f.  
        if   thisform.opmode=1   &&添加操作  
  4."存储"的click的代码:  
  if   tableupdate(.f.)=.f.  
        =messagebox("数据保存不成功",48,"信息提示")  
  else  
      this.enable=.f.  
      thisform.commandgroup1.command8.enabled=.f.  
  endif  
   
  问题就是:总会弹出:函数要求用行缓冲或表缓冲方式.  
  联系方法:zwylinda@21cn.com  
  QQ:123727076  
  谢谢大家的支持!!!!!!!!!!!!!!!!!!!! 问题点数:0、回复次数:6Top

1 楼taoyb(tyb)回复于 2003-12-03 08:58:45 得分 0

在表的数据环境中,改变表的缓冲方式Top

2 楼sunsunup(細水長流)回复于 2003-12-03 09:38:56 得分 0

tableupdate(),   tablerevert()需要先設buffering   =   5.用完之後恢復burrering   =   1  
  請參考:  
  CURSORSETPROP(cProperty   [,   eExpression]   [,   cTableAlias   |   nWorkArea])  
  Top

3 楼magnetmoon(天涯明月刀)回复于 2003-12-03 11:28:16 得分 0

对于没有启用行缓冲的表或没有启用表缓冲的临时表,TABLEUPDATE()函数不能实施对它们的更改。如果在没有启用行或表缓冲的情况下,调用   TABLEUPDATE()函数,Visual   FoxPro   将产生错误信息。然而,TABLEUPDATE()函数仍然可以对具有有效性规则的表或临时表实施更改。使用函数   CURSORSETPROP()可以启用或废止行或表缓冲。  
   
  cursorsetprop(   )   函数  
  示例   请参阅  
   
  指定   Visual   FoxPro   表或临时表的属性设置。  
   
  语法  
   
  CURSORSETPROP(cProperty   [,   eExpression]   [,   cTableAlias   |   nWorkArea])  
   
  返回值类型  
   
  逻辑型  
   
  参数  
   
  cProperty  
   
  指定要设置的表或临时表属性。请注意,对   Visual   FoxPro   表只能指定   Buffering   属性。  
   
  eExpression  
   
  为   cProperty   属性指定值。如省略   eExpression,属性设为默认值。  
  下表列出可为   cProperty   指定的属性以及能指定的   eExpression   值。  
   
  属性   eExpression   值    
  BatchUpdateCount*   发送到缓冲表后端的更新语句的数目。1   是默认值,调整该值可以大大提高更新性能。    
  Buffering   1-设置行缓冲和表缓冲关闭。在   FoxPro   早期版本中,锁定记录和写数据操作是等价的(默认值)。2-打开保守式行缓冲。3-打开开放式行缓冲。4-打开保守式表缓冲。5-打开开放式表缓冲。除了方式   1   之外,SET   MULTILOCKS   都必须是   ON。    
  CompareMemo   .T-检测更新冲突的   WHERE   子句中包含备注字段或通用字段.F-检测更新冲突的   WHERE   子句中不包含备注字段或通用字段    
  FetchAsNeeded   .T.   柊凑找笱∪〖锹肌?F.-对于远程视图,选取记录的数目决定于MaxRecord   的属性;对于当地视图,选取所有记录。    
  FetchMemo*   .   .T.-视图结果中包含备注字段。.F.-视图结果中不包含备注字段。    
  FetchSize*   从远程结果集合中逐步提取的行数,默认值是   100   行。FetchSize   设为   -1   将检索全部结果集(但受   MaxRecords   设置限制)。    
  KeyFieldList   逗号分隔的临时表主字段的列表。无默认值。必须包含字段名的列表。    
  MaxRecords*   当结果集返回时所提取的最大行数。默认值是-1(返回所有行)。0   值指定执行视图,但不提取结果。    
  Prepared   .T.-准备   SQL   语句,以执行   REQUERY()。REQUERY()用于从一个   SQL   视图中重新检索数据。有关   SQL   语句的准备,请参阅   SQLPREPARE(   )SQLPREPARE()。本属性只用于视图。默认为   .F.    
  SendUpdates   T.-执行   SQL   更新查询来更新远程表。.F.-不执行   SQL   更新查询。    
  Tables   逗号分隔的远程表名称的列表。无默认值。必须包含表名称的列表。    
  UpdatableFieldList   逗号分隔的指定给临时表的远程字段名和本地字段名的列表。可用该选项来为包含无效   Visual   FoxPro   字段名的临时表指定有效的   VisualFoxPro   字段名。    
  UpdateNameList   逗号分隔视图中字段的列表。此列表可以包含来自本地和远程表的字段。您必须包含将要进行更新的字段的列表。    
  UpdateType   1-   用新数据更新旧数据(默认值)。2-   通过删除旧数据,插入新数据来进行更新。    
  UseMemoSize*   使得结果返回到备注字段的列的最小宽度(按字节计)。例如,如果列结果的宽度比   UseMemoSize   值大,列结果存储在备注字段中。UseMemoSize   可从   1   到   255,默认值是   255。    
  WhereType   更新远程表的   WHERE   子句。WhereType   可以设为下列值:1   或   DB_KDY(源于   FOXPRO.H)。对远程表进行更新的WHERE   子句仅包含由   keyFieldList   属性指定的主关键字段。2   或   DB_KEYANDUPDATABLE(源于   FOXPRO.H)。对远程表进行更新的   WHERE   子句包含由   KeyFieldList   属性指定的主关键字段及任何可更新字段。3   或   DB_KEYANDMODIFIED(源于   FOXPRO.H)(默认值)。对远程表进行更新的   WHERE   子句包含由   KeyFieldList   属性指定的主关键字段及其他已修改的字段。4   或   DB_KEYANDTIMESTAMP(源于   FOXPRO.H)。对远程表进行更新的   WHERE   子句包含由   KeyFieldList   属性指定的主关键字段和时间戳。      
   
  *   这些属性主要用于远程视图,设置它对本地视图没有影响。但是,您可以为将要升迁的本地视图预先设置此属性。  
   
  cTableAlias  
   
  指定要设置属性的表或临时表的别名。  
   
  nWorkArea  
   
  指定要设置属性的表或临时表的工作区。如指定   nWorkArea   为   0,CURSORSETPROP()为后面所有的表或临时表设定环境设置。  
   
  说明  
   
  如果   Visual   FoxPro   成功地设置指定的属性,则   CURSORSETPROP()返回“真”(.T.);如果不能设置指定的属性,Visual   FoxPro   将产生错误。  
   
  CURSORSETPROP()缓冲属性的设置决定   Visual   FoxPro   如何执行记录锁定和更新缓冲。有关记录锁定和更新缓冲的详细内容,请参阅“帮助”中的共享数据访问编程主题。CURSORSETPROP()的   WhereType   属性设置决定了在远程表上如何执行更新。  
   
  可用   CURSORSETPROP()改写临时表的   FetchSize   SQLSETPROP()属性,默认情况下该属性从临时表的连接句柄继承而来。  
   
  对于   Visual   FoxPro   表和为表创建的临时表,可用   CURSORGETPROP()返回其当前属性设置。  
   
  如执行不带可选   cTableAlias   或   nWorkArea   参数的   CURSORSETPROP()命令,可以为当前选定工作区中打开的表或临时表指定属性设置。  
   
   
   
  dbsetprop(   )   函数  
  示例   请参阅  
   
  给当前数据库或当前数据库中的字段、命名连接、表或视图设置一个属性。  
   
  语法  
   
  DBSETPROP(cName,   cType,   cProperty,   ePropertyValue)  
   
  返回值类型  
   
  逻辑值  
   
  参数  
   
  cName  
   
  指定要设置属性的数据库、字段、命名连接、表或视图的名称。  
   
  若要给表或视图中的字段设置一个属性,应将包含该字段的表或视图的名称加在字段名前面。例如,要为   customer   表中的   custid   字段设置属性,应该将   cName   指定为:  
   
  customer.custid  
   
  cType  
   
  指定   cName   是当前数据库还是当前数据库中的一个字段、命名连接、表或视图。下表列出了可以为   cType   指定的值:  
   
  cType   说明    
  CONNECTION   cName   是当前数据库中的命名连接。    
  DATABASE   cName   是当前数据库。    
  FIELD   cName   是当前数据库中的字段。    
  TABLE   cName   是当前数据库的一个表。    
  VIEW   cName   是当前数据库中的一个视图。    
   
  cProperty  
   
  指定要设置的属性名。如果某个属性是只读,它的值就不能用   DBSETPROP()函数修改。如果要设置只读属性,Visual   FoxPro   会产生错误信息。  
   
  有关使用   cProperty   可以指定的属性及其数据类型的详细内容,请参阅稍前部分的语言参考“DBGETPROP(   )函数”。  
   
  ePropertyValue  
   
  指定   cProperty   的设定值,ePropertyValue   的数据类型必须和属性的数据类型相同。  
   
  警告   可用   DBSETPROP()函数为某一属性设置无效值,Visual   FoxPro   并不验证为属性指定的值是否有效。例如,可以用   DBSETPROP()函数为一个字段的规则表达式设置一个无效表达式,而   Visual   FoxPro   并不产生错误。  
   
  说明  
   
  使用   DBSETPROP()函数可为当前数据库或当前数据库中的字段、命名连接、表或视图设置属性,使用   DBGETPROP()函数则可确定当前属性值。  
   
  DBSETPROP()函数要求以独占方式使用当前数据库。要以独占方式打开一个数据库,可在   OPEN   DATABASE   中包含   EXCLUSIVE   子句。  
   
  欲了解详情,请参阅下表。  
   
  有关细节   参考区域   《Microsoft   VisualFoxPro   6.0   中文版程序员指南》章名    
  数据库属性   “显示和设置数据库属性”   第六章,   创建数据库    
  连接   “访问远程数据”   第八章,   创建视图    
  视图       第八章,   创建视图    
  触发器   “使用触发器”   第七章,   处理表    
  标题   “创建字段标题”   第七章,   处理表    
  默认值   “创建字段默认值”   第七章,   处理表    
      “创建视图字段默认值”   第八章,   创建视图    
  注释   “添加字段注释”   第七章,   处理表    
      “显示和设置数据库属性”   第六章,   创建数据库    
  主关键字   “控制重复值”   第七章,   处理表    
  规则   “强制商业规则”   第七章,   处理表    
      “设置或更改字段级或表规则”   第七章,   处理表    
      “在视图字段和记录中创建规则”   第八章,   创建视图    
  Top

4 楼zenglinda(曾敏儿)回复于 2003-12-08 09:15:06 得分 0

谢谢大家  
  但是我还是不太明白啊.  
  (tableupdate(),   tablerevert()需要先設buffering   =   5.用完之後恢復burrering   =   1  
  請參考:  
  CURSORSETPROP(cProperty   [,   eExpression]   [,   cTableAlias   |   nWorkArea]))  
  上面那句是加到那里去的?还是自定义的?还是方法程序中?????????????  
   
   
   
  Top

5 楼magnetmoon(天涯明月刀)回复于 2003-12-09 15:34:11 得分 0

以上是編程方式指定,  
   
  也可以手工指定  
  數據環境、選擇你的Cursor、在屬性窗口中設置bufferModeOverrid屬性為2/3/4/5Top

6 楼smalltiger09(小狐狸)回复于 2003-12-10 10:21:04 得分 0

cursorsetprop("Buffering",   5,   远程视图或光标名)------表缓冲  
  cursorsetprop("Buffering",   3,   远程视图或光标名)------行缓冲Top

相关问题

  • dataset能否对多表的记录操作缓冲
  • WinSock缓冲区
  • 关于缓冲
  • 清楚缓冲
  • Socket缓冲区
  • socks缓冲区
  • “在启用缓冲或表缓冲,或者使用完整性约束时,不能执行insert操作。”为什么?
  • 在启用缓冲或表缓冲,或者使用完整性约束时,不能执行insert操作怎么解决[有图]
  • 怎样用编程方式修改vfp表字段的顺序
  • 一彩色32位的rgb缓冲用gdi的方式显示出来,怎么才能显示成黑白的???

关键词

  • 字段
  • 视图
  • 属性
  • 函数
  • 数据库
  • 远程
  • foxpro
  • 数据
  • 表
  • 缓冲

得分解答快速导航

  • 帖主:zenglinda

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo