精华内容
下载资源
问答
  • 以前项目从来没用过存储过程。很多开源的软件也没有。所以就疏忽这块内容。现在想补充学习其他之前没用过的其他技术。以提高以后项目在数据库操作方面的效率。了几章手册的内容,感觉受益匪浅。还在继续学习中。...

    就是如何判断select insert update delete操作的成功与否是否出错。

    以前项目从来没用过存储过程。很多开源的软件也没有。

    所以就疏忽这块内容。现在想补充学习其他之前没用过的其他技术。

    以提高以后项目在数据库操作方面的效率。看了几章手册的内容,感觉受益匪浅。还在继续学习中。

    言归正传。执行select insert update delete操作,如何判断执行情况。知道dml有个ROW_COUNT(),可以用来判断吗,还有其他办法吗。结合DECLARE HANDLER FOR 使用吗。谢谢。

    用DECLARE HANDLER捕获错误

    DECLARE Handlers

    DECLARE handler_type HANDLER FOR condition_value[,...] statement

    handler_type:

    CONTINUE

    | EXIT

    | UNDO

    condition_value:

    SQLSTATE [VALUE] sqlstate_value

    | condition_name

    | SQLWARNING

    | NOT FOUND

    | SQLEXCEPTION

    | mysql_error_code

    简单示例:

    BEGIN

    DECLARE CONTINUE HANDLER FOR 1216 select

    'Foreign key constraint violated';

    INSERT INTO departments (department_name,manager_id,location)

    VALUES ('Elbonian HR','Catbert','Catbertia');

    END;

    展开全文
  • 如何装SQL存储过程执行完毕的状态返回给DELPHI 可以利用存储过程来实现,就是利用存储过程的输出参数,具体请的示范, 创建过程,调用过程,获得输出参数: --这些表都是测试用表 create ...
    可以利用存储过程来实现,就是利用存储过程的输出参数,具体请看的示范,
    创建过程,调用过程,获得输出参数:
    
    
    --这些表都是测试用表
    create  proc ssb
    @flag  int output
    as
    truncate table  ff
    
    insert into ff
    select *   from  dbo.stuinfo
     
    
    if @@rowcount>0--获取影响的行数,表示数据插入成功
    begin
    set @flag=0--执行成功
    end
    else
    begin
    set @flag=1--执行失败
    end
    
    return @flag--过程的返回值
    
    GO
    --调用存储过程,并返回值
    declare @flag int 
    exec ssb @flag  output
    select   @flag--返回值 
    posted on 2011-07-07 01:21 江宇旋 阅读(...) 评论(...) 编辑 收藏

    转载于:https://www.cnblogs.com/jiangyuxuan/archive/2011/07/07/2099686.html

    展开全文
  • 如何创建一个进程

    2018-10-08 14:22:00
    如何创建一个进程   基础概念  要想了解进程,我们先一下什么是程序。... 为了完成特定任务的一系列指令的有序集合 ... 程序的一次动态执行过程 存储在内存中 每个程序都有自己的状态 每个进程...

    如何创建一个进程

     

    基础概念

      要想了解进程,我们先看一下什么是程序。

      程序:

        为了完成特定任务的一系列指令的有序集合

        存储在磁盘上

        程序 : 代码 + 数据

     

      那么什么时进程呢?

      进程:

        程序的一次动态执行过程

        存储在内存中

        每个程序都有自己的状态

        每个进程都有自己的虚拟地址空间

        进程 : 代码 + 数据 + 堆栈 + PCB

      PCB (进程控制块)

        pid 进程标识符

        pwd 进程标识符

        ppid 父进程进程号

    进程状态的转换

    进程与内核的互交

      

    创建一个进程的一般工作

      1 、分配一个 PID 从小到大找一个未被使用的进程号 (0 - 32768 依机器而定 笔者为 ubuntu 18.04 64bit)

       cat /proc/sys/kernel/pid_max 具体查看方式

        0 号进程时内核进程,它创建 1 号进程、还将物理内存搬到磁盘 和 磁盘搬到物理内存

      2 、分配PCB,拷贝父进程的 PCB的绝大部分数据

      3 、给子进程分配资源

      4 、 复制父进程地址空间

      5 、 将子进程置成就绪状态,放入就绪队列

    如何创建一个进程

      pid_t fork( void ) ; 

        当返回 0 时 代表的是子进程 , 当返回 >0 时代表的是父进程

      例:

      #include <stdio.h>
      #include <unistd.h>
      #include <stdlib.h>
    ​
      int main()
      {
          printf("Before Fork\n");
          pid_t pid = fork();
        
          if (pid == 0)
          {   
              printf("child\n");
          }   
          else if (pid > 0)
          {   
              printf("parent\n");
          }
      }
      执行结果:
      Before Fork
      parent
      child 

      为什么会打印两个 ?不应该打印一个parent 或者是 child 吗?

        

        先是由父进程打印出 Before Fork ,运行到红色箭头处调用 fock 创建出一个子进程

        该子进程也在红色箭头处运行,然后两个进程独立的运行,

        父进程的fork() 返回 >0 的 数,打印出 parent ;

        子进程 fork() 返回 0 ,打印出 child ;

        打印的顺序与系统的进程调度有关。

      fork注意点:

        1 、 fork 父子进程交替进行

        2 、父进程死亡,子进程将变成孤儿进程,由 1号 进程领养

        3 、 子进程死亡,成为僵尸进程

    posted @ 2018-10-08 14:22 YeLing0119 阅读(...) 评论(...) 编辑 收藏
    展开全文
  • vss如何使用(图解)

    热门讨论 2011-04-25 15:10:48
    如果你没有修改文档,你可以执行撤消签出(undo check out)命令,文档将被保存为被签出(check out)之前的状态。 如果你只需读取某一文档而并不需要编辑它,你可以执行取出(get)命令,将文档放入你的工作文件夹,再...
  • 阻塞指的是用户空间程序的执行状态,用户空间程序需等到IO操作彻底完成。传统的IO模型都是同步阻塞IO。在java中,默认创建的socket都是阻塞的。 <p><strong>其次,解释一下同步与异步</strong>: 同步IO,是一种...
  • 18-企业生产场景如何选择MySQL产品线产品及对应版本.avi 19-MySQL数据库企业生产常用5种安装方法介绍.avi 20-如何选择MySQL数据库版本及安装方式.avi 21-MySQL5.5编译方式安装实战.avi 第二部 MySQL多实例安装与...
  • Toad 使用快速入门

    2008-11-27 15:22:14
    Toad 使用快速入门 目录 ...4. 如何存储过程进行Debug?  需要Toad单独的Debug Option(Standard Version 没有这个选项)  要用Toad对存储过程进行debug,必须安装Oracle的系统包:dbms_debug...
  • 寄存器和栈的关系

    千次阅读 2019-07-31 19:27:28
    程序内存包含 【对于这些程序内存是如何分配以及寻址的请其他博客】 程序的可执行机器代码 操作系统需要的一些信息 用来管理过程调用和返回的运行时栈 用户分配的内存块 寄存器作用——可以存储地址或整数数据...

    前言

    • 首先我们要知道,寄存器是距离CPU最近,存取速度很快的存储单元。而栈是内存里属于某个程序的一段连续空间
    • 程序内存包含 【对于这些程序内存是如何分配以及寻址的请看其他博客】
      • 程序的可执行机器代码
      • 操作系统需要的一些信息
      • 用来管理过程调用和返回的运行时栈
      • 用户分配的内存块
    • 寄存器作用——可以存储地址或整数数据【程序计数器】, 用来记录某些重要的程序状态【条件码寄存器】,其他用来保存临时数据,过程参数和局部变量,以及函数的返回值
      在这里插入图片描述
    • 在这里需要说明一下,这是x86-64中央处理单元的一组16个存储64位值的通用目的寄存器
    • 8086时代,是%ax到%bp
    • IA32架构 扩展成32位 %eax到%ebp
    • 扩展成x86-64后,原来的8个寄存器扩展成64位,标号%rax到%rbp,此外还增加8个新的寄存器
    • 当x86-64过程所需要的存储空间超出寄存器能够存放的大小时,就会在栈上分配空间,这个部分称为过程的栈帧(stack frame)

    函数调用

    • 调用函数有以下几个特性
    • p
    展开全文
  • VC++常用功能实例

    2010-01-25 23:28:46
    研究调用存储过程 8 得到本机的IP地址 9 vc调用chm文件 10 最高窗口的实现 10 防止Edit框中的Password不保密 11 在同一系统中显示GB字符和BIG5字符 12 改变颜色(整个窗体的控件) 13 改变工程表头栏 13 ◆如何找开...
  • 研究调用存储过程 8 得到本机的IP地址 9 vc调用chm文件 10 最高窗口的实现 10 防止Edit框中的Password不保密 11 在同一系统中显示GB字符和BIG5字符 12 改变颜色(整个窗体的控件) 13 改变工程表头栏 13 ◆如何找开...
  • 挑战 您面临的挑战是构建此待办事项应用程序,并使它起来与设计尽可能接近。 您可以使用任何喜欢的... 如果您不确定如何执行此操作,。 配置您的存储库以将您的代码发布到URL。 如果您在挑战过程中需要帮助,这
  • todo-app-源码

    2021-03-15 20:38:03
    挑战 您面临的挑战是构建此待办事项应用程序,并使它起来与设计尽可能接近。 您可以使用任何喜欢的... 如果您不确定如何执行此操作,。 配置您的存储库以将您的代码发布到URL。 如果您在挑战过程中需要帮助,这
  • TODO-APP-MAIN-源码

    2021-03-14 07:13:21
    挑战 您面临的挑战是构建此待办事项应用程序,并使它起来与设计尽可能接近。 您可以使用任何喜欢的... 如果您不确定如何执行此操作,。 配置您的存储库以将您的代码发布到URL。 如果您在挑战过程中需要帮助,这
  • 当然,您可以手动完成所有这些操作,但是需要外部贡献者和拉取请求,您需要一种自动执行过程的方法。 Tosin带有一个用于Circleci的简单配置,一个用于Travis-ci的配置。 CircleCi将使用npm install,lint来构建...

空空如也

空空如也

1 2 3 4 5 ... 10
收藏数 189
精华内容 75
关键字:

如何看存储过程执行状态