access调用oracle的存储过程,那么怎么设置排他过程?

解决方案 »

  1.   

    在存储过程中添加
    LOCK TABLE emp 
    IN EXCLUSIVE MODE 
    NOWAIT;
      

  2.   

    在存储过程中直接加上这句话就可以啦?那么在ACCESS中如何设置排他处理?
      

  3.   

    access中不用管啦,原来怎么写的,就怎么写
      

  4.   

    我的意思是:怎么在access中设置排他过程,使处理access中的表时,控制access中的表,使access表有排他的处理??
      

  5.   

    Dim Conn As ADODB.Connection
    Dim Rs As ADODB.Recordset
    Set Conn = New ADODB.Connection
    Set Rs = New ADODB.Recordset
    Conn.ConnectionString = ""
    'Conn.Mode = adModeShareExclusiveRs.ActiveConnection = Conn
    'Rs.Open "select * from 表1", Conn, adOpenDynamic, adLockReadOnlyRs.Close
    Conn.Close
    Set Conn = Nothing
    Set Rs = Nothing被注释掉的两句话,分别代表两种方法,你可以随选
      

  6.   

    用你给的程序,对ORACLE d的存储过程进行排他处理,会出错。以下是错误:
     PLS-00103: 記号"LOCK"が見つかりました。 次のうちの1つが入るとき:  . , @    ; for <an identifier> <a double-quoted delimited-identifier>    group having intersect minus order partition start    subpartition union where connect SAMPLE_ 記号";" は続行のために"LOCK"に代わりました。 我的系统是日文,所以有的地方显示的是日文。
    你看以上的错误是什么原因??
      

  7.   

    我想做兩個排他處理。現在想解決對oracle 的排他處理,存儲過程程序如下:
     (
     msttxt90 in T_SYSTEM_INFO.SYS_PAR%TYPE                --從access中传入的参数
     msttxt102 in V_IZUMIYA_DELIVERY.SALESDATE%TYPE        --從access中传入的参数
     )
    as
    TSISP1 T_SYSTEM_INFO.SYS_PAR%TYPE;                     --定义类型CURSOR CUR1 IS                                         --定义游标
    SELECT  USER_ID  
    FROM  T_USER
    where  LAST_CHANGE > msttxt102;
    CUR1_REC  CUR1%ROWTYPE;CURSOR CUR2 IS                                        --定义游标
    SELECT DELINO, OKANA, ONAME,OTELNO,OZIPCD,OADDRESS1,OADDRESS2,OADDRESS3,SALESDATE,IKANA,INAME,ITELNO--STORE,                            -- 这是一个字段,但是在oracle 中他是显示蓝色的,默  认值,再oracle中  "STORE"  是什么?   FROM  V_IZUMIYA_DELIVERY  
     WHERE SALESDATE > msttxt102 
       AND SYS_PAR <= msttxt90
        AND  GOODSCD LIKE '%800';
    CUR2_REC  CUR2%ROWTYPE;    
        beginSELECT SYS_PAR 
    into TSISP1
    FROM T_SYSTEM_INFO WHERE  INFO_CODE=0001;
       
    OPEN CUR1;
    LOOP
      FETCH CUR1 INTO CUR1_REC;
      EXIT WHEN CUR1%NOTFOUND;
         
         OPEN CUR2;
         LOOP
           FETCH CUR2 INTO CUR2_REC;
           EXIT WHEN CUR2%NOTFOUND;
         
               INSERT INTO  T_CUSTOMSER_INFO
                            (CONTROL_NO,DATA_KBN, DELIVERY_NUMBER,OIBAN,
                            --STORE_CODE,
                            O_FURIKANA,O_NAME,O_PHONE_NUMBER,O_POST_NUMBER, O_ADDRESS1, O_ADDRESS2, O_ADDRESS3, BUY_DATE,
                            I_FURIKANA,I_NAME,I_PHONE_NUMBER,UPDATA_DATE,UPDATE_PERSON,ENTRY_DATE,ENTRY_PERSON)
               VALUES(gstrtxt90,0,CUR2_REC.DELINO,1,
               --CUR2_REC.STORE,
                      CUR2_REC.OKANA,CUR2_REC.ONAME,CUR2_REC.OTELNO, CUR2_REC.OZIPCD,CUR2_REC.OADDRESS1,
                      CUR2_REC.OADDRESS2,CUR2_REC.OADDRESS3,CUR2_REC.SALESDATE,CUR2_REC.IKANA,CUR2_REC.INAME,
                      CUR2_REC.ITELNO,msttxt90,CUR1_REC.USER_ID,msttxt90,CUR1_REC.USER_ID);       
      
          END LOOP;
          CLOSE CUR2;
      
    END LOOP;
    CLOSE CUR1;LOCK TABLE T_CUSTOMER_INFO 
    IN EXCLUSIVE MODE 
    NOWAIT;end;以上存储过程要怎么排他处理?上面显示 “ -- ”  是我的解释和出现的问题。
      

  8.   

    1. 看不出给T_CUSTOMER_INFO表加锁和你过程中其它操作有什么关系
    2. LOCK TABLE T_CUSTOMER_INFO 
       IN EXCLUSIVE MODE 
       NOWAIT;这个应该没问题,你拿掉后过程就能成功编译了吗?
      

  9.   

    LOCK TABLE T_CUSTOMER_INFO 
    IN EXCLUSIVE MODE 
    NOWAIT;這個是對oracle中  T_CUSTOMER_INFO  表的枷鎖,但是我在access 中調用存儲過程,更新這個表的同時,可能還有其他的人對這個表操作,但不是調用存儲過程,而是在access 中直接打開oracle 表,對oracle更新,所以我要加鎖,在這樣的條件下,還是用你給的方法,在oracle 中加鎖嗎?
    如果不用上述的方法,那麽要用什麽方法呢?
      

  10.   

    access 中直接打開oracle 表,對oracle更新这要在ADO中设,如我上面第三个回复中
      

  11.   

    在MSDN上看看ADO的用法,在你程序中找找问题
      

  12.   

    在oracle 中是否有 STORE ,NO CONTENTS 默認值?在存儲過程中的更新操作如果有這些字段,而且顯示藍色,為默認值,要怎麽處理?
      

  13.   

    如果有影响的话,用"STORE"(加上双引号)