首页 > 数据库 >PowerBuilder读取硬盘图片显示出来并保存到数据库中

PowerBuilder读取硬盘图片显示出来并保存到数据库中

时间:2023-10-23 12:23:59浏览次数:46  
标签:lb 读取 PowerBuilder ll li blob sqlca filenum 硬盘

PowerBuilder读取硬盘图片显示出来并保存到数据库中


数据库是SQL SERVER

表:blobtab

列:

id,int,主键自增

blobdata,image,二进制内容可空


注:PB中存储二进制数据和读取二进制数据只能用updateblob语句和selectblob语句

 

 

显示图片到控件里的代码:

//显示图片 p_1是图片控件,lb_tot_b 是二进制图片内容,获取方式在下面的代码里
setpicture(p_1,lb_tot_b)

 

 

存入数据库的代码:

 

setpointer(hourglass!) //设置鼠标开头为沙漏
int li_filenum,li_loops,li_counter
long ll_filelen,ll_bytes_read,ll_new_pos
blob lb_our_blob,lb_tot_b
ll_filelen = filelength(sle_1.text) //获取文件长度
//指定该文件为只读,li_filenum为这个文件的句柄
li_filenum = fileopen(sle_1.text,STREAMMODE!,READ!,LOCKREAD!)
//fileread()函数不支持读取大于32K的文本,计算将使用fileread函数的次数
if ll_filelen>32766 then
    li_loops = ((ll_filelen - 1)/32766)+1
else
    li_loops = 1
end if

//读文件
for li_counter=1 to li_loops
    ll_bytes_read = fileread(li_filenum,lb_our_blob)
    lb_tot_b += lb_our_blob
    ll_new_pos += ll_bytes_read
    fileseek(li_filenum,ll_new_pos,FROMBEGINNING!)
next
//关闭文件句柄
fileclose(li_filenum)

//存入数据库 lb_tot_b 里的内容就是最后得到的二进制的东西
updateblob blobtab set blobdata=:lb_tot_b where id=1 using sqlca;
if sqlca.sqlcode<>0  then
    messagebox('插入数据失败',sqlca.sqlerrtext)
else
    messagebox('','插入数据成功')
end if

 

 

显示数据库中图片的代码:

 

blob lb_blob_var
selectblob blobdata into :lb_blob_var from blobtab where id=1 using sqlca;
if sqlca.sqlcode<>0  then
    messagebox('取数据失败',sqlca.sqlerrtext)  
end if
setpicture(p_1,lb_blob_var)

 

标签:lb,读取,PowerBuilder,ll,li,blob,sqlca,filenum,硬盘
From: https://www.cnblogs.com/niunan/p/17782118.html

相关文章

  • PowerBuilder最简应用需要的dll
    PowerBuilder最简应用需要的dll atl71.dlllibjcc.dlllibjtml.dlllibjutils.dllmsvcp71.dllmsvcr71.dllnlwnsck.dllpbshr125.dllpbvm125.dll ......
  • 通过pandas读取excel数据,很多数据开头带有'特殊字符,如何处理?
    大家好,我是皮皮。一、前言前几天在Python最强王者群【wen】问了一个Pandas数据处理的问题,一起来看看吧。请教问题:通过pandas读取excle数据,很多数据开头带有'特殊字符,我用replace或者strip()函数处理均无法处理。......
  • MyBatis-Plus和shardingsphere一起用。子查询取别名读取不到的问题。
    https://github.com/baomidou/mybatis-plus/issues/2585在使用MP和Shardingsphere的某些版本中,可能会出现join子查询表取别名之后,在where中用这个别名报错 Cannotfindownerfromtable.//重点是外层SQL不要出现*,不要使用别名,需要的字段都写清楚(内外层sql都要写清楚),......
  • 找回丢失的硬盘数据:一个简单易懂的步骤指南
    当意识到硬盘或是其他存储设备丢失了重要数据时,首先要做的就是保持冷静。紧张和焦虑可能会导致误操作,进一步损坏数据。在找到好用的方法之前,可以先明确具体想要恢复哪些数据,以及这些数据位于原来的什么位置。其次,在执行硬盘数据恢复之前,还可以先检查下备份。如果平时有定期备份数据......
  • 找回丢失的硬盘数据:一个简单易懂的步骤指南
    现代社会中,数据的重要性不言而喻,我们习惯依赖电脑来存储数据,例如,工作文件、照片、视频、学习资料等。有时候,存储在硬盘上的数据会不可避免的丢失,一旦丢失了重要数据,要面对的将是不可估量的损失。本文将提供一个简单易懂的恢复指南,帮你轻松恢复丢失的硬盘数据,冷静应对数据丢失问题。......
  • django从配置文件中读取数据库信息
    创建配置文件my.cnf[client]database=django_dbuser=rootpassword=123456host=127.0.0.1port=3306settings.pyDATABASES={'default':{'ENGINE':'django.db.backends.sqlite3','OPTIONS':{'read_default_fi......
  • 无法读取方案文档原因为 1) 无法找到文档; 2) 无法读取文档; 3) 文档的根元素不是 <xsd:s
    org.springframework.util.xml.SimpleSaxErrorHandler.warningIgnoredXMLvalidationwarningorg.xml.sax.SAXParseException;lineNumber:9;columnNumber:73;schema_reference.4:无法读取方案文档'http://www.springframework.org/schema/beans/spring-context.xsd......
  • 服务器数据恢复-服务器多块硬盘掉线导致银行业务模块崩溃的数据恢复案例
    服务器故障&分析:某银行的业务模块崩溃,无法正常使用。排查服务器故障,发现运行该业务模块的服务器中多块硬盘离线,导致上层应用崩溃。故障服务器内多块硬盘掉线,硬盘掉线数量超过服务器raid阵列冗余级别所允许的硬盘掉线数量,导致服务器瘫痪。可以通过修复硬盘物理故障,提取故障盘数据......
  • scanf读取String和char []的区别
     首先,c语言中没有string类型,直接用scanf读入string类型是不正确的。如:stringa;scanf("%s",a);//录入"asd"cout<<a;//输出后a是空正确方式:stringa;a.resize(8);scanf("%s",&a[0]);//录入"asd"cout<<a;//输出:asd 为......
  • Java读取本地文件内容
    Stringpath="C:\\Users\\86175\\Desktop\\ss.txt";try{//创建FileReader对象来读取文件FileReaderfileReader=newFileReader(path);//创建BufferedReader对象来读取文件内容BufferedReaderbufferedRea......