pb9的datastore有时候"列名=数据库表名+数据库列名", 有时候"列名=数据库列名"

hel_ 2003-12-02 05:40:53
pb9的datastore有时候"列名=数据库表名+数据库列名", 有时候"列名=数据库列名".
如如下程序:
我书写如下语句:
lds_new_price_items = f_CreateDataStore(&
"SELECT CLINIC_VS_PRICE_ITEM.PRICE_ITEM_CODE, " +&
"CLINIC_VS_PRICE_ITEM.AMOUNT, " +&
"CURRENT_PRICE_ITEM_DICT.ITEM_NAME, " +&
"CURRENT_PRICE_ITEM_DICT.STANDARD_PRICE " +&
"FROM CLINIC_VS_PRICE_ITEM, " +&
"CURRENT_PRICE_ITEM_DICT " +&
"WHERE ( CLINIC_VS_PRICE_ITEM.PRICE_ITEM_CODE = CURRENT_PRICE_ITEM_DICT.ITEM_CODE ) " +&
"AND (CLINIC_VS_PRICE_ITEM.CLINIC_ITEM_CODE = '" + ls_new_exam_item + "')")
lds_new_price_items.SetTransObject(sqlca)
lds_new_price_items.Retrieve()

for i = 1 to lds_new_price_items.RowCount()
ls_price_item_code = lds_new_price_items.GetItemString (i, "clinic_vs_price_item_price_item_code") //*********
next

其中//*********指示的语句有时候正确,有时候运行失败。
必须用字段序号1。万分火急,请高手指示!
f_createdatastore函数如下:
string ls_sql,ls_syntax,ls_error
DataStore lds_result

lds_result = Create DataStore
ls_syntax = sqlca.SyntaxFromSQL(as_sql, "", ls_error)
if len(ls_error) >0 then
MessageBox('Error','SyntaxFromSQL Error:~r' + ls_error, Exclamation!)
SetNull(lds_result)
else
lds_result.Create(ls_syntax, ls_error)
if Len(ls_error) > 0 then
MessageBox("Error", "Create have these errors: ~r" + ls_error, Exclamation!)
SetNull(lds_result)
end if
end if

return lds_result
请高手指示!
...全文
113 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
jdsnhan 2003-12-26
  • 打赏
  • 举报
回复
eastpond(东塘) 说的对!
------------------------------------
eastpond(东塘) 也好久不见了。
treesoft 2003-12-26
  • 打赏
  • 举报
回复
eastpond(东塘) 说的不错! :)
zzutligang 2003-12-26
  • 打赏
  • 举报
回复
如果是这样的话,还建议是用别名,否则写程序的时候要写这么长的列名不把人累死才怪!
killerdanny 2003-12-26
  • 打赏
  • 举报
回复
我还学会!
mittee 2003-12-26
  • 打赏
  • 举报
回复
(i, "clinic_vs_price_item_price_item_code") //*********
这里有问题?是否太长了
wangshenkai 2003-12-26
  • 打赏
  • 举报
回复
我也学会了!
banalman 2003-12-25
  • 打赏
  • 举报
回复
如果你的数据源选择的是一个表的话,pb一般就是那就是:列名=数据库列名
如果你选择的是两个以上表那就是:列名=数据库表名+下画线+数据库列名
但是有个技巧,如果您取数据源的时候给列指定了别名,那别名会被优先考虑的。
zhangdatou 2003-12-25
  • 打赏
  • 举报
回复
如果你选择的是一个表那就是:列名=数据库列名
如果你选择的是两个以上表那就是:列名=数据库表名+数据库列名
klbt 2003-12-25
  • 打赏
  • 举报
回复
楼上说的对,你建立数据窗口时,就要统一设置一下名字。
eastpond 2003-12-25
  • 打赏
  • 举报
回复
as_sql中如果关联到两个表,就会出现:列名=表名+列名

如果只有关系统到一个表,列名=列名

1,075

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 相关问题讨论
社区管理员
  • 基础类社区
  • WorldMobile
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧