%% DataLink.SqlWebCall 默认分支次流程图 flowchart TD A([MESCommonBase default 分支]) B[DataLink.SqlWebCall(type,jsonData,dataobj)] C{initSystemIsOk?} D[InitSystemReg
读取 Web.config appSettings ConnectionString
initSystemIsOk = true] E{switch(type)} A --> B --> C C -->|否| D --> E C -->|是| E E -->|8888| L1[GetEncryptStr
读取 Name/name 并加密] E -->|5001| L2[ExePROCEDURE_Type11_AddUser
Password MD5
执行 Name 指定存储过程] E -->|5002| L3[ExePROCEDURE_Type11_Login
解密密码并比对
成功写入 token] E -->|1/2/5| O1[旧协议存储过程
对象: jsonobj dataobj
Param 为拼接字符串] O1 --> O2[SQLCommon.GetCmdParam
按 & / = / | 拆参数
支持 output 参数] O2 --> DBP[SQLCommon.ExecuteStoredProcedure] E -->|11/111/12/13/21| N1[新协议存储过程
对象: JsonData jsonData
Param 为 JSON 数组字符串] N1 --> N2[GetString_JsonData
读取 Type/Name/Param/token/pageSize/pageList] N2 --> T{token 非空?} T -->|是| T1[CheckToken
权限管理_Token_查询数据] T -->|否| N3[解析 Param 为 SqlParameter[]] T1 -->|通过| N3 T1 -->|失败| R3[返回 result=3] N3 --> N4{Type=111 且有分页字段?} N4 -->|是| N5[追加 PageCurrent/PageSize/PageCount/ItemCount] N4 -->|否| DBP N5 --> DBP E -->|1001/1002/3/4/7/22/3001| S1[SQL / 建表导入 / 命令执行类
Name/name 可能是 SQL 文本或表名] S1 --> DBS[SQLCommon.ExecuteDataTable / ExecuteDataset
ExecuteInsertMesWork / ExecuteSelectMesWork
或 DbCallType1003_SqlCmd.SqlExec] L1 --> R1[返回加密字符串] L2 --> DBP L3 --> DBP DBP --> R2[返回结果
DataTable JSON / DataSet JSON
result=1/0 / rows-total / code-message-data] DBS --> R2 R1 --> Z[Response.Write(responseText)] R2 --> Z R3 --> Z Z --> END([返回 MESCommonBase default 响应出口]) subgraph RISK[次流程关键风险] K1[token 多数是非空才校验
不传 token 常见路径不拒绝] K2[客户端可控制 Name/name
存储过程名 / SQL 文本 / 表名] K3[CommandTimeout = 0
长 SQL 或存储过程可能长期阻塞] K4[未支持 Type 返回空字符串
异常常返回 result=0] end END --> RISK