上一篇主題 :: 下一篇主題 |
發表人 |
內容 |
ftcbds 訪客
第 1 樓
|
發表於: 星期日 十二月 12, 2004 2:17 pm 文章主題: 用SQL语句打开的表,如何关闭? |
|
|
我用下列语句:
SELECT * FROM MyTabName
在VFP中正确地显示了表 MyTabName 的内容。可是表 MyTabName 却无法关闭了,因此无法用 USE 语句打开表 MyTabName 。 |
|
回頂端 |
|
 |
朱育興
註冊時間: 2003-08-25 文章: 661 來自: 台中市大里區
第 2 樓
|
發表於: 星期日 十二月 12, 2004 10:17 pm 文章主題: |
|
|
SELECT * FROM MyTabName 之後,MyTabName 處於被開啟狀態,若要關閉它
USE IN MyTabName
若要於它處使用它
SELECT MyTabName 就可以用它了,所以你幹嘛還要 USE 它呢
若你真的還要 USE 它(在它未被關閉情況下),那就
USE MyTabName ALIAS OtherAliasName AGAIN
其中 OtherAliasName 是你任意取的別名,但絕不能用 MyTabName _________________ 希望有更多人來參與
VFP wiki - 需要大家一起完成的VFP電子書與FAQ |
|
回頂端 |
|
 |
ftcbds 訪客
第 3 樓
|
發表於: 星期六 十二月 25, 2004 1:41 pm 文章主題: |
|
|
朱育興:
我当初的原意是:当表 MyTabName 被
USE MyTabName
命令打开并完成了所需要的操作后,可用
USE
命令关闭它,然后在程序的其他地方又可用 USE 语句再次打开表 MyTabName 进行其他操作。
但如果表 MyTabName 是被 SELECT 查询语句打开的,在完成了所需要的操作后,我就不知道如何关闭表 MyTabName 了。如果在程序的其他地方又需要用 USE 语句打开表 MyTabName ,此时执行
USE MyTabName
命令,VFP 会显示“文件正在使用”的出错提示。
老兄的回帖解答了我的所有问题。在此向你表示诚挚的感谢。并祝老兄圣诞及新年快乐! |
|
回頂端 |
|
 |
朱育興
註冊時間: 2003-08-25 文章: 661 來自: 台中市大里區
第 4 樓
|
發表於: 星期六 十二月 25, 2004 7:12 pm 文章主題: |
|
|
原來你的困擾在此啊,說真的,這個 SQL - SELECT 還真賤:
SELECT * FROM MyTabName ...
MyTabName 只是要引用的資料,我之前沒開,它偏偏多管閒事就把 MyTabName 自動開啟了;這樣也就罷了,等此命令完成後,它偏偏不把它給關掉(如果之前未開啟的話)。這就是我罵它賤的地方,我的觀念是,自己開的就得自己負責關掉它。
不過 SQL - SELECT 就要這樣,拿它也沒辦法;只好自己變通一下:
M_lUsed = USED("MyTabName") && 在 SELECT 之前記錄 MyTabName 是否開啟
SELECT * FROM MyTabName ...
IF !M_lUsed && SELECT 之前若未開啟 MyTabName,那就關掉它吧
USE IN MyTabName
ENDIF _________________ 希望有更多人來參與
VFP wiki - 需要大家一起完成的VFP電子書與FAQ |
|
回頂端 |
|
 |
syntech
註冊時間: 2003-05-16 文章: 4249 來自: Taipei,Taiwan
第 5 樓
|
發表於: 星期日 十二月 26, 2004 11:35 am 文章主題: |
|
|
我的習慣都事先 use ,
然後再 select 剛剛 use 的 table,
不用了再關掉.
所以沒有遇到這樣的問題!
養成"節約能源","進來隨手開燈,離開隨手關燈"的好習慣 _________________ 如果公司有下列困擾:
1. 找不到便宜,快速,簡易的 生產排程軟體
2. 不知道如何快速排定 採購計劃
3. 成本抓不準,自己算比軟體算有用
4. 想學習系統規劃,想找系統架構的顧問
請聯絡我們,也許我們幫得上忙 |
|
回頂端 |
|
 |
ftcbds 訪客
第 6 樓
|
發表於: 星期日 十二月 26, 2004 7:30 pm 文章主題: |
|
|
我的体会,希望与二位老师共同探讨:
假设表名为:MyTabName.DBF
在VFP命令窗口中,依次执行:
use MyTabName
sele * from MyTabName
use
use MyTabName
VFP依然会显示“文件正在使用”的出错提示。
经过反复测试,我好象得出这样一个结论(我目前使用的版本是VFP6.0):用SQL-SELECT打开的表,必须用两条USE型的关闭命令(顺序可以不分先后顺序)才能彻底关闭:
sele * from MyTabName &&执行 SQL 查询
use in MyTabName && 用 in 子句关闭被 SQL 语句打开的表
use && 关闭 SQL 形成的查询表
use MyTabName && 这样,就可以再次打开表了。
最后一条命令use MyTabName会正确执行,不会
显示“文件正在使用”的出错信息。
看来是use in MyTabName命令起了关键作用
|
|
回頂端 |
|
 |
朱育興
註冊時間: 2003-08-25 文章: 661 來自: 台中市大里區
第 7 樓
|
發表於: 星期日 十二月 26, 2004 10:12 pm 文章主題: |
|
|
USE TableName ...,若其中不含有 IN 子句時,它會在目前工作區開啟此 TableName,若在開啟之時,目前工作區若已有 Table,則此 Table 會被關閉
若只下 USE 這個單一命令時,它是指要關閉目前工作區的 Table
我的習慣是若要開啟 Table:
SELECT 0
USE TableName ...
要關閉某個 Table 時:(假設是 CloseTable)
US IN CloseTable
這樣子比較清楚要開什麼或要關什麼;否則容易發生要開的開不了、開了卻不小心關了別的、關了不該關的 _________________ 希望有更多人來參與
VFP wiki - 需要大家一起完成的VFP電子書與FAQ |
|
回頂端 |
|
 |
syntech
註冊時間: 2003-05-16 文章: 4249 來自: Taipei,Taiwan
第 8 樓
|
發表於: 星期日 十二月 26, 2004 11:05 pm 文章主題: |
|
|
我的習慣是寫的清清楚楚的
用的時候
use table1 alias alias1
select * from alias1 into cursor cursor1
select cursor1
use in cursor1
use in alias1
絕對不用 use , use in 0 這類不知道對象是誰的用法.
這就叫做 "進來隨手開燈,離開隨手關燈" _________________ 如果公司有下列困擾:
1. 找不到便宜,快速,簡易的 生產排程軟體
2. 不知道如何快速排定 採購計劃
3. 成本抓不準,自己算比軟體算有用
4. 想學習系統規劃,想找系統架構的顧問
請聯絡我們,也許我們幫得上忙 |
|
回頂端 |
|
 |
|