PowerBuilder -- 保存图片
String ls_path, ls_file_name, ls_filter, ls_err
Int li_ret, li_loop, li_i, li_file, li_bytes
Long ll_file_len
Blob lb_file, lb_read, lb_pic
// 选择图片文件
ls_filter = "jpg File (*.jpg),*.jpg,bmp file(*.bmp),*.bmp,gif file(*.gif),*.gif"
li_ret = GetFileOpenName("选择头像", ls_path, ls_file_name, "png", ls_filter)
If Isnull(li_ret) Or li_ret < 0 Then
Messagebox("提示", "打开文件错误!")
Return
End If
// 读取文件二进制数据
ll_file_len = FileLength(ls_path)
// 5KB
If ll_file_len > 5120 Then
Messagebox("提示", "文件大小不能超过5KB!")
Return
End If
// FileRead每次最多读取32765bytes
If ll_file_len > 32765 Then
li_loop = (ll_file_len / 32755) + 1
Else
li_loop = 1
End If
li_file = FileOpen(ls_path, StreamMode!, Read!, LockRead!)
For li_i = 1 To li_loop
li_bytes = FileRead(li_file, lb_read)
If Isnull(li_bytes) Then
Messagebox("提示", "读取文件错误!")
Return
End If
If li_bytes > 0 Then
lb_file = lb_file + lb_read
End If
Next
FileClose(li_file)
// 设置图片
p_avatar.setpicture(lb_file)
// 保存图片
li_i = 0
SELECT COUNT(*) INTO :li_i FROM T_SYS_USER_INFO WHERE USER_GH = :gs_operid;
If li_i > 0 Then
UPDATEBLOB T_USER SET AVATAR_PIC = :lb_file WHERE USER_GH = :gs_operid;
If Sqlca.Sqlcode <> 0 Then
ls_err = Sqlca.Sqlerrtext
ROLLBACK;
Messagebox("提示", "头像保存失败:" + ls_err)
Return
End If
ls_file_name = gs_operid + '_' + String(pub_fc_getdate(), "yyyy-mm-dd")
UPDATE T_USER SET AVATAR_NAME = :ls_file_name WHERE USER_GH = :gs_operid;
If Sqlca.Sqlcode <> 0 Then
ls_err = Sqlca.Sqlerrtext
ROLLBACK;
Messagebox("提示", "头像名称保存失败:" + ls_err)
Return
End If
End If
COMMIT;
// 从数据库读取图片
li_i = 0
SELECT COUNT(*) INTO :li_i FROM T_SYS_USER_INFO WHERE USER_GH = :gs_operid;
If li_i > 0 Then
SELECTBLOB AVATAR_PIC INTO :lb_pic FROM T_USER WHERE USER_GH = :gs_operid;
p_1.setpicture(lb_pic)
End If
// 图片较小 sqlserver 可用 varbinary(字段长度)类型来保存
PowerBuilder -- 保存图片的更多相关文章
- PowerBuilder笔记
powerbuilder中怎样新建一个pbl文件 在创建pbw之后,右键单击pbw,点新建,弹出对话矿,按图操作,就能创建pbl 主程序入口: 主程序入口代码: // Profile ahzbmysq ...
- HTML 保存图片到本地
具体方法有两种 一种是 利用canvas的 toDataUrl 和Html5 里面的 <a>标签里面的 Download 属性 虽然 Download 的兼容性不怎么样 但是在文章后 ...
- Android 保存图片到SQLite
[转:原文] Resources res = getResources(); Bitmap bmp = BitmapFactory.decodeResource(res, R.drawable.ico ...
- PowerBuilder 简介及应用 - 数据库系统原理
PowerBuilder 是一种企业级数据库前端应用和多层体系结构开发工具,友好的用户界面,功能强大的数据窗口,是一个集成开发环境. PB 的特点 采用面向对象的编程方法和事件驱动的工作原理. 支持跨 ...
- JS/HTML 保存图片到本地:HTML <a> download 属性
JS如何保存图片到本地呢?自己百度一下吧! 这里想要说的是,可以利用 HTML 的 <a> 标签 来是实现保存图片到本地的功能,参考代码如下: <a href="http: ...
- [Android Pro] Android保存图片到系统图库
http://stormzhang.github.io/android/2014/07/24/android-save-image-to-gallery/ http://blog.csdn.net/x ...
- IOS UIImagePickerController 保存图片到 相册
// 异步下载图片 dispatch_queue_t queue =dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0); disp ...
- 利用PBFunc在Powerbuilder中解析Json对象
利用PBFunc工具在Powerbuilder解析json,只需要调用getattribute方法来获取 解析unicode格式的json: n_pbfunc_json lnv_json lnv_js ...
- 利用PBfunc在Powerbuilder中使用https获取微信的AccessToken
在前篇中讲解了使用PBFunc在Powerbuilder自己进行http的GET和POST操作. 本篇简单用代码演示下https的微信AccessToken的获取: n_pbfunc_http lnv ...
随机推荐
- 《手把手教你学C语言》学习笔记(5)---计算机的存储和访问
数据存储是以“字节”(Byte)为单位,数据传输是以大多是以“位”(bit,又名“比特”)为单位,一个位就代表一个0或1(即二进制),每8个位(bit,简写为b)组成一个字节(Byte,简写为B),是 ...
- 处理printf的变参问题
VA_LIST 是在C语言中解决变参问题的一组宏,所在头文件:#include <stdarg.h> (1)首先在函数里定义一具VA_LIST型的变量,这个变量是指向参数的指针: (2)然 ...
- git的使用学习(六)git的标签管理
发布一个版本时,我们通常先在版本库中打一个标签(tag),这样,就唯一确定了打标签时刻的版本.将来无论什么时候,取某个标签的版本,就是把那个打标签的时刻的历史版本取出来.所以,标签也是版本库的一个快照 ...
- hdu 2739(尺取法)
Sum of Consecutive Prime Numbers Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 22876 ...
- TreeMap和TreeSet的区别与联系
TreeMap 和 TreeSet 是 Java Collection Framework 的两个重要成员,其中 TreeMap 是 Map 接口的常用实现类,而 TreeSet 是 Set 接口的常 ...
- CMake的应用(在vision studio2008中去掉 ALL_BUILD 和 ZERO_CHECK)
from http://blog.csdn.net/jtop0/article/details/6167432 一般由CMake是 跨平台软件开发和维护过程的 工程构建工具.“在每个系统构建你的工程 ...
- 说说GestureDetector.OnGestureListener onScroll函数
public abstract boolean onScroll (MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) ...
- 使用LeakCanary遇到的问题 就是不弹出来
今天楼主遇到引用LeakCanary时代码跟官网一样但是就不弹出来.楼主新建项目就可以正常使用.楼主郁闷半天,现在终于整出来了. 楼主主工程app引用module为thirdParty,本想为了整洁三 ...
- ThinkPHP模板包含功能(转载)
对于一些有共同属性的页面(如页脚),可以单独制作成一个模板,再利用 ThinkPHP 提供的模板包含功能包含进来.这样,当要修改这些公共页面时,只需修改对应的模板即可而不必修改每一个页面.模板的包含使 ...
- navicat链接lunix平台上的数据库
xsell 4.navicat软件 想在链接数据库的得常规设置里设置: 链接名称.主机名(链接lunix平台后才干ping 通的ip地址) port.username.password 然后选择ssh ...