2026年11月 PowerBuilder 文章目录
本帖最后由 pbai 于 2026-11-11 06:19 编辑2026年11月 PowerBuilder 文章目录
阅读说明
1. 收录范围:2026 年 11 月 1 日至 2026 年 11 月 30 日在『Sybase PowerBuilder』版块发布的全部文章
2. 本月共 6 篇,版块 fid=33,主题分类「学习笔记」typeid 见发布时填写
3. 全量总索引(含 2026 年 10 月及以前全部文章)见《PowerBuilder 技术文章总目录》帖(tid 90846)
4. 难度系数:★★★☆☆(本文为目录索引,正文文章难度各异,以各篇「阅读说明」为准)
一、本月速览
序发布日期文章主题分类核心内容
111-01PowerBuilder DataWindow 数据共享与搬运全解:ShareData、RowsCopy、RowsMove 的真实语义(PB10 基准 · PB12.5 实测)学习笔记15 探针实测共享缓冲区的真实语义:★方向是「主.从属」、共享的是缓冲区不是副本(SetItem/行状态/排序/Reset 全实时同步);★★从属不是只读——SetItem/Imp…
211-03PowerBuilder Blob 全解:四种编码、BlobMid 切片与 BlobEdit 的真实行为(终结符会吃位置、帮助示例是 ANSI 遗产,PB10 基准 · PB12.5 实测)学习笔记28 组探针 + 8 份十六进制字节证据:BlobEdit 写 string 自动附编码终结符、unsized blob 不自动扩容、blob 支持 + 拼接与 = 比较、Blob(blob) 不可用、LeftB/MidB 已不存在…
311-05PowerBuilder Timer 定时器全解:帮助口径、编译期真边界与无窗口环境的 -1 实测(PB10 基准 · PB12.5 实测)学习笔记编译期 Timer 第二参只认窗口(NVO/可视 UO 目标两版均 C0052);运行期未 open 窗口与无窗口上下文均安静返回 -1(两版逐字一致);Timer(0)=关表;WM_TIMER 合并机制解读
411-07PowerBuilder 动态 DataWindow 全解:一条语法串建出内存表、列定义与 16 条实测坑(PB10 基准 · PB12.5 实测)学习笔记动态建表专篇:语法串四段结构;列类型清单实测(6 种写法会让 Create 挂起);Modify create column 九种写法全失败;Describe 四态与无 SQL 的 Retrieve;16 条坑清单
511-09PowerBuilder DataWindow 运行时换 SQL 全解:SetSQLSelect / GetSQLSelect 的真实行为、三条失败铁律与 UpdateTable 去向(PB10 基准 · PB12.5 实测)学习笔记运行时换 SELECT 专篇:三条失败铁律(没挂事务 -1/列清单不匹配 -1/:参数被拒而 ? 占位是雷);换 SQL 不清缓冲区;换表后 UpdateTable 自动跟随、Update 实测打到新表;14 条坑清单
611-11PowerBuilder SQL 注入防线全解:参数化两条路、标识符白名单与 LIKE 通配符转义(PB10 基准 · PB12.5 实测)学习笔记SQL 注入专题:三条注入面与三条防线;静态 :变量 与动态 ? 两条参数化路;参数化救不了 LIKE 通配符(like ? 仍 4 行)、标识符(order by ? 返 -1)与 IN 列表;Replace() 只有位置形态、Match() 无竖线分支与计数;附 nvo_sqlsafe94 封装与 12 条 review 清单
二、本月文章详解
#1. PowerBuilder DataWindow 数据共享与搬运全解:ShareData、RowsCopy、RowsMove 的真实语义(PB10 基准 · PB12.5 实测) —— 15 探针实测共享缓冲区的真实语义:★方向是「主.从属」、共享的是缓冲区不是副本(SetItem/行状态/排序/Reset 全实时同步);★★从属不是只读——SetItem/ImportString 写入共享数据、从属挂事务后 Update 真落库(推翻「只有主能 Update」讹传)、谁 Update 都提交全部共享改动(从属删的行随主 Update 真删库);★★从属调 Retrieve 返回 -1 且把主从数据全部清空(共享关系不破、主重灌后恢复);结构不同 ShareData 返回 -1;一主多从与链式共享(第四级与主同步);ShareDataOff 谁调谁清空(链式中游 off 后其余成员仍互联——星型结构非链);共享态 Filter 全局生效(两侧视图一致);★★共享态 DeletedCount() 恒 0 但删除真实有效(连库实证 db_cnt 3→2,计数失真是共享态 DeleteRow 特有);RowsCopy 源不动、目标行 NewModified!、可拷进 Filter!/Delete!;RowsMove 源真搬走(Primary 搬 Delete! 计数正常 1);15 条坑清单 + 四方案选型;双轨读数逐字一致
#2. PowerBuilder Blob 全解:四种编码、BlobMid 切片与 BlobEdit 的真实行为(终结符会吃位置、帮助示例是 ANSI 遗产,PB10 基准 · PB12.5 实测) —— 语言层二进制类型专篇(28 组探针 + 8 份十六进制字节证据,双轨读数逐字一致):四种编码字节级核对(默认 UTF16LE 一个字母 2 字节、ANSI 本机=GBK、UTF8/UTF16BE,Blob() 落盘无终结符);★★BlobEdit 写 string 自动附编码终结符(默认 2 字节 0x0000、显式 ANSI!/UTF8! 只 1 字节,帮助示例「返回 5」是 ANSI 时代遗产实测返 9;写 blob 数据无终结符)——组包位置错位的根源;★★unsized blob 不自动扩容(未赋值 BlobEdit 返 null 什么都没写)、空间不足返 null、中途写是覆盖不是插入、定长 blob 的 Len 恒=分配大小且 FileWriteEx 写满分配区(尾部零填充落盘);BlobMid 全边界(n=0 被静默当成 1、越界静默返短块或空块不报错);★★blob 支持 + 拼接与 = 比较(文档不写但实测可用,加号无终结符);Blob(blob) 不可用(PB10 报 C0052/PB12.5 编译通道挂起);★★LeftB/RightB/MidB/PosB 已不存在(两版全 C0051,字节操作正解 Blob+BlobMid);ToAnsi/ToUnicode 存在、FromAnsi/FromUnicode 连正式帮助条目都没有却实测可用;LenW(blob)≡Len 数字节;NULL 全面传染(Len/String/BlobMid/BlobEdit 全返 null 且拼接整串变 null);FileEncoding 认不出无 BOM UTF-8(返 ANSI!);15 条坑清单 + 组包解析完整示例(位置账本逐字对应十六进制证据);与字符串全解/编码全解/uo_blob/UPDATEBLOB 四篇明确分工;双轨四绿
#3. PowerBuilder Timer 定时器全解:帮助口径、编译期真边界与无窗口环境的 -1 实测(PB10 基准 · PB12.5 实测) —— 定时器专题:★编译期真边界实测——Timer 第二参只认窗口,给 NVO 或可视 user object 两版一律 C0052(「user object 也能收 Timer」的说法在 PB10/12.5 不成立);★★运行期 -1 实测——目标窗口只 create 未 open 返回 -1、无当前窗口上下文 Timer(n) 返回 -1(两版逐字一致),错误安静无声必须查返回值;★Timer(0) 是关表不是最小间隔、关不存在的表也 -1;帮助口径逐条(interval 0<n≤4294967 可小数、到点触发自动重置、null 传染);WM_TIMER 合并机制与长任务/不 Yield 的冻表机制解读(标注未实测仅静态核对)+ 桌面环境可照抄验证的用法模板(Open 起表/Close 停表);7 条坑清单;PB10 与 PB12.5 实测项行为完全一致
#4. PowerBuilder 动态 DataWindow 全解:一条语法串建出内存表、列定义与 16 条实测坑(PB10 基准 · PB12.5 实测) —— 21 类用例双轨实测(不连库):★语法串四段结构(release 头 / datawindow 块 / table 列定义 / column 显示定义),table 管能存什么、column 管能不能看见;★★列类型清单——char(n) / number / long / decimal(18) / date / datetime / time / blob 可用,decimal(18,2)、integer、longlong、char 无长度等六种写法让 Create 不返回、进程挂起(两版一致);★★Modify create column 九种写法全部 incorrect syntax,变列数只能整串重建;★Describe 四态(! / ? / 空串 / 值)、无 SQL 时 Retrieve 返 -1 且 SQLCode=0;16 条坑清单 + 防挂起校验示例
#5. PowerBuilder DataWindow 运行时换 SQL 全解:SetSQLSelect / GetSQLSelect 的真实行为、三条失败铁律与 UpdateTable 去向(PB10 基准 · PB12.5 实测) —— 20 探针双轨实测运行时换 SELECT:★★三条失败铁律——①没挂 SetTransObject 一律 -1(验证走 dw 当前事务)②列清单必须与现有列完全匹配(删列/加列/表达式列全 -1 且不留残迹)③:参数 直接 -1、? 占位 rc=1 但 Retrieve 必炸 -1;★★换 SQL 不清缓冲区、Retrieve 才刷新;换表后 UpdateTable 自动跟随新表(SetItem+Update 连库实证打到新表、旧表无恙);手写语法串 dw 不能靠 SetSQLSelect 装数据源;order by 合法且能读回;14 条坑清单 + 选型决策三问;与 SyntaxFromSQL 篇/动态 Create 篇分工:本篇=列结构不变只换 SQL 本体
#6. PowerBuilder SQL 注入防线全解:参数化两条路、标识符白名单与 LIKE 通配符转义(PB10 基准 · PB12.5 实测) —— 注入防线专篇(16 对象双轨四绿):★三条注入面与三条防线一一对应;★拼接全表被打穿且不报错、静态 :变量 与动态 ? 两条参数化路各返 0 行;★★参数化救不了 LIKE 通配符(绑定 like ? 仍 4 行,转义 + escape 才 0 行)、标识符(order by ? 返 -1)、IN 列表(逐项校验 4→2 行);★★Replace() 只有位置形态(查找替换写法 C0052)、Match() 不支持竖线分支与 {n,m};★SQLSTATE 42000/22012 报错文本外泄、EXECUTE IMMEDIATE 只认字面量与 :变量;★DataWindow 的 SyntaxFromSQL 同样吃拼接、动态语法串不能声明检索参数;附 nvo_sqlsafe94 封装与 12 条 review 清单
三、本月统计
[*]本月发布:6 篇
[*]版块分布:fid=33『Sybase PowerBuilder』共 6 篇(主题分类「学习笔记」)
[*]全部文章已同步收录到总目录对应分类小节
四、相关入口
[*]本版块全量总目录:PowerBuilder 技术文章总目录
[*]PBIDEA 月度目录见 fid=93 同月目录帖。
[*]说明:本系列月度目录自 2026 年 11 月起建立,10 月及以前文章见全量总目录。
页:
[1]