1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- $PBExportHeader$f_storage_array.srf
- global type f_storage_array from function_object
- end type
- forward prototypes
- global subroutine f_storage_array (ref string arg_storagestr)
- end prototypes
- global subroutine f_storage_array (ref string arg_storagestr);Long ll_cnt,cnt
- String ls_storagestr
- Long ll_storageid
- Long local_storageid[]
- ls_storagestr = arg_storagestr
- IF Trim(arg_storagestr) = '' OR Trim(arg_storagestr) = '-1' THEN
- local_storageid[1] = 0
- ELSE
- IF sys_power_issuper OR arg_storagestr = '0' THEN
-
- SELECT count(*) INTO :cnt
- FROM u_storage;
- IF sqlca.SQLCode <> 0 OR cnt = 0 THEN
- ll_cnt++
- local_storageid[ll_cnt] = 0
- ELSE
- DECLARE cur_storage CURSOR FOR
- SELECT u_storage.storageID
- FROM u_storage
- WHERE u_storage.inuse = 1
- Order By u_storage.storageID Desc;
-
- OPEN cur_storage;
- FETCH cur_storage INTO :ll_storageid;
- DO WHILE sqlca.SQLCode = 0
- ll_cnt++
- local_storageid[ll_cnt] = ll_storageid
- FETCH cur_storage INTO :ll_storageid;
- LOOP
-
- CLOSE cur_storage;
- END IF
- ELSE
- DO WHILE Len(ls_storagestr) <> 1
- ls_storagestr = Replace( ls_storagestr, 1, 1, '' )
- ll_storageid = Long(Left(ls_storagestr,Pos(ls_storagestr,',',1) - 1))
- ll_cnt++
- local_storageid[ll_cnt] = ll_storageid
-
- ls_storagestr = Replace ( ls_storagestr, 1, Pos(ls_storagestr,',',1) - 1, '' )
- LOOP
- END IF
- END IF
- sys_user_storageid = local_storageid
- end subroutine
|