首页>计算机职称>复习指导>正文
计算机职称考试数据库系统工程师:在PB中用OLE存取blob类型数据(三)

www.zige365.com 2008-7-14 15:40:28 点击:发送给好友 和学友门交流一下 收藏到我的会员中心
 6、源程序建立

  1)首先在数据库中建立如下结构的表blobsave:

   字段名称   数据类型    备注

   id      char(4)   primairy key index

   s_path    char(50)

   pic      binary (50)

  2)在PB建立PBl库blobsave.PBl

  3)在PBl库blobsave.PBl中建立应用blobsave

  在应用的open事件中设置数据库连接程序(本程序中采用的是odbc方式连接数据库,读者可根据自己所建立的数据库的不同选用不同的连接方式,以下连接数据库的代码也有所改动,至于连接不同的数据库的方法,请参考有关资料,本文不做详细介绍):

  SQLCA.DBMS = "ODBC"
  SQLCA.AutoCommit = False
  SQLCA.DBParm = "Connectstring="DSN=blob""
  connect;
  open(w_main)

  其中命令按钮cb_path的clicked中的代码格式如下:open(w_path)

  其中命令按钮cb_dbblob的clicked中的代码格式如下:open(w_dbblob)

  其中命令按钮cb_OLEblob的clicked中的代码格式如下:open(w_OLEblob)

  4) 建立数据窗口dw_blobsave

  按照上文中建立数?荽翱诘腷lob列的方法建立数据窗口dw_blobsave如图所示:

  其中:add,del,save,cancel,,retrieve等分别为数据窗口dw_blobsave的append row,delete row,update,retrieve动作按钮。

首先创建实例变量 OLEstorage stor1

  然后如图建立窗口w_path,其中数据窗口控件dw_1的rowfocuschanged中的代码如下:

  long row_num
  row_num=dw_1.getrow()
  if row_num >0 then
  ole_1.insertfile(dw_1.object.s_path[row_num])
  end if

  其中数据窗口dw_1的buttonclicked中的代码如下:

  if dwo.name="cbselect" then
  long row_num
  row_num=dw_1.getrow()
  string filepath,filename
  getfileopenname("请选择备注文件",filepath,filename)
  dw_1.object.s_path[row_num]=filepath
  ole_1.insertfile(filepath)
  end if

  保存窗口w_path

  6)建立窗口w_dbblob

  打开w_path,把其另存为w_dbblob,改变数据窗口dw_1的rowfocuschanged中的代码如下:

  blob text1
  long row_num
  row_num=dw_1.getrow()
  if row_num>0 then
  string id
  id = dw_1.object.id[row_num]
  sqlca.autocommit=true
  selectblob pic into :text1 from blobsave where id = :id;
  ole_1.objectdata=text1
  sqlca.autocommit=false
  end if

  改变数据窗口dw_1的buttonclicked中的代码如下:

  long row_num
  if dwo.name="cbselect" then
  row_num=dw_1.getrow()
  string filepath,filename
  getfileopenname("请选择备注文件",filepath,filename)
  dw_1.object.s_path[row_num]=filepath
  ole_1.insertfile(filepath)
  end if
  if dwo.name="cbsave" then
  string id
  sqlca.autocommit = true
  blob text1
  text1 = ole_1.objectdata
  dw_1.update()
  commit;
  row_num=dw_1.getrow()
  id=dw_1.object.id[row_num]
  updateblob blobsave
  set pic = :text1
  where id = :id ;
  commit;
  sqlca.autocommit = FALSE
  dw_1.retrieve()
  dw_1.scrolltorow(row_num)
  end if
  保存窗口w_dbblob

  7)建立窗口w_OLEblob

  打开w_path,把其另存为w_OLEblob,在窗口w_OLEblob的open事件中写入以下代码:

  stor1 = create olestorage
  stor1.open("c:\p1.ole") //打开或创建ole文件
  在窗口w_OLEblob的close事件中写入以下代码:

本新闻共2页,当前在第1页  1  2  

我要投稿 新闻来源: 编辑: 作者:
相关新闻
计算机职称考试:软考的临考前十大注意事项
计算机职称考试《数据结构(C++)》学习辅导系列:序言
计算机职称考试《数据结构(C++)》学习辅导系列:栈和队
计算机职称考试《数据结构(C++)》学习辅导系列:队列应
计算机职称考试数据库系统工程师:在PB中用OLE存取blo
计算机职称考试数据库系统工程师:在PB中用OLE存取blo