关于foxpro数据并发问题!重谢!

dearxiaobao 2002-11-13 02:03:05
有一个应用系统正在对Foxpro库中的一个DBF文件进行读、写操作,现有一个程序每5分钟扫描DBF文件中的表,把新插入的记录或修改的记录读出来并插入oracle数据库中。(注:每条记录有修改时间、插入时间字段).
  1、如果第5分钟应用系统正在往表中写数据,另一个程序读出来的数据会不会不完整?
  2、因为对dbf文件进行pack是以独占方式打开的,独占方式是什么概念?在pack的时候能不能对文件进行读操作?
  3、有哪本书对foxpro或对以上问题描述得比较详细,请推荐给偶,先谢过了!
...全文
115 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
zb2001 2002-11-19
  • 打赏
  • 举报
回复
看看书,看看书!
比什么都快!

(虽然我也老来问,可是看书还是捷径吧,不要电子版)
dearxiaobao 2002-11-18
  • 打赏
  • 举报
回复
楼上各位兄弟:
1、事务提交、回滚是对于数据库操作来讲的,这和oracle应该一样的。对不?
2、你说的对数读取有问题?appe blan 再repl不也是放入缓冲中做的吗?在没有提交之前是不会覆盖原来记录的吧,怎么.....请明示? 顺便问一下,在oracle中是不会有这种问题的吧?
3、对于dbf文件独占打开,其它用户是打不开的,oracle有没有类似问题?
4、oracle有建立用户和口令,建立表空间,授权的说法,foxpro有没有的?

请明示
tpwang 2002-11-16
  • 打赏
  • 举报
回复
以下计论前提:只针对foxpro的表操作,不包括数据库DBC的操作。
1.如果第5分钟应用系统正在往表中写数据,另一个程序读出来的数据会不会不完整?主要看写入DBF表的命令是否正常,如果用insert into操作肯定不会有问题,如果用appe blan 再repl操作应可能有问题。
2.对DBF文件用独占打开,即在set excl on 用use打开或 use XXX excl,则其它用户是打开不DBF的。
3.DBF表中不可能有事务处理,不能对其进行commit/rollback操作。
aabiao 2002-11-15
  • 打赏
  • 举报
回复
1.这就是最简单的共享打开,与什么并发有何关系!
2.共享在DBASE3+的时候就有了,什么叫以前的版本不行
3.既然连独占的概念还不清楚,说明还是初学者,建议不要用缓冲,简单!
4.若要在一台机器上试共享,打开两个VFP就可以了,同一VFP的两个窗口(不知是何意思)是不行的。
5.你的问题是简单的问题,一般书上都有,不需特别的
dearxiaobao 2002-11-15
  • 打赏
  • 举报
回复
我是对foxpro一点不懂,所以才会有这样的问题啦,时间很紧,没法看书,各位仁兄应该能不能帮我解释一下
(1)、foxpro的并发是什么概念呢?
(2)、foxpro有没有事务控制的概念,能不能对整进行commit/rollback的说法?
(3)、foxpro各字段与oracle都有的对应吗?听说在转换时,读dbf的两个memory字段往oracle写时会有问题?
(4)、DBC是什么东西?用vfp如何生成?
 都是很简单的问题呀..............
newfang 2002-11-15
  • 打赏
  • 举报
回复
这么简单的问题尚要问,建议你还是先看看书吧!!

如果你使用记录锁定技术,应该可以解决^_^..........
dongbear 2002-11-15
  • 打赏
  • 举报
回复
(1)并发应该是多个人同时并行访问的意思吧

(2)有,TRASACTION

(3)这个难说了,有些能对上有些不行吧

(4)、DBC是数据库呀,Faint~~,嘿嘿~
dongbear 2002-11-14
  • 打赏
  • 举报
回复
1. set exclu off , 然后你在 use 看看~~
2. 你这样的打开方式并不是并发方式的打开所以会有问题。

DBF文件?他的名字不就是表名么?

如果你要看DBC包含的表,可以用表的方式打开数据库文件,你就能看到里面包含的所有表跟视图了。
dearxiaobao 2002-11-14
  • 打赏
  • 举报
回复
楼上兄弟,你是说VFP,支持并发操作?但我执行以下步骤:
1、用use mytest 打开一个mytest.dbf文件后,
2、再在另一个窗口中用同样的命令打开该文件却说该文件已经打开,不能再对其操作呢?
3、跳过步骤2用java通过odbc连接,执行select 语句,报错:[Microsoft][ODBC Visual FoxPro Driver]Cannot open file d:\program files\microsoft visual studio\vfp98\mytest.dbf.
请明示?

而且你说是VFP才支持并发操作,如果是老版本的foxpro就不支持?另当前有一个dbf文件,用什么命令可以查看它包含的表名呀?偶对foxpro点不通,请指点。搞定必送分
dongbear 2002-11-14
  • 打赏
  • 举报
回复
VFP支持并发操作,并且有很多的控制机制。默认情况下不使用缓冲区。

使用缓冲区后,系统会把你的修改先放到一个缓冲区里,知道你发布一个

TABLEUPDATE命令,还可以使用TABLEREVERT取消修改, 在TABLEUPDATE命令里

有参数可以指定强制更新还是其他方式,根据返回的参数能够发现其他人

是否对数据发布了新的修改。然后你可以选择取消你的修改还是覆盖别人的修

改。


2 ,我看过,不行,不能读。
zhjame 2002-11-14
  • 打赏
  • 举报
回复
同意楼上的,不过有几点,表和记录都允许缓冲,
还有,如果要多次打开表,可以使用again参数 use tablename in 0 share again
dongbear 2002-11-14
  • 打赏
  • 举报
回复
1, set exclu off 是Foxpro的命令,不是参数,MSDN最全好多书都是抄MSDN的。
2. DBF只包含一个表,DBC里面才会有多个表,我不知道一个DBF怎么包含多个表的。
3. 两种方式(VFP中),设置数据环境中表的属性有一个Buffermode,默认为关。另外可以用命令...忘记了,好象是SETTABLEPROP 设置表的属性的那个命令。
4,我以前有写过一本简单的书,不过~~电子版早没了。
dearxiaobao 2002-11-14
  • 打赏
  • 举报
回复
1、并发问题知道怎么回事了。象set exclu off 这些参数应该是foxpro最基本的参数吧,哪里有比较全的参数手册之类的可以参考呢?
2、有些DBF文件里包含几个表呀,怎么在命令窗口查看呀?
3、在录入数据时如何设置它是放入缓存(保存读出来的数据是干净的)呢?
4、老兄最好介绍本好书给偶算了,最好是电子版的,免得老是问你弱智问题 :-)
dearxiaobao 2002-11-13
  • 打赏
  • 举报
回复
1、楼上的兄弟,你能说清楚,foxpro到底支不支持并发操作呢?它默认的情况下是不是用缓冲区呢?
2、不能读?你试过了吗?
在线等待。。。。。
dongbear 2002-11-13
  • 打赏
  • 举报
回复
1.使用缓冲区的话问题不大吧,应该没问题。
2. 不能读

3。。。

2,749

社区成员

发帖
与我相关
我的任务
社区描述
VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
社区管理员
  • VFP社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧