PB updateblob 数据长度截断现象

sonata_001 2008-07-15 07:07:01
存入数据代码:
handle = fileopen(s_file, streammode!)
len = filereadex(handle, im)

len1 = len(im) //此处我调试看了,长度正确是 6KB

if len > 0 then

sqlca.autocommit = true
//insert into t_mreport (日期, 报告编号, 报告名称, 报告存档) values ('2008-1-1', 0, '测试1', 'sadadasd') using sqlca;
//insert into t_mreport (日期, 报告编号, 报告名称, 报告存档) values ('2008-1-1', 0, '测试1', convert(varbinary,:im)) using sqlca;

updateblob t_mreport set 报告存档 = :im where 序号 = 1;


if sqlca.sqlcode = 0 then
commit;
messagebox("成功!","更新数据库成功!")
else
rollback;
messagebox("失败!","更新数据库失败!" + sqlca.sqlerrtext )
end if

sqlca.autocommit = false
end if


下面是读出代码:

blob im
string s_file, s_file_dest
long handle
long len, len1

s_file = "E:\workspace\PB10.0\fileTest_d_connect_002.doc"
s_file_dest = "E:\workspace\PB10.0\fileTestdump_d.doc"


selectblob 报告存档 into :im from t_mreport where 序号 = 1;

len1 = len(im) //此处调试查看是 6KB 的一半

if sqlca.sqlcode = 0 and sqlca.sqlnrows > 0 then

handle = fileopen(s_file_dest, streammode!, write!, shared!, replace!)

if handle > 0 then
len = filewriteex(handle, im)
fileclose(handle)

end if

end if


所以我怀疑是存入是截断的,注意数据库:sql2005中,字段是 varbinary(max).

请大家指点!

...全文
341 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
SKY_4K_PPM 2008-07-16
  • 打赏
  • 举报
回复
不知道你在SQL中定义什么类型的字段,来存BOLB的,长度不够,可能就强制截断了。
AFIC 2008-07-16
  • 打赏
  • 举报
回复
不说估计你也知道,
等你给用户发布的时候,
一定也要代上那个文件阿。
sonata_001 2008-07-16
  • 打赏
  • 举报
回复
结果验证,如AFIC 所提示的,原因正在此。好了,又长了见识了!非常感谢大家了!给afic接分了.
AFIC 2008-07-16
  • 打赏
  • 举报
回复
32767bytes的话,肯定是我说的问题
sonata_001 2008-07-16
  • 打赏
  • 举报
回复
回复SKY_4K_PPM :
我的字段是 字段是 varbinary(max)来存储blob的。
sonata_001 2008-07-16
  • 打赏
  • 举报
回复
修正下:上面的6KB 写错了,是62KB(62796bytes)
同样,上面的6KB的一半写错了,是32KB(32767bytes).
编程夜猫 2008-07-15
  • 打赏
  • 举报
回复
恩,有可能是接口的问题
AFIC 2008-07-15
  • 打赏
  • 举报
回复
仔细一想,也可能不是我说的原因,最好说出你的pb版本和用的接口
sqlca.dbms那个
AFIC 2008-07-15
  • 打赏
  • 举报
回复
打开C:\Program Files\Sybase\Shared\PowerBuilder
找到pbodbxx.ini如果你是9就是pbodb90.ini,如果你是11就是pbodb110.ini,类推
搜索你用的数据接口,比如Microsoft SQL Server
下边必然有一个PBMaxBlobSize='32767'
改成你需要的大小,比如1024000
内容概要:本文围绕面向新能源容量提升的含智能软开关(SOP)的配电网重构问题,提出了一种基于二阶锥规划(SOCP)的双层优化模型。该模型上层以提升新能源消纳能力为目标进行网络重构,下层利用SOP灵活调节功率分布,解决重构过程中可能出现的潮流越限问题。通过将非凸的最优潮流问题转化为二阶锥松弛形式,有效提高了求解效率与计算可行性,并在标准算例系统中验证了该方法在降低网损、均衡负荷分布及提升新能源利用率方面的优越性。研究不仅提供了理论建模思路,还配套实现了Matlab代码,便于算法复现与拓展应用。; 适合人群:电力系统、新能源并网、智能配电网及相关领域的科研人员与工程技术人员,具备一定的优化理论基础与Matlab编程能力者优先。; 使用场景及目标:①应用于高渗透率分布式新能源接入背景下的配电网运行优化;②为智能软开关与网络重构的协同控制提供可复现的数学建模与求解方案;③支撑新型电力系统中提升电网灵活性、可靠性和新能源承载力的关键技术研究。; 阅读建议:建议结合提供的Matlab代码深入理解二阶锥松弛技术在电力系统优化中的具体实现,重点关注模型构建、非线性约束的线性化处理以及双层优化架构的分解求解逻辑,可通过调整参数或测试不同场景进一步验证算法鲁棒性与适应性。

754

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧