gpt4 book ai didi

java - 将 PBSELECT 转换为标准 SQL

转载 作者:行者123 更新时间:2023-12-01 13:24:26 24 4
gpt4 key购买 nike

我正在尝试将 PowerBuilder 的内容(包含 PBSELECT 语句)转换为 java。除了其中的 PBSELECT 语句之外,我对其他内容都很满意。

我想将以下 PBSELECT 语句转换为标准 SQL 格式。

PBSELECT( VERSION(400) 
TABLE(NAME="table_barcode" )
TABLE(NAME="table_barcode_attrib_map" )
TABLE(NAME="table_barcode_attribute" )
COLUMN(NAME="table_barcode.label_name")
COMPUTE(NAME="IsNull(table_barcode_attrib_map.value,0) pacmed_valid")
JOIN (LEFT="table_barcode.barcode_id" OP ="=" RIGHT="table_barcode_attrib_map.barcode_id" OUTER1 ="table_barcode.barcode_id" )
JOIN (LEFT="table_barcode_attrib_map.attribute_id" OP ="=" RIGHT="table_barcode_attribute.attribute_id" OUTER1 ="table_barcode_attrib_map.attribute_id" )
WHERE( EXP1 ="( ~~"table_barcode~~".~~"barcode_id~~"" OP ="=" EXP2 =":as_barcode_id )" LOGIC ="and" )
WHERE( EXP1 ="table_barcode_attribute.attribute_name" OP ="=" EXP2 ="'PACMED VALID FLAG'" ) )
ARG(NAME = "as_barcode_id" TYPE = string)

在 PBSELECT 语句中,我无法理解带有 OUTER1 的 JOIN 子句和第一个包含 ~~"模式的 WHERE。

请帮助我将 PBSELECT 转换为标准 SQL。非常感谢任何帮助。

最佳答案

我见过人们为这种图形 SQL 编码编写转换例程,但从 PowerBuilder 工程人员那里听说,这是不可能正确完成的。转换从数据库驱动程序和连接参数中获取有关转换的某些特定信息,因此在一种条件(例如一个数据库引擎)下工作的转换例程可能无法在另一种条件下正常工作。

Slapout在评论中建议(谢谢!),我的工具 PBL Peeper可以帮助。您将需要应用程序使用的数据库连接参数(在代码或 INI 文件中搜索名为 DBMS 的属性),但之后,您可以将 SQL 转储到所有 DataWindows(报告/DataWindow SQL)或一次获取一个时间(浏览/RMB DW 对象/报表对象/DataWindow SQL)。这也是浏览代码的更好方法,特别是如果您没有 PowerBuilder。

顺便说一句,如果您要进行转换,请记住:

  • DataWindows 还可能隐式包含 INSERT、UPDATE 和 DELETE 规范
  • DataWindow SQL(以及 DataWindows 的许多其他属性)可以在运行时通过代码动态修改
  • 除了 SQL 之外,许多属性(例如 X、Y、宽度、高度...)可以是非静态值,这些值源自可基于数据库中的值构建的公式、运行时内存变量(例如变量)在 PowerScript 中),或 PowerBuilder 可以访问的任何其他值(星期几、屏幕分辨率等...)
  • 许多属性是相互依赖的(例如 Y 和 SlideUp)
  • DataWindows 可以在运行时从头开始动态生成,并且该语法可以通过代码生成,或者从文件或数据库列等任何源中提取(PowerBuilder 库 (PBL) 中的 DataWindows 列表可能不是完整的)图片)

我已经列出了比这更大的问题 list ,但你明白了。不要低估您的任务。

祝你好运

特里

关于java - 将 PBSELECT 转换为标准 SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21846878/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com