当前位置:首页
开发技术指南» 文章正文
    引言:
 

 

    摘要: 我前段时间做过短信模块,是用vb6.0开发的。我想把它改成vc版的,但我对vc不是很熟,请高手给我讲一下用怎样用vc实下面的功能,比如:1.怎样更串口通讯;2.怎样把字符转换成unicode编码;3.怎样把at指令发到串口去;4.判断是否发送成功。最好写一些代码,举例子更能说明问题。请尽快给我会信,谢谢。 ......
 ·高手请帮忙    »显示摘要«
    摘要: 我想实现这样一个功能: 怎样记录每个登陆人员的用户名和有那些表是由他们操作的? 就是记录他们的工作,可以查询在很多表中,那些那些表是由他们处理的 ......


隐式游标和显示游标的综合运用问题--

我建立了:  
  业务员表   businessman(b_id,b_name,b_sex,b_age,b_msalary,b_workyear,b_tel)  
                            即是:  
  业务员销售视图   view_b_sales(b_id,b_name,b_o_t_price)  
                                          即是:  
    我需要用显示游标和隐式游标完成以下功能:将业务员销售总金额前三名的业务员的“月薪”加10元钱,然后还想给销售额的第一名再加10元钱。  
       
        我用显示游标可以实现给业务员销售总金额前三名的业务员的“月薪”加10元钱,但是不知道如何结合隐式游标完成----还想给销售额的第一名再加10元钱??  
         
    create   or   replace   procedure   p_sales   as  
        sales_id   view_b_sales.b_id%type;  
        sales_name   view_b_sales.b_name%type;  
        sales_price   view_b_sales.b_o_t_price%type;  
        cursor   sales_cur   is  
          select   *  
          from   view_b_sales  
          order   by   b_o_t_price;  
        n   number;  
        counter   number;  
        begin  
              open   sales_cur;  
        counter:=1;  
        select   count(*)   into   n   from   view_b_sales;  
      while   counter<=n   loop  
      fetch   sales_cur   into   sales_id,sales_name,sales_price;  
      对销售额前三名的业务员月薪加10元钱  
      if   sales_cur%rowcount>=(n-2)   then  
          update   businessman   set   b_msalary=b_msalary+10   where   b_id=sales_id;  
      end   if;  
      counter:=counter+1;  
      end   loop;  
      close   sales_cur;  
      end;  
    注解:以上程序的思路是:用显示游标,将view_b_sales的销售金额,然后修改businessman表中的业务员月薪(b_msalary),我之所以要将销售金额按照升序排列,是因为显示游标指到最后一行记录的时候,才能激发隐式游标,即销售额第一名的业务员,从而用隐式游标完成“对销售额第一名的月薪再加10元钱”的操作。  
      请哪位帮我解答一下,谢谢了!!  
 

NO.1   作者: beckhambobo

create   or   replace   procedure   p_sales    
  as  
  cursor   t_sor   is  
  select   *  
          from   (select   *   from   view_b_sales  
          order   by   b_o_t_price   desc)   where   rownum<4;  
  n   number:=0;  
  begin  
  for   v_sor   in   t_sor   loop  
  n:=n+1;  
  update   businessman   set   b_msalary=b_msalary+10   where   b_id=v_sor.sales_id;  
  if   n=1   then  
  update   businessman   set   b_msalary=b_msalary+10   where   b_id=v_sor.sales_id;  
  end   if;  
  end   loop;  
  end;  
  /

NO.2   作者: jiezhi

beckhambobo是游标for循环--一种最简单形式的游标。

NO.3   作者: beckhambobo

你那过程性能你自已最清楚。  
  v_sor确是一个变量(对象实例),你可以参考游标方面书籍,有详细介绍.  
  v_sor.sales_id是引用sales_id它的值.


    摘要: 不要复杂的功能,只要可以在代码中设置图片即可(无需图文混排) 多谢。 ......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE