遍历SQL语句中所有列?

Michael 2000-01-11 10:02:00
在使用Datawindow开发数据库程序时,怎么样才能遍历DataObject中的所有列(一列一列地读,并且假设不知具体的列名与表名)?
...全文
577 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
edpzjh 2000-02-18
  • 打赏
  • 举报
回复
integer li_cnt, li_count
any la_value

li_count = integer(dw_1.Describe("Datawindow.Column.Count"))
for li_cnt = 1 to li_count
la_value = of_getitemany(dw_1, <row>, li_cnt, primary!, false)
next



function any f_getitemany(datawindow adw_1, long al_row, integer ai_column, dwbuffer adw_buffer, boolean ab_orig_value)
any la_value
string ls_colname, ls_computeexp

ls_colname = adw_1.Describe ( "#" + string( ai_column ) + ".name" )

/* Determine the datatype of the column and then call the appropriate
GetItemxxx function and cast the returned value */

CHOOSE CASE Lower ( Left ( adw_1.Describe ( ls_colname + ".ColType" ) , 5 ) )
CASE "char(" // CHARACTER DATATYPE
la_value = adw_1.GetItemString ( al_row, ls_colname, adw_buffer, ab_orig_value )

CASE "date" // DATE DATATYPE
la_value = adw_1.GetItemDate ( al_row, ls_colname, adw_buffer, ab_orig_value )

CASE "datet" // DATETIME DATATYPE
la_value = adw_1.GetItemDateTime ( al_row, ls_colname, adw_buffer, ab_orig_value )

CASE "decim" // DECIMAL DATATYPE
la_value = adw_1.GetItemDecimal ( al_row, ls_colname, adw_buffer, ab_orig_value )

CASE "numbe", "long", "ulong", "real" // NUMBER DATATYPE
la_value = adw_1.GetItemNumber ( al_row, ls_colname, adw_buffer, ab_orig_value )

CASE "time", "times" // TIME DATATYPE
la_value = adw_1.GetItemTime ( al_row, ls_colname, adw_buffer, ab_orig_value )

CASE ELSE // MUST BE A COMPUTED COLUMN
IF adw_1.Describe ( ls_colname + ".Type" ) = "compute" THEN
ls_computeexp = adw_1.Describe ( ls_colname + ".Expression" )
la_value = adw_1.Describe( "Evaluate('" + ls_computeexp + "', " + string (al_row) + ")" )
ELSE
SetNull ( la_value )
END IF

END CHOOSE

Return la_value
end function
rmh 2000-01-21
  • 打赏
  • 举报
回复
dw_1.object.data[row,col]可以返回row行col列的数据;
dw_1.object.data[row]可返回row行的数据(struct)
amber 2000-01-19
  • 打赏
  • 举报
回复
for i=1 to dw.getcolumncount()
dw.getitemstring(lineno,i)
next
longzu 2000-01-15
  • 打赏
  • 举报
回复
可以用dwcontrol.getcolunm()得到列号,dwcontrol.getcolumnname()得到列名.
昆仑上 2000-01-13
  • 打赏
  • 举报
回复
dwcontrol.GetSQLSelect ( ) ---> 得到其SQL语句 (select .. from.. where ..)可能有多种格式, 对此字符利用 select ,from , where 和 分隔符,分析
出其表名,列名,各属性!!!!!
XXX---> 遍历SQL语句中所有列 !!!!
HA.........
Fun ~Q~

1,072

社区成员

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

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