Geo*_*tas 4 powerbuilder sybase datastore dynamic-sql
当我使用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)
Run Code Online (Sandbox Code Playgroud)
如何检查生成的数据存储列的名称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)
Run Code Online (Sandbox Code Playgroud)
缓存值,或者仅使用以后的列号.引用列的大多数DataWindow/DataStore函数都有重载,允许将整数用作列号而不是字符串作为列名.
祝好运,
特里.
| 归档时间: |
|
| 查看次数: |
3171 次 |
| 最近记录: |