pb如何在数据库保存和读取图片

字段类型Image(不同数据库不同,如果没有再查找blob等类型),然后使用如下编程套路:

读取:

   这样的字段不能放在数据窗口的Detail节中,通常用户点击某行数据,获取该行的主键信息,以该信息为条件检索图片信息。比如,主键为id,图片保存在zp字段中:

   在dw_1的Clicked事件中编写如下程序:

String ls_id    

blob lb_zp

if Row < 1 then return

ls_id = This.GetItemString(Row,'id')

selectblob zp into :lb_zp from employee where id = :ls_id;

if sqlca.SQLNRows > 0 then    //判断是否读取成功

   p_1.SetPicture(lb_zp)      //显示在picture控件p_1中

end if

向数据库中保存图片的脚本如下:

  首先需要明确:

  1)事务对象需要设置AutoCommit属性为True

  2)使用UpdateBlob语句修改,一次只能修改一条记录

  3)在使用UpdateBlob之前数据应该已经存在。

  基于上述原因,通常在卡片式的录入界面中(通常使用Freedom类型的数据窗口)让用户输入照片。数据保存后,马上调用以下脚本处理图片:

blob  lb_zp

integer li_file

li_file = FileOpen(p_1.filename, StreamMode!)

IF li_file <> -1 THEN

       FileRead(li_file,lb_zp)

       FileClose(li_file)

       UPDATEBLOB Employee SET zp = :lb_zp WHERE id = :ls_id;

END IF

IF sqlca.SQLNRows > 0 THEN

       COMMIT;

END IF
 

你可能感兴趣的:(PowerBuilder,数据库,pb,powerbuilder)