佳礼资讯网

 找回密码
 注册

ADVERTISEMENT

楼主: maybird_2

Visual FoxPro 的疑难杂症

[复制链接]
发表于 16-8-2004 04:12 PM | 显示全部楼层
weisely 于 15-8-2004 11:34 PM  说 :
小弟最近真的是于到一个 "疑难杂症"
小弟在数据库中输入中文资料, 过后发现不论是在用index或用SQL select 的 ORDER 来排列中文资料时, 资料的显示都是用汉语拼音来排列的, 比如 :

阿干正传
病毒
...


我以前試過, 如果資料是大五碼,就根據筆劃,
如果資料是 GB 就根據漢語拼音
回复

使用道具 举报


ADVERTISEMENT

发表于 16-8-2004 04:16 PM | 显示全部楼层
小李波特 于 16-8-2004 10:03 AM  说 :
在 multi user 的环境下,你们是如何让系统自动 pack 掉已被删除的资料 ???


我的做法是, 用回所刪除的資料空間.環保

在下一筆加入的時候,把刪除的資料空間RECALL
但這不適用於 SQL INSERT,
回复

使用道具 举报

发表于 16-8-2004 10:44 PM | 显示全部楼层
小李波特 于 16-8-2004 10:03 AM  说 :
在 multi user 的环境下,你们是如何让系统自动 pack 掉已被删除的资料 ???


可以写以下的指令
当要USE DATBASE时,可以先测试一下这个DATABASE是否有其他USER用着,如果有就,USE EMPLOYEE ,如果没有就 USE EMPLOYEE EXCL 然后先PACK了它在 USE 回 EMPLOYEE.
这样不就可以只要一有机会它就会自动的PACK.
我个人认为,如果是较大型的程式还是用会传统的方法,因为万一有什么是还可以RECOVER回去.个人认为,这是FOXPRO的优点之一.
回复

使用道具 举报

发表于 16-8-2004 10:49 PM | 显示全部楼层
GoodMorning 于 16-8-2004 04:16 PM  说 :


我的做法是, 用回所刪除的資料空間.環保

在下一筆加入的時候,把刪除的資料空間RECALL
但這不適用於 SQL INSERT,


这个方法个人认为好像有点怪怪的,为什么要这么麻烦呢?可以说说它的好处吗?
回复

使用道具 举报

发表于 16-8-2004 10:51 PM | 显示全部楼层
白日梦 于 16-8-2004 09:44 AM  说 :

加 stroke 的资料栏,列出所有中文的有多少笔划,
阿  8
病 10

index on stroke ...

要如何让电脑知道你的笔画是多少?
回复

使用道具 举报

发表于 17-8-2004 08:58 AM | 显示全部楼层
itgenius 于 16-8-2004 10:51 PM  说 :
要如何让电脑知道你的笔画是多少?

很大的工程,另加一个 table 记录。
常用中文字有3千字左右。
回复

使用道具 举报

Follow Us
发表于 17-8-2004 09:05 AM | 显示全部楼层
itgenius 于 16-8-2004 10:44 PM  说 :
可以写以下的指令
当要USE DATBASE时,可以先测试一下这个DATABASE是否有其他USER用着,如果有就,USE EMPLOYEE ,如果没有就 USE EMPLOYEE EXCL 然后先PACK了它在 USE 回 EMPLOYEE.
这样不就可以只要一有机会它 ...

用什么指令测试?
回复

使用道具 举报

小李波特 该用户已被删除
发表于 17-8-2004 10:44 AM | 显示全部楼层
白日梦 于 16-8-2004 14:03  说 :

没做过自动的,做了reindex的module。
使用者需要时才做,整年不做也没所谓,不管它。

你要做自动的,先做 date trigger,比如当你启动这系统时每个星期一自动打包已删除的资料。

[ Last edited by 白日 ...


我现在是用这个方法,只是在 primary key 时常常中招。。

所以只好另求他法。。

做 date trigger 的话,是怕刚好有人正在用着 table..
回复

使用道具 举报


ADVERTISEMENT

小李波特 该用户已被删除
发表于 17-8-2004 10:46 AM | 显示全部楼层
GoodMorning 于 16-8-2004 16:16  说 :


我的做法是, 用回所刪除的資料空間.環保

在下一筆加入的時候,把刪除的資料空間RECALL
但這不適用於 SQL INSERT,


还是第一次听说有人用这种方法来节省空间,不明白何苦如此麻烦。。

不过我都是用 sql command 的。。
回复

使用道具 举报

发表于 17-8-2004 10:51 AM | 显示全部楼层
有没有看到 itgenius 的建议?
Clipper 是用 NetErr() 来 detect 有没有别的 使用者 用着。
可是 VFP 我找不到类似的指令或函数。
回复

使用道具 举报

小李波特 该用户已被删除
发表于 17-8-2004 10:53 AM | 显示全部楼层
itgenius 于 16-8-2004 22:44  说 :
可以写以下的指令
当要USE DATBASE时,可以先测试一下这个DATABASE是否有其他USER用着,如果有就,USE EMPLOYEE ,如果没有就 USE EMPLOYEE EXCL 然后先PACK了它在 USE 回 EMPLOYEE.
这样不就可以只要一有机会它就会自动的PACK.
我个人认为,如果是较大型的程式还是用会传统的方法,因为万一有什么是还可以RECOVER回去.个人认为,这是FOXPRO的优点之一.


    IF !USED(laTables)
      USE (laTables) IN 0 EXCL
      SELECT (laTables)
      PACK
      REINDEX
    ENDIF

这个方法不能测出 table 是否被其他使用者正用着,
当 table 在开着的时候,并不是 exclusive mode, 所以 isexclusive() 不能用。。
可有其他方法?
回复

使用道具 举报

发表于 17-8-2004 12:30 PM | 显示全部楼层
在一个 PROJECT 里有两个 database,DBF1 和 DBF2 。DBF1 是 current 的 data, DBF2 是 old data。我在 DBF1 里 SET FILTER ,选出 data 后,想把它 move 到 DBF2 里。请问 MOVE 的 command 应该怎样写?
回复

使用道具 举报

发表于 17-8-2004 02:21 PM | 显示全部楼层
小李波特 于 17-8-2004 10:53 AM  说 :


    IF !USED(laTables)
      USE (laTables) IN 0 EXCL
      SELECT (laTables)
      PACK
      REINDEX
    ENDIF

这个方法不能测出 table 是否被其他使用者正用着,
当 table 在开 ...


只在分享,測出其他使用者正用着
如果其他使用者不是 excl. , 那麼你可以用 set excl on,再開啟資料檔, onerror 如果該檔有其他使用者.
回复

使用道具 举报

发表于 17-8-2004 02:22 PM | 显示全部楼层
itgenius 于 16-8-2004 10:49 PM  说 :


这个方法个人认为好像有点怪怪的,为什么要这么麻烦呢?可以说说它的好处吗?


資料檔不須要 pack
回复

使用道具 举报

发表于 17-8-2004 02:26 PM | 显示全部楼层
tstan135 于 17-8-2004 12:30 PM  说 :
在一个 PROJECT 里有两个 database,DBF1 和 DBF2 。DBF1 是 current 的 data, DBF2 是 old data。我在 DBF1 里 SET FILTER ,选出 data 后,想把它 move 到 DBF2 里。请问 MOVE 的 command 应该怎样写?


COPY 后 delete 原有的資料 稱之為 move 吧
回复

使用道具 举报

发表于 17-8-2004 07:58 PM | 显示全部楼层
白日梦

用什么指令测试?



小李波特 于 17-8-2004 10:53 AM  说 :


    IF !USED(laTables)
      USE (laTables) IN 0 EXCL
      SELECT (laTables)
      PACK
      REINDEX
    ENDIF

这个方法不能测出 table 是否被其他使用者正用着,
当 table 在开 ...


方法有很多种,以下是我经常用的方法,
err = .f.
on error err = .t.
use employee excl
if err
    ? "其他使用者正用着"
    use employee
else
    ? "Do Packing"
    use employee
endif
on error

[ Last edited by itgenius on 17-8-2004 at 08:04 PM ]
回复

使用道具 举报


ADVERTISEMENT

发表于 17-8-2004 08:02 PM | 显示全部楼层
GoodMorning 于 17-8-2004 02:22 PM  说 :


資料檔不須要 pack


个人认为,做PACK这个动作也不难,凡而RECALL还难写过PACK.而且万一USER不小心DELETE,还有机会RECALL回来.
回复

使用道具 举报

发表于 17-8-2004 08:07 PM | 显示全部楼层
tstan135 于 17-8-2004 12:30 PM  说 :
在一个 PROJECT 里有两个 database,DBF1 和 DBF2 。DBF1 是 current 的 data, DBF2 是 old data。我在 DBF1 里 SET FILTER ,选出 data 后,想把它 move 到 DBF2 里。请问 MOVE 的 command 应该怎样写?


select dbf2
append from dbf1 for (filter condition)
select dbf1
delete for (filter condition)
回复

使用道具 举报

发表于 19-8-2004 03:38 AM | 显示全部楼层
在一个 FORM 里是 GRID BOX,我想让它在每次在增加或修改里面的 DATA 时自动算出总 TOTAL AMOUNT。但不能在 GRID 里用 VALID,请问应该怎样做?由于我的 DATABASE 里没有 TOTAL 的 FIELD,只想在 TABLE 里显示 TOTAL 而已,所以应该怎样做?用什么 CONTROL BOX 来让它显示?

[ Last edited by tstan135 on 19-8-2004 at 08:59 AM ]
回复

使用道具 举报

dark_heaven 该用户已被删除
发表于 19-8-2004 07:54 AM | 显示全部楼层
你是用 VFP6 吧,有没有 refer 随装护送的 msdn 2000 jan, 那里有个 Solution.pjx 的 sample, 你应该尝试去 figure out your own from those sets of samples included in msdn.

因为我发觉你常问的问题在 Solution 这个 project 里都能找得到。

如果你并没有这个 msdn sample, 那就 去这个 URL Download 吧,我特地 Zip and upload 给你。http://www.geocities.com/vbcatcher/Solution.zip


(不用谢我,我较喜欢看 白日梦 和 小李波特 或其他 VFP 老前辈们回答较深度的问题,哈哈,开玩笑...)


VFP 常参网址 如下:






the text underneath of the grid colum allow you to place Expression, so you may simply write your total expression inside there, key properties is "ControlSource"

See figure :-



/ps: 我用的 graphics 太大了,镶不进这里,欲窥全图,去这里
http://img.photobucket.com/albums/v480/DHS/sample01.jpg

[ Last edited by dark_heaven on 28-9-2004 at 11:09 PM ]
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

 

ADVERTISEMENT



ADVERTISEMENT



ADVERTISEMENT

ADVERTISEMENT


版权所有 © 1996-2023 Cari Internet Sdn Bhd (483575-W)|IPSERVERONE 提供云主机|广告刊登|关于我们|私隐权|免控|投诉|联络|脸书|佳礼资讯网

GMT+8, 28-4-2024 01:42 PM , Processed in 0.073058 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表