当前位置:首页 > 第七章:TUXEDO的客户端编程
if fchgl32(fbfr,fldid,occ,buf,flen) = -1 then ferror = getferror32()
MessageBox( \出错: \ return -1 end if return 0
int pchgs32(long fbfr,long fldid,long occ,string buf) /*作用:写一个字符型数据到FML32缓冲区的指定位置中 输入参数:
fbfr: FML32缓冲区 fldid: ID号 occ: 位置
buf: 要写入的字符型数据 输入参数:无
返回值: 0 成功,失败返回相应的 */
long ll_len=0 long ll_error=0
ll_len=len(buf)
if fchgs32(fbfr,fldid,occ,buf,ll_len) = -1 then ll_error = getferror32()
MessageBox( \出错: \ return -1 end if
return 0
int pgetd32(long fbfr,long fldid,long occ, ref double buf) /*作用:从FML32缓冲区的指定位置中取浮点型数据到输入参数BUF中 输入参数:
fbfr: FML32缓冲区 fldid: ID号 occ: 位置
buf: 取出的数据储存到BUF中 输入参数:无
返回值: 0 成功,-1失败 */
long ll_flen =0
long ll_ferror =0 double lf_tmp=0
if fgetd32(fbfr, fldid, occ, lf_tmp, ll_flen) = -1 then ll_ferror = getferror32()
MessageBox( \出错: \ return -1 end if
buf = lf_tmp return 0
int pgetl32(long fbfr,long fldid,long occ, ref long buf) /*作用:从FML32缓冲区的指定位置中取整型数据到输入参数BUF中 输入参数:
fbfr: FML32缓冲区 fldid: ID号 occ: 位置
buf: 取出的数据储存到BUF中 输入参数:无
返回值: 0 成功,-1失败 */
long ll_flen =0 long ll_ferror =0 long ll_tmp=0
if fgetl32(fbfr, fldid, occ, ll_tmp, ll_flen) = -1 then ll_ferror = getferror32()
MessageBox( \出错: \ return -1 end if
buf = ll_tmp return 0
int pgetd32(long fbfr,long fldid,long occ, ref string buf) /*作用:从FML32缓冲区的指定位置中取字符型数据到输入参数BUF中 输入参数:
fbfr: FML32缓冲区 fldid: ID号 occ: 位置
buf: 取出的数据储存到BUF中(长度不能超过1000) 输入参数:无
返回值: 0 成功,-1失败 */
long ll_flen =0 long ll_ferror =0 string ls_tmp long ll_len=0
ll_len = flen32(fbfr,fldid,occ) if ll_len = -1 then
ll_ferror = getferror32()
MessageBox( \出错: \ return -1 end if
ls_tmp = space(ll_len) if ls_tmp=\
messagebox(\提示\出错\ return -1 end if
if fgets32(fbfr, fldid, occ, ls_tmp, ll_flen) = -1 then ll_ferror = getferror32()
MessageBox( \出错: \ return -1 end if
buf = ls_tmp return 0
例子中用到的FML32文件 myfml的内容: *base 1000
EMPNO 1 long - - ENAME 2 string - - JOB 3 string MGR 4 long HIREDATE 5 string SAL 6 double COMM 7 double DEPTNO 8 long
ROW 9 long - - ERRINFO 10 string - - SQLCODE 11 long - -
SQLTEXT 12 string - - CROSSTAB 13 string - - NODENO 14 string - - BEGIN_DATE 15 string - - END_DATE 16 string - -
对应的myfml.h的内容:
/* fname fldid */ /* ----- ----- */
#define EMPNO ((FLDID32)33555433) /* number: 1001 type: long */
#define ENAME ((FLDID32)167773162) /* number: 1002 type: string */ #define JOB ((FLDID32)167773163) /* number: 1003 type: string */ #define MGR ((FLDID32)33555436) /* number: 1004 type: long */
#define HIREDATE ((FLDID32)167773165) /* number: 1005 type: string */ #define SAL ((FLDID32)134218734) /* number: 1006 type: double */ #define COMM ((FLDID32)134218735) /* number: 1007 type: double */ #define DEPTNO ((FLDID32)33555440) /* number: 1008 type: long */ #define ROW ((FLDID32)33555441) /* number: 1009 type: long */
#define ERRINFO ((FLDID32)167773170) /* number: 1010 type: string */ #define SQLCODE ((FLDID32)33555443) /* number: 1011 type: long */
#define SQLTEXT ((FLDID32)167773172) /* number: 1012 type: string */ #define CROSSTAB ((FLDID32)167773173) /* number: 1013 type: string */
在PB中的定义为INSTANCE 变量:
共分享92篇相关文档