我用oradc控件连oracle
用oradc1.Refresh执行insert语句后。oracle数据还是空白一片?请问是什么原因?

解决方案 »

  1.   

    Oracle数据库直接执行SQL语句是不行的,虽然已经提示成功了,但是数据实际是在内存里面并没有写进数据库里面的,还需要有个Commit的指令才能够正式写到Oracle数据库里面去的。
      

  2.   

    怎么加commit ?
    例如以下:Dim cnGet As ADODB.Connection
    Dim rsGet As ADODB.Recordset
    Dim sConnect, sSql As StringsConnect = "Provider=OraOLEDB.Oracle.1;Persist Security Info=False;Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.10.56)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=myoracle)));User ID=hire;Password=hire;"Set cnGet = New ADODB.Connection
    cnGet.Open sConnect
    Set rsGet = New ADODB.Recordset
    sSql = "insert into sys_time (road_no,sys_time,user_name,modified_date) values (1,2,3,4)"
    cnGet.Execute sSql为什么oracle还是没写入记录?又没有提示出错. 我用的是oracle9i
      

  3.   

    sSql = "insert into sys_time (road_no,sys_time,user_name,modified_date) values (1,2,3,4)"
    sSql = sSql & ";" & VBcrlf & "commit;"
      

  4.   

    192.168.10.56 里的oracle数据库中还是空白,什么记录也没有
      

  5.   

    Dim cnGet As ADODB.Connection
    Dim rsGet As ADODB.Recordset
    Dim sConnect, sSql As String
    sConnect = "Provider=OraOLEDB.Oracle.1;Persist Security Info=False;Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.10.56)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=myoracle)));User ID=hire;Password=hire;"
    Set cnGet = New ADODB.Connection
    cnGet.Open sConnect
    Set rsGet = New ADODB.RecordsetsSql = "insert into sys_time (road_no,sys_time,user_name,modified_date) values (1,null,null,null)"
    sSql = sSql & ";" & vbCrLf & "commit;"
    cnGet.Execute sSql
      

  6.   

    sys_time和modified_date应是日期吧,值为空,为什么还要插入
    sSql = "insert into sys_time (road_no) values (1)"