Skip to content

增加:获取存储过程返回结果 的 MySQL API execute_s #205

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 6 commits into
base: master
Choose a base branch
from

Conversation

Alex-zry-2333
Copy link

      graph TD
    A[开始] --> B[初始化预处理语句]
    B --> C{准备SQL语句成功?}
    C -->|失败| D[设置错误信息]
    D --> E[返回空结果]
    C -->|成功| F{是否有参数?}
    F -->|是| G[绑定参数]
    G --> H{绑定成功?}
    H -->|失败| D
    F -->|否| I[执行SQL语句]
    H -->|成功| I
    I --> J{执行成功?}
    J -->|失败| D
    J -->|成功| K[创建结果集容器]
    K --> L[多结果集循环开始]
    L --> M{有结果集?}
    M -->|是| N[初始化结果绑定结构]
    N --> O[遍历结果类型字段]
    O --> P{字段是反射结构体?}
    P -->|是| Q[递归绑定子字段]
    P -->|否| R[直接绑定字段]
    Q --> S
    R --> S[绑定结果列]
    S --> T{绑定成功?}
    T -->|失败| U[设置错误继续]
    T -->|成功| V[存储结果集]
    V --> W[遍历结果行]
    W --> X{获取行成功?}
    X -->|是| Y[提取行数据到对象]
    Y --> Z[重置缓冲区]
    Z --> AA[处理NULL值]
    AA --> AB[对象加入结果集]
    AB --> W
    X -->|否| AC[释放结果集]
    AC --> AD[继续下一个结果集?]
    AD -->|是| L
    M -->|无结果集| AD
    AD -->|否| AE[返回结果集]
Loading

增加mysql.cmake加载时的完整路径,使用和主cmakelists的工程同名的宏定义,保证主cmakelists构建能保持原状。

在作为非子文件夹包括到项目中使用的场景下,只需要定义宏,就可以正常使用,保证项目路径干净
用来执行存储过程
更新一些错误定义
@qicosmos
Copy link
Owner

缺少测试代码,请增加测试代码,确保新增加的代码每一行都被覆盖。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants