如果我在进度编辑器中运行它,此代码可以正常工作。如果我将其保存为.p文件并单击右键“RUN”,则会出现数据库不存在的错误。我知道也许我应该插入一些代码来连接数据库。
有人知道我应该使用什么声明吗?
DEF STREAM st1.
OUTPUT STREAM st1 TO c:\temp\teste.csv.
FOR EACH bdName.table NO-LOCK:
PUT STREAM st1 UNFORMATTED bdName.Table.attr ";" SKIP.
END.
OUTPUT STREAM st1 CLOSE.
答案 0 :(得分:3)
正如您所说,您需要连接到您的数据库。这可以通过几种不同的方式完成。
通过CONNECT语句连接
您可以使用CONNECT语句连接数据库。基本上是:
CONNECT <database name> [options]
这是一个简单的语句,它连接到名为&#34; database&#34;的本地数据库。在43210端口上运行。
CONNECT database.db -H localhost -S 43210.
-H指定运行数据库的主机。这可以是名称或IP地址。 -S指定数据库用于连接的端口(或服务)。这可以是数字或服务名称(在这种情况下,必须在/ etc / services或类似名称中指定)
但是,您无法连接到数据库并在同一程序中使用它的表。相反,您需要连接一个程序,然后在第二个程序中运行逻辑
/* runProgram.p */
CONNECT database -H dbserver -S 29000.
RUN program.p.
DISCONNECT database.
/* program.p */
FOR EACH exampletable NO-LOCK:
DISPLAY exampletable.
END.
通过命令行参数连接
您可以在启动命令中简单地添加参数,以便新会话从一开始就连接到一个或多个数据库。
Windows:
prowin32.exe -db mydatabase -H localhost -S 7777
在执行此操作之前,请查看下面的选项(参数文件)
通过命令行参数连接(使用参数文件)
另一种选择是使用参数文件,通常使用扩展名.pf。
然后你必须修改你开始你的会话的方式,而不是只是做prowin32.exe(如果你在Windows上)你添加-pf参数:
prowin32.exe -pf myparameterfile.pf
然后,参数文件将包含所有连接参数:
# myparameterfile.pf
-db database -S localhost -P 12345
Hashtag(#)用于参数文件中的注释。
在Linux / Unix上,您将运行:
pro -pf myparameterfile.pf
您还可以为同一会话中使用的不同数据库混合使用不同的方式。