string sqltext_ls,slovo_ls,ls_result,ls_sql,ls_result_all
long i,ll_col_type,j,k
decimal ld_result,ld_result_all
transaction t_report
//str_arr_string str_arr_str_tmp f_getfromsql_arrary9
// gstr_arr_str1to9=str_arr_str_tmp
t_report=as_trans_sqlca
ls_result_all=''
ls_sql=as_sql
ld_result=0
ld_result_all=0
ll_col_type=0
if as_row<0 then as_row=0
if as_col<1 then as_col=1
if upper(trim(left(ls_sql,6)))<>"SELECT" then
return - 1
end if
if as_col>9 then
return - 2
end if
DECLARE p1 DYNAMIC PROCEDURE FOR SQLSA;
PREPARE SQLSA FROM :ls_sql using t_report;
DESCRIBE SQLSA INTO sqlda ;
EXECUTE DYNAMIC p1 USING DESCRIPTOR sqlda ;
if t_report.SQLCODE<>0 then
return - 3
end if
FETCH p1 USING DESCRIPTOR sqlda ;
i=0
k=0
DO while t_report.SQLCODE=0 and sqlda.numoutputs>0
k=k+1
if (as_row=0) or (k=as_row) then
i=i+1
for j=1 to as_col
CHOOSE CASE SQLdA.OutParmType[j]
CASE TypeString!
if isnull(SQLDA.GetDynamicString(j)) then
ls_result=" "
else
ls_result=SQLDA.GetDynamicString(j)
end if
CASE TypeInteger!,TypeLong!,TypeDecimal!,TypeDouble!
if isnull(SQLDA.getdynamicnumber(j)) then
ls_result=" "
else
ls_result=string(SQLDA.getdynamicnumber(j))
end if
case TypeReal!, TypeBoolean!
if isnull(SQLDA.getdynamicnumber(j)) then
ls_result=" "
else
ls_result=string(SQLDA.getdynamicnumber(j))
end if
case TypeDate!
if isnull(SQLDA.GetDynamicDate(j)) then
ls_result=" "
else
ls_result=string(SQLDA.GetDynamicDate(j))
end if
case TypeTime!
if isnull(SQLDA.GetDynamicTime(j)) then
ls_result=" "
else
ls_result=string(SQLDA.GetDynamicTime(j))
end if
case TypeDateTime!
if isnull(SQLDA.GetDynamicDateTime(j)) then
ls_result=" "
else
ls_result=string(SQLDA.GetDynamicDateTime(j))
end if
CASE ELSE
ls_result="UNKOWN DATA"
END CHOOSE
choose case j
case 1
as_string1[i]=ls_result
case 2
as_string2[i]=ls_result
case 3
as_string3[i]=ls_result
case 4
as_string4[i]=ls_result
case 5
as_string5[i]=ls_result
case 6
as_string6[i]=ls_result
case 7
as_string7[i]=ls_result
case 8
as_string8[i]=ls_result
case 9
as_string9[i]=ls_result
end choose
next
end if
FETCH p1 USING DESCRIPTOR sqlda ;
LOOP
CLOSE p1 ;
return i
update tj_zdzdtj set cks= case when bjysf ='>='or bjysf='>' then :ls_cksx when bjysf ='<='or bjysf='<' then :ls_ckxx end
这样写可以吗?主要是bjysf里不止有>,>=,<,<=这几种数据