当我使用 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/