从ABL连接到Progress Opened数据库

时间:2015-04-21 11:16:17

标签: database-connection openedge progress-db

如果我在进度编辑器中运行它,此代码可以正常工作。如果我将其保存为.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.

1 个答案:

答案 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

您还可以为同一会话中使用的不同数据库混合使用不同的方式。