sybase - 动态生成的数据窗口中的列名称

标签 sybase powerbuilder dynamic-sql datastore

当我使用 SyntaxFromSQL 动态创建数据存储时(为了基于 SQL SELECT 语句生成数据存储源代码),语法如下

string ERRORS, sql_syntax, dwsyntax_str, presentation_str
dwsyntax_str = trans_object.SyntaxFromSQL ( sql_syntax, presentation_str, ERRORS)
ds_1.Create( dwsyntax_str, ERRORS)

如何检查数据存储 ds_1 生成的列的名称?我提醒您,在连接两个或多个表的 select 语句的情况下,结果列名称前面可能会带有相关的表名称,例如而不是获取列名 field_id我可能会得到一个列名称,例如:my_table_field_id 。当我稍后提供列名 ( field_id ) 作为 GetItem 的参数时,这会导致问题函数,而相关数据存储已将列命名为 my_table_field_id反而。

更糟糕的是,我发现我得到不同列定义(前面是表名)的原因之一是用户的登录名被分配了 sa role !?!?!

最佳答案

通常,在Describe()调用中,可以使用列号代替列名,因此您可以执行以下操作:

string ls_FirstColumnName, ls_SecondColumnName

ls_FirstColumnName = dw_1.Describe ("#1.Name")
ls_SecondColumnName = dw_1.Describe ("#2.Name")
MessageBox ("Column Names", ls_FirstColumnName + "~r~n" + ls_SecondColumnName)

缓存值,或者将来只使用列号。大多数引用列的 DataWindow/DataStore 函数都有重载,允许使用整数作为列号而不是字符串作为列名称。

祝你好运

特里。

关于sybase - 动态生成的数据窗口中的列名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2251137/

相关文章:

mysql - 在 mysql 5.5.25 中使用的正确语法表示不存在

sql-server - SQL 在填充的逗号分隔字符串中查找数据

sql - 动态 SQL 传递表名并返回最大 ID 值

postgresql - Postgres : Find number of distinct values for each column

django - 从 Django 连接到 Sybase 数据库

sql - sybase:如果可能的话,我如何删除所有表和存储过程?

c# - oleobject 替代 c#

php - MySQL 无法选择在不同 session 中插入的行

sql - 如何根据 CASE 执行不同的 SELECT 语句

database - Python 3和Sybase等数据库