如何使用进度中的每个循环?

时间:2017-01-19 11:02:16

标签: progress-4gl openedge progress-db

基本上我试图做一个简单的连接。我是一个正在进步的初学者,即使我一直在读相同的东西......我的问题仍未解决! :'( 我使用unixodbc与我的基地进行交流,当我使用简单的命令时,这就像魅力一样:来自PUB的SELECT *。" Art"

我知道我必须做一些看起来像这样的事情来加入2个表:

.map

但这只返回我[ISQL]错误:无法SQLPrepare

然后我尝试用以下内容简化:

FOR EACH PUB."Art" WHERE (PUB."Art".IdArt = 16969) ,
    EACH PUB."ArtDet" WHERE (PUB."ArtDet".IdArt = PUB."Art".IdArt)
END

我尝试在每个循环之后使用冒号(或不),使用点/逗号等...但我从来没有使用过正确的语法...或者我错过了执行此命令的事情!

有人可以给我建议吗? 很多!

1 个答案:

答案 0 :(得分:1)

您似乎混合了SQL和4GL语法。

"对于每个"是4GL。 SQL等价物是" SELECT"。

(如果您使用4GL则不需要" PUB"前缀和引用表和字段名称将不起作用。)

要使用SQL(或4GL)进行连接,请使用","表名之间。对于SQL,您的语法类似于:

SELECT * from PUB."Art", PUB."ArtDet"

有关WHERE子句的详细信息,SQL INNER& OUTER join等可以在在线文档中找到:

https://community.progress.com/community_groups/openedge_general/w/openedgegeneral/1329.openedge-product-documentation-overview

您需要导航到您的特定版本,然后找到" SQL"引导。