精华内容
下载资源
问答
  • ESQLC和PROC区别

    2010-01-21 15:26:29
    本文档介绍了数据库嵌入式SQL/C语言程序ESQLC和PROC区别
  • 在规则引擎中,Ruby 的闭包使用特别频繁,而且有 block,Proc和 lambda 等后几种形式的用法,很让人困惑。为了深入理解代码,再次认真学习了一下 Ruby 的闭包,特别是 block,proc lambda 几种用法的异同,这次的...
  • 1、在proc和lambda中,return关键字有不同含义: 在proc中,return仅仅表示从这个lambda中返回. 在lambda中,return不是从proc中返回,而是从定义proc的作用域中返回. 代码如下: def one_method  p = Proc.new{return ...
  • VS2017整合procC语言篇)

    千次阅读 2017-08-20 10:24:44
    1、使用VS2017 新建一个空的C++项目,然后添加一个名叫hello.proc的文件,并编写如下代码: 2、在hello.proc文件上右击,选择属性; 3、在打开的属性面板中,我们点击左边列表栏中的常规选项,然后在右边...

    1、使用VS2017 新建一个空的C++项目,然后添加一个名叫hello.proc的文件,并编写如下代码:


    2、在hello.proc文件上右击,选择属性;


    3、在打开的属性面板中,我们点击左边列表栏中的常规选项,然后在右边的项类型中选择自定义生成工具,单击应用后,右边的列表栏会多出一个自定义生成工具选项;


    4、点击自定义生成工具选项,然后在右边的命令行栏中输入编译.proc文件的命令proc hello.pc,在输出栏中指定最终编译好的文件为hello.c,单击应用后,再点击确定;


    5、我们把项目关闭后再重新打开,然后在hello.pc文件上右击,发现编译选项已经变成可以用的状态了(一开始为不可用的灰色,因为之前我已经设置过了,所以第二步的截图中是可用状态);


    6、点击编译,编译完成后,查看输出窗口,发现编译成功;


    7、在源文件上右击,然后选择添加=>现有项,找到刚刚编译的hello.c文件,然后添加进来;


    8、此时我们可以打开hello.c文件查看一下,发现proc编译器已经帮我们做了很多处理;


    9、我们直接运行整个项目,发现没有任何错误,并最终输出了helloproc的字符串,说明我们已经成功整合了proc。


    展开全文
  • proc c 20130905

    2013-09-05 20:13:41
    proc c 20130905
  • proc*c c++ 编程艺术

    2014-11-22 16:59:37
    oracle11g proc*c 编程艺术
  • PROC C开发文档

    2008-09-18 20:23:25
    proc c的程序概述 什么是proc c proc c程序设计的基础知识
  • 我们经常会遇到一些需要读取/proc文件的东西...我们经常使用的free top ps w这些命令也正是读取的/proc文件系统,今天突然有个想法我自己来读取/proc文件而不是用popen("free","r"),首先想到的肯定是参考free这些的...

    我们经常会遇到一些需要读取/proc文件的东西...我们经常使用的free top ps w这些命令也正是读取的/proc文件系统,今天突然有个想法

    我自己来读取/proc文件而不是用popen("free","r"),首先想到的肯定是参考free这些的源码,哈哈被我发现了,如此easy,系统已经很好的提供

    了一个libproc,系统装好后,会存在一个/lib/libproc-x.x.x.so  CentOS5.3就是(3.2.7)...这个so里就包含了我们要用的各种api,可惜

    遗憾的是我并没有找到系统提供给我们的头文件....  既然系统没有提供那么我们就自己动手丰衣足食了哦...

    下载procps-3.2.8.tar.gz也就是libproc-x.x.x.so的源程序... 这里procps-3.2.8/proc/下的.h就是我们想要的了, .c我们

    是可以删除的.因为那个so里已经有了...

    问了方便我们可以ln -s /lib/libproc-3.2.7.so  /lib/libproc.so

    编译的时候如free.c就可以直接 gcc -Wall -o free -l proc

    附件是我修改过之后的procps代码,我没有写Makefile  你需要什么自己编译...

    ps目录下的  也可以直接  gcc -Wall -o ps  全部的.c

    rar.gif

    文件:

    proc.rar

    大小:

    146KB

    下载:

    你可以在这个的基础上进一步的DIY,使得没有个源文件就是单一的源文件,根据自己的需求进一步修改....   open source就是好,我们的很多工作要做的仅仅是在现有的基础上进行一定的修改裁剪^_^

    展开全文
  • 嵌入式开发数据库PROC*C,教程; Oracle 8.0.4 ProC 开发环境,其他版本大同小异。 1. 环境变量 系统运行需要配置以下内容
  • 一.什么是pro程序 1.1通过在过程化编程语言中 嵌入sql语句开发出的应用程序 叫做pro程序。 1.2为什么要使用proc/c++ 想使用c或者c++ 这种高效的语言 成为... 二.proc 程序 和c 相同点不同点 需要导入头文件 就
      一.什么是pro程序
       1.1通过在过程化编程语言中 嵌入sql语句开发出的应用程序
       叫做pro程序。
       1.2为什么要使用proc/c++
       想使用c或者c++ 这种高效的语言 成为访问oracle数据库的
       工具。
       
       sql语句是嵌入在c 或者c++ 语言上
       c 和 c++ 是宿主语言
     二.proc 程序 和c 相同点和不同点
       需要导入头文件 就导入头文件 
       需要定义函数 就定义函数
       需要定义变量 就定义变量
       
       不同点需要在操作数据库的操作前加 exec sql
       包含一个和数据库操作相关的数据结构
       exec sql include sqlca;
       连接数据库
       exec sql connect:usernameandpasswd;
       查询数据
       exec sql select  first_name  into  :变量
           from s_emp where id=1;
       关闭数据库连接
       exec sql commit work release;
       exec sql rollback work release;
     三.写一个c程序的步骤
        3.1  编写源代码
             vi  ***.c 
        3.2  编译 链接
             gcc  ***.c   -l库名
        3.3  执行
             ./a.out
     四.写一个proc程序的步骤
        4.1  编写源代码
             vi   ***.pc 
        4.2  预编译  把pc文件变成c文件
             proc   ***.pc 
        4.3  编译链接
             gcc    ***.c   -lclntsh
                            -lorasql10                  
        4.4  执行
             ./a.out
                   
                   
        ftp   192.168.0.26
        openlab
        open123
        mkdir   文件夹
        cd      文件夹
        put     文件名 (上传文件)       
        get     文件名 (下载文件)     
             
     五.宿主变量
        5.1  概念
        使用宿主语言定义的变量。
        即可以在宿主语言中使用,又可以在sql语句中使用。
        5.2  宿主变量的类型
        char   
        char      var[n]   定长字符串
        short   
        int 
        long 
        float
        double 
        varchar   var[n]   变长字符串
        
        5.3  定长字符串 和 变长字符串
           定长   char     var[n];
           变长   varchar  var[n];
           在select语句中 要和正常变量一样去使用
           在宿主语言中  要使用.arr 取得数据 
                         .len 存放的是数据的长度   
        5.4  使用proc的预编译选项 来处理字符串
           gcc    -c   -E   -S
           proc   char_map=charz  定长  空格补齐  \0结尾
                          =charf|varchar2 定长 空格补齐
                          =string  变长  \0结尾  
        5.5  宿主变量的使用注意事项
           5.5.1 宿主变量 强烈建议放入申明区  
           exec sql  begin declare section;
             
           exec sql  end   declare section;    
           5.5.2 proc 中可以直接使用ddl
                 但ddl中不能使用宿主变量
           char  var_name[30]="s_emp";
           exec  sql   drop  table  var_name;      
           5.5.3 可以使用指针  但必须分配内存
                 对字符串的动态内存分配支持的不好
                 不建议使用
           5.5.4 宿主变量在sql语句中使用时 建议加上:
                       
           
     六. 指示变量
         6.1  作用
         当数据库中的字段值 赋值给宿主变量时 赋值的状态
         可以通过指示变量得到。
         ==0   代表赋值正常
         ==-1  数据库中的字段值是NULL值
         >0    代表截断赋值  尽量避免    
         6.2  语法
         必须是short类型的变量
         short  indname=0;
         short  indsal=0;
         exec sql select first_name,salary  into 
             :var_name:indname,:var_sal indicator :indsal  
             from s_emp where id=1;   
         6.3  例子
         把id=1 的 manager_id  赋值给一个宿主变量  赋值
         的状态通过指示变量 得到。
         
     七.数组变量 
        7.1 使用数组变量的注意事项
           只支持一维数组  字符除外   char data[50][30];
           不支持数组指针  
           最大元素个数 32767
           使用数组时 在select语句中 只能出现数组的名字
           不能出现数组的下标。
        7.2 举例
           把s_emp 表中所有的 first_name 和 manager_id 
           分别放入两个数组中  并且要指示manager_id 的
           赋值状态。  
     八.sqlca通信区
        exec sql  include sqlca;
        sqlca 实际上是一个结构体,在一个事务中 每执行一次
        sql语句,就会把这个结构体中字段更新一遍。所以我们
        要得到sql语句执行的信息 要立即获得 否则将下一条
        sql覆盖掉。
        sqlca.sqlerrd[2]  获得sql语句影响的行数
        sqlca.sqlcode     sql语句执行状态
            ==0    sql语句执行正常
            >0     出现异常
            <0     网络错误 或者数据库本身错误
        sqlca.sqlerrm.sqlerrmc   sql出错的原因
        
        转账操作?
        可以得到sql语句的状态
    九. oraca 通信区(了解)
        是对sqlca的信息补充。
        根据设置的条件得到sql语句
        9.1  包含oraca
        exec sql  include  oraca;
        9.2  打开oraca
        exec oracle    option(oraca=yes);
        9.3  设置sql的保存标志
        oraca.orastxtf
        =0   默认的 不保存sql文本
        =1   sql出错时保存
        =2   sql 出现警告 或者出错时保存
        =3   无论什么情况都保存
        9.4  得到sql文本
        oraca.orastxt.orastxtc
    十. proc 中如何嵌入sql语句
       10.1 如何嵌入select语句
           在select 语句前加exec sql
           结合into 把查询的内容放入宿主变量
       10.2 如何嵌入 dml(insert delete update)
                     ddl(create drop  alter)
                     tcl(commit  rollback savepoint) 
            在这些语句前加exec sql
            ddl 中不能使用宿主变量
            
       使用proc 连接数据库  在程序中建立一张表
       id     number   primary key
       name   varchar2(30)  unique
       并且判断建表是否成功
       然后使用 insert  向表中放入一条数据
       id 和name 的值来自于宿主变量
       然后判断是否插入成功 
       再使用 update语句 把 id=1 的 name 更新成
       'test'
       使用查询语句把 id=1 name 查询出来 放入宿主变量
       打印验证update的结果
    
    一.proc 中如何嵌入plsql
       1.1 proc程序中需要出现的代码
       exec  sql  execute
           begin
               /* 这里相当于匿名块 */
           end;
       end-exec;     
       
       1.2 首先 写一个存储过程准备调用
           设计一个存储过程 传入两个整数参数 
           把两个参数的和 存入第二个参数中。
       create or  replace  procedure getsum(
       x  in number,y in out number)
       is
       begin
           y:=x+y;
       end;
       
       1.3 预编译时 
           sqlcheck=semantics
           userid=用户名/密码  是在预编译时连接数据库
                  确定存储过程是否存在和合法。
           proc  ***.pc sqlcheck=semantics 
               userid=openlab/open123
           gcc  ***.c  -lclntsh     
       1.4 写一个函数 传入两个整数参数 返回两个参数的最大
           值。使用proc程序调用 验证函数的功能 
           要求函数的参数 必须采用宿主变量传入。
           create or replace function  getmax(
           x  in number,y in number)return number  
           is
           begin
               if x<y then
                  return  y;
               end if;
                  return  x;    
           end;
     二.数据库的连接
        2.1 本地数据库连接
        exec sql  connect:userpasswd;
        exec sql  connect:name  identified by  :password;         
        连接的数据库是  (数据库服务名)
        echo     $ORACLE_SID
        2.2 远程数据库连接
        $ORACLE_HOME/network/admin/tnsnames.ora 
        CAH_192.168.0.26 =
       (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.26)(PORT = 1521))
        )
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = tarena)
        )
        2.3 使用远程数据库描述连接远程数据库
             
           exec sql connect:userpassword at:标签名 using 远程数据库描述;
           exec sql connect:userpasswd at:标签名;
           只要在以后的每个操作前加上
           exec sql at :标签名   即可
        2.4 使用数据库链的方式 连接远程数据库
           create   database link  my26link 
           connect  to  openlab  identified  by open123
           using '(DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.26)(PORT = 1521))
        )
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = tarena)
        )';
           
         select  id,first_name from s_emp;
         select  id,first_name from s_emp@my26link;
         
         select  id,salary from 
             s_emp@my26link where id=15;
         update  s_emp@my26link  set salary=salary+100
             where  id=15;
         select  id,salary from 
             s_emp@my26link where id=15;        
         远程数据库数据操作的事务 完全交给本地操作来控制。
         
         a.根据语法建立数据库链接 
         b.在proc代码中使用数据库链接
           在表名后 跟上@链接名
     
     三.proc  中的错误处理
        sqlca.sqlcode  用来判断sql语句的执行状态
        sqlca.sqlerrm.sqlerrmc 当sql出错之后得到错误的
                               内容。
        是局部处理 还是全局处理   
        
        exec sql whenever  条件  动作;
        条件:sqlerror   notfound   sqlwarning 
        动作:do  错误处理函数();
             do  break;  用来终止循环
             continue;  忽略错误继续处理
             stop;
             goto  标签;         
       proc  对sql错误的处理 采用的是忽略 
        
     四.  数据的操作
        4.1 使用单个变量 一次操作单行单列
        exec sql  select first_name  into :var_name 
            from s_emp where id=1;   
        4.2 使用多个变量 一次操作单行多列
        exec sql  select id,first_name,salary  into
        :id,:name,:salary from s_emp where id=2;  
        4.3 使用结构体到达多个变量的效果
        
        4.4 多个数组操作 多行多列
        4.5 游标操作多行多列
    五. proc 中的游标操作
        5.1 游标的使用步骤
           声明游标
           exec sql  declare 游标名 cursor for select语句;
           打开游标
           exec sql  open  游标名;
           提取数据
           exec sql  fetch 游标名 into 宿主变量;
           关闭游标
           exec sql close  游标名;
        5.2 举例
           select  id,first_name,salary from s_emp;   
        5.3 如何遍历游标中所有的数据
           exec sql  whenever notfound  do break;   
        5.4 滚动游标(了解)
           (可以不按照顺序提取游标中的数据)        
            scroll
            fetch  last    最后一条
                   first   第一条
                   prior   当前行的前一条
                   next    当前行的下一条  
                   current  当前
                   relative  n  n是正数是向后
                                n是负数向前
                   absolute  n  绝对的第几个 
     六 动态sql
        把字符串 对应的sql语句当真正的sql来执行
        6.1  不能是select
             不能有占位符 
             exec sql  execute immediate :sqlstr;
        6.2  可以有占位符
             不能是select
             exec sql  prepare s  from :sqlstr;
             exec sql  execute s  using  宿主变量。
        6.3  只能是select语句
             可以有占位符 
             "select  id,first_name,salary from s_emp where id>:b0"
              
              动态sql2  和 游标的结合
              
    ------------------------------------------------------          
     触发器         
         进行dml 操作时  系统可以做出相应的动作。
         create table  testemp9526  as select id, first_name,salary from s_emp;    
         create  or  replace  trigger  testemp9526_tri
         before   update   on testemp9526 
         declare
         begin
             dbms_output.put_line('update testemp9526');
         end;
         
         update   testemp9526 set salary=salary+100 where id=1;
         update   testemp9526 set salary=salary+100 where id<1;
         update   testemp9526 set salary=salary+100 where id>1;
         语句级触发器  无论sql语句影响多少行  触发器只触发 一次。
         行级触发器:sql 语句影响多少行 就触发多少次
         create  or  replace  trigger  testemp9526_tri
         before   update   on testemp9526 for each row
         declare
         begin
             dbms_output.put_line(:old.id||':'||:old.salary); 
             dbms_output.put_line('update testemp9526');
             dbms_output.put_line(:new.id||':'||:new.salary); 
         end;
            
         update   :old   :new 
         delete   :old
         insert          :new
         
         
         触发器中 不能出现事务控制语句
         事务谁发起 谁结束。
         

    展开全文
  • multi_proc.c

    2013-06-10 09:16:18
    multi_proc.c 下载后直接编译运行
  • oracle proc*c设计

    2008-09-02 16:04:23
    oracle proc 接口编程。pdf文档。
  • 阅读 /proc 目录以获取有关作业、仅库的信息。 将其用于自己的程序。 使用现成的函数来获取作业的pid、ppid、name、status、uid,看看它们是否正在运行。
  • C语言proc程序设计教程 内容比较全
  • Linux proc fs阅读器API / proc文件系统包含有关运行进程linux内核的有用信息。 该程序提供简单的api,以获取有关进程的信息。 此数据可用于机器学习安全性测量 Menu: 1. "proc" - display the /proc ...
  • PROC程序设计ORACLE调用接口 PROC程序设计ORACLE调用接口
  • 1、proc目录是一个虚拟文件系统,可以为linux用户空间内核空间提供交互 它只存在于内存中,而不占实际的flash或硬盘空间 2、/proc/devices/里的设备是加载驱动程序时生成的 3、/dev/下的设备是通过创建设备节点...

    关于标题内容的几点解释:

    1、proc目录是一个虚拟文件系统,可以为linux用户空间和内核空间提供交互

    它只存在于内存中,而不占实际的flash或硬盘空间

    2、/proc/devices/里的设备是加载驱动程序时生成的

    3、/dev/下的设备是通过创建设备节点生成的,用户通过此设备节点来访问内核里的驱动
     

     

    /proc/devices/中的设备是通过insmod加载到内核的,它可产生一个major供mknod作为参数。
    /dev/*.* 是通过mknod加上去的,格式:mknod device1 c/b major minor 如:mknod dr1 c 254 0,用户通过此设备名来访问你的驱动。

     

    转载于:https://blog.csdn.net/dcx1205/article/details/45877345 

                  http://www.360doc.com/content/17/0603/14/35706938_659543238.shtml

    展开全文
  • proc c编译失败解决办法

    千次阅读 2013-11-22 16:57:52
    Proc C
  • /proc/partitions 的区别 命令:fdisk 用途:观察硬盘之实体使用情形与分割硬盘用 用法:在 console 上输入 fdisk -l /dev/sda ,观察硬盘之实体使用情形。 实例: fdisk -l Disk /dev/sda: 78.7 ...
  • linux proc

    2015-09-10 17:44:14
    linux proc
  • kernel/proc.c

    2010-03-23 09:02:00
    /* By Marcus Xing kernel/proc.c 与进程有关的处理在此*/#include "type.h"#include "const.h"#include "protect.h"#include "proc.h"#include "console.h"#include "tty.h"#include "global.h"#in
  • proc_control.c

    2017-04-13 19:34:07
    父进程创建多个子进程分别执行的代码
  • proc 文件的创建读写

    千次阅读 2021-03-08 17:53:35
    mydev.c #include <linux/module.h> #include <linux/moduleparam.h> #include <linux/init.h> #include <linux/kernel.h> #include <linux/proc_fs.h> #include <asm/uaccess.h&...
  • usbnet.c add proc

    2012-09-30 17:25:33
    usbnet.c,the driver of usb2net,add proc.
  • /proc

    2015-08-19 16:31:52
    1. /proc目录 Linux 内核提供了一种通过 /proc 文件系统,在运行时...用户应用程序可以通过proc得到系统的信息,并可以改变内核的某些参数。由于系统的信息,如进程,是动态改变的,所以用户或应用程序读取proc
  • EXEC SQL BEGIN DECLARE SECTION; char a[10000][3];...char c[3]; EXEC SQL END DECLARE SECTION; ... int delete_rows=10000; ... 1. CHAR类型数组变量 EXEC SQL for :delete_rows
  • Proc是对块及其context(局部变量的作用域以及栈框架)进行对象化处理之后得到的过程对象。您可以像使用无名函数那样来使用Proc,但它不会导入局部变量的作用域(可以把动态局部变量用作Proc局部变量)。 在下例中,正...
  • PROC*C编程基础

    千次阅读 2013-03-01 09:13:52
    PROC是ORACLE数据库提供的编程接口之一,其应用十分的广泛,本文通过一个具 体的例子,介绍PROC编程的一些经验及应注意的地方。  例子程序:  #include  #include  #include  #include  ...
  • proc/proc++程序设计

    2009-03-31 21:37:38
    经典的proc/proc++程序设计(英文版)

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 280,336
精华内容 112,134
关键字:

proc和c的区别