如何访问在dBASE 8中自动打开的dBase表?

时间:2014-02-19 17:24:44

标签: dbase

我们最近购买了dBASE 8作为Visual dBASE的替代品,它不再适用于Windows 7/8 64位。我们不打算将它用于编程,而只是简单地操作.dbf文件,例如添加或删除列,过滤和导出等。

将dBASE 8设置为.dbf文件的默认程序后,双击.dbf文件会自动打开并显示该表。

Visual DBase用于自动在命令窗口中添加一行,如

use "c:\some\dir\table.dbf"

并且在该窗口中输入的任何命令都可以在该表上运行。这似乎与dBASE 8不同。上面的行不会被添加,如果我输入一个需要打开表的命令,比如

set filter to strasse="blablub"

我得到文件打开对话框。

有没有办法让“旧”行为回归?或者有没有简单的方法切换到已经显示的表,而无需再次键入名称或在文件打开对话框中选择它?

1 个答案:

答案 0 :(得分:0)

我在dbase新闻组中得到answer,解决了部分问题

这个程序

**********************
* GrabBrowse.prg
* Catches the table that was opened in an instance of PLUS
*  by double-clicking on a table in Windows Explorer.
* Sets the query as _app.q.
* Reports the tablename.
* Returns the query.
* Opens the table with USE.

private q
q = findinstance("query")
? q.rowset.tablename
_app.q = q

if not empty(findinstance("query", q))
  msgbox("There is more than one query active:  ";
    + findinstance("query", q).rowset.tablename ;
    + chr(13) + "But still put in _app.q and USEd.", ;
    "GrabBrowse", 48)
endif

use (q.rowset.tablename)

return (q)
**********************

存储在dBASE搜索路径中的文本文件中,并使用

进行调用
do GrabBrowse

切换到表,因此任何命令都会影响该表。 e.g。

set filter to strasse="blablub"

将为该表设置过滤器。不幸的是,这不会影响已经打开的浏览窗口,但只影响之后打开的浏览窗口。

但这是部分解决方案。