select - 表列不断变化时如何使用 Select INTO 语句?
问题描述
我想对不断变化的列数的表使用Select INTO语句。
Select * FROM myTable返回我所需的输出,但我不知道如何在 powerbuilder 和 INTO 中使用相同的 select 语句,因为我不知道 myTable 中有多少列,我什至不知道这些列的名称是什么。
列的名称和数量各不相同,所以我认为可以使用数组,但我不知道如何使用它。是否可以?有没有其他方法可以解决这个问题?
PowerBuilder 12.5 / MSSQL Server 2008
解决方案
使用select * from myTable作为您的 SQL 字符串并动态创建一个 DataWindow。您可以使用 Describe() 函数获取列数(以及可选的名称、数据库列源、数据类型),并使用 GetItem*() 和列号来检索数据。
请记住,虽然为改变做准备听起来不错,就像所有的设计选择一样,它也需要权衡取舍。在这种情况下,请考虑性能(创建 DW 需要额外访问数据库)和可维护性(解决涉及动态 DW 的问题比静态问题要困难得多;您需要配备更高级的程序员)。您可能需要考虑表的更改频率,以及用户对应用程序如此满意的可能性有多大,以至于偶尔发布带有其他更改的应用程序将是一件坏事。(不是我从来没有做过,而是 25 多年的 PB 和几十个客户,我可能一只手就能数出时间。对我来说,这是一个经过深思熟虑的最后手段。)
推荐阅读
- javascript - 拖放文件输入
- c++ - 为什么 WriteFile 需要延迟才能工作,或者在某些 Windows 机器上出现 ERROR_INVALID_PARAMETER?
- ios - Rossharp PoseStampedPublisher 中的 NullReferenceException
- perl - 如何在 perl 中动态创建包?
- css - 如何让一列占据网页中其余的水平空间
- bash - 确定bash关联数组的二维中不同元素的数量?
- javascript - 错误:无效的左手符号分配(II)
- html - 如何从excel(xlxs)中提取值到html文本
- python - python数据集可以跨越多行吗
- android - 无论如何要跳过某些 JSON 部分