pb9的datastore有时候"列名=数据库表名+数据库列名", 有时候"列名=数据库列名"
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
请高手指示!
问题点数:0、回复次数:10Top
1 楼eastpond(东塘)回复于 2003-12-25 17:06:47 得分 0
as_sql中如果关联到两个表,就会出现:列名=表名+列名
如果只有关系统到一个表,列名=列名Top
2 楼klbt(快乐白兔)回复于 2003-12-25 17:13:18 得分 0
楼上说的对,你建立数据窗口时,就要统一设置一下名字。Top
3 楼zhangdatou(猪头)回复于 2003-12-25 17:18:11 得分 0
如果你选择的是一个表那就是:列名=数据库列名
如果你选择的是两个以上表那就是:列名=数据库表名+数据库列名
Top
4 楼banalman(IT解放者)回复于 2003-12-25 17:59:22 得分 0
如果你的数据源选择的是一个表的话,pb一般就是那就是:列名=数据库列名
如果你选择的是两个以上表那就是:列名=数据库表名+下画线+数据库列名
但是有个技巧,如果您取数据源的时候给列指定了别名,那别名会被优先考虑的。
Top
5 楼wangshenkai(路曼曼其修远兮,吾将上下而求索)回复于 2003-12-26 06:54:52 得分 0
我也学会了!Top
6 楼mittee(最后一条大白鲨[无限深情凝视花花版])回复于 2003-12-26 09:06:11 得分 0
(i, "clinic_vs_price_item_price_item_code") //*********
这里有问题?是否太长了
Top
7 楼killerdanny(堕落的瓦拉斯塔兹)回复于 2003-12-26 09:32:59 得分 0
我还学会!Top
8 楼zzutligang(小鸟)回复于 2003-12-26 09:35:03 得分 0
如果是这样的话,还建议是用别名,否则写程序的时候要写这么长的列名不把人累死才怪!Top
9 楼treesoft(长沙水)回复于 2003-12-26 10:33:20 得分 0
eastpond(东塘) 说的不错! :)Top
10 楼jdsnhan(柳荫凉)回复于 2003-12-26 11:06:42 得分 0
eastpond(东塘) 说的对!
------------------------------------
eastpond(东塘) 也好久不见了。Top




