当前位置: 论文资料 >> 工商管理 >> 电子商务 >> 基于PB6和ORACLE8开发“劳动信息管理系统”
基于PB6和ORACLE8开发“劳动信息管理系统”

 

//从库中提出放入MLE中查询

selectblob bigtext into :bigtext1 from ldxxwj where bh=:varbh rq=:varrq using sqlca;

mle_1.text=blob(bigtext1)   

//从库中重新生成文本文件filename.txt并存盘

select bigtext into :varfile from ldxxwj where bh=:varbh and rq=:varrq using sqlca;

fname="c:\filename.txt”

fh=fileopen(fname,streammode!,write!,lockwrite!,replace!)  

if fh<>-1 then

filewrite(fh,filen)

fileclose(fh)    

end if

4.4  处理图象文件(大的二进制文件)

     职工照片-图象文件(例如BMP位图文件)是二进制文件,将其以数据流方式存入ORACLE8的LONG字段中,查询时从LONG字段中取出,放入图象框(如p_1)中查询,下边是一个例子:

//将图象文件读入BLOB型变量pict中

fn=fileopen(picname,streammode!)

if fn<> -1 then

fileread(fn,pict)

fileclose(fn)

//将图象放入图象框p_1内查看

setpicture(p_1,pict)

end if

//将图象存入表pic 的LONG字段bmpt 中

updateblob pic set bmpt=:pict ;

commit;

4.5  使用动态数据窗口

    动态数据窗口指的是在程序的运行过程中通过SQL语句的改变动态地创建、修改数据窗口的内容和表现形式,它多用在对同类型的对象的描述过程中,“劳动信息查询系统”的一些类似的内容可用动态数据窗口来编制,表现形式一致、构造界面统一、编程效率高,当然还有其它一些优点。下边是一个创建动态数据窗口并由此绘出趋势图的例子(动态数据窗口dw_1,图形框gr_1):

dw_1.Create(SyntaxFromSQL(SQLCA,"SELECT sj,val01  FROM tab01 where  ytmh='"+rowcha+"' ORDER BY sj  ","style=(type=grid)",err))

//执行上述语句会动态地产生类型为grid的数据窗口dw_1。

//由下边这段程序做出趋势图:

//将数据调入数据窗口

dw_1.SetTransObject(sqlca) 

dw_1.Retrieve()

rows = rowcount(dw_1)

if rows>0 then

gr_1.SetRedraw(False)

gr_1.reset(all!)

gr_1.addseries("dz1")

for  i =1  to rows

xis=mid(getitemstring(dw_1,i,1),3,2)

yis=getitemnumber(dw_1,i,2)

if isnull(yis) then

yis=0

end if

gr_1.adddata(1, yis,xis)

next

gr_1.SetRedraw(True)

sum=sum+sum1

st_1.text=string(sum)

end if

//图的类型可根据不同需要随意选择,如选择饼图、柱状、折线图等。

4.6  变量的定义和赋值要正确

一些整型数值尽量不要定义成INT类型,因为一旦超过32767就会出错,一定要定义成LONG类型;带小数的数据变量要定义成DOUBLE型,若定义成LONG类型,会自动设去小数部分,出现精度错误。

    PB6中的日期类变量赋值方式比较固定,若日期变量定义错了,执行有关的SQL语句时会出错,错误现象非常隐蔽,不容易调试,这是编程过程中的常见错误,在此特别强调一下。

   举例如下:

   rqnum1=”2000-06-31”

   rqnum2=”2000-07-01”

   vardate1=string(date(em_1.text),"DD-MMM-YY")

   vardate2=string(date(em_2.text),"DD-MMM-YY")

上一页  [1] [2]