我首先要在Oracle中得到数据集MyRs:
MyRs的样子是这样的
ID Material  Weight
1  a1        0.5
1  a2        1.6
2  a1        2.5--Sql Server中有对照表:
Mat   Material
A     a1
A     a2--我想得到这样的数据集合
ID Material  Weight
1   A        2.1
2   A        2.5-------我的部分代码如下:
Sub CheckData()
  Dim MyCon As New ADODB.Connection
  Dim MyRs As New ADODB.Recordset
  Dim ConStr As String
  ConStr = "Provider=OraOLEDB.Oracle.1;Persist Security Info=False;User ID=tpco1;PassWord=tpco1;Data Source=L2DB"
  On Error GoTo Error:
  MyCon.ConnectionString = ConStr
  MyCon.CommandTimeout = 0
  MyCon.Open
  MyRs.CursorLocation = adUseClient
  MyRs.ActiveConnection = MyCon
  Dim MySqlStr As String
  MySqlStr = "select * from erp_check_charge order by heat_no"
  MyRs.Open MySqlStr
  Set DataGrid1.DataSource = MyRs
  DataGrid1.Refresh
  Exit Sub
Error:
  MsgBox Err.Description, vbOKOnly, "error"
End Subfunction m(byval material string)
  Dim MyCon As New ADODB.Connection
  Dim MyRs As New ADODB.Recordset
  Dim ConStr As String
  ConStr = "Provider=OraOLEDB.Oracle.1;Persist Security Info=False;User ID=tpco1;PassWord=tpco1;Data Source=L2DB"
  On Error GoTo Error:
  MyCon.ConnectionString = ConStr
  MyCon.CommandTimeout = 0
  MyCon.Open
  MyRs.CursorLocation = adUseClient
  MyRs.ActiveConnection = MyCon
  Dim MySqlStr As String
  MySqlStr = "Select mat from ERP_MOI_10 where material=" + "'" + material + "'"
  MyRs.Open MySqlStr
  m = MyRs("mat").Value
  Exit Function
Error:
  MsgBox Err.Description, vbOKOnly, "error"
end function请问两者怎么联系起来呢?

解决方案 »

  1.   

    改一点:
    function m(byval material string)
      Dim MyCon As New ADODB.Connection
      Dim MyRs As New ADODB.Recordset
      Dim ConStr As String
      ConStr = sqlServer连接串
      On Error GoTo Error:
      MyCon.ConnectionString = ConStr
      MyCon.CommandTimeout = 0
      MyCon.Open
      MyRs.CursorLocation = adUseClient
      MyRs.ActiveConnection = MyCon
      Dim MySqlStr As String
      MySqlStr = "Select mat from ERP_MOI_10 where material=" + "'" + material + "'"
      MyRs.Open MySqlStr
      m = MyRs("mat").Value
      Exit Function
    Error:
      MsgBox Err.Description, vbOKOnly, "error"
    end function
      

  2.   

    其实也就是汇总的问题,我想。
    如果我的数据集为:
    ID Material  Weight
    1  A        0.5
    1  A        1.6
    2  A        2.5如何转换为:
    ID Material  Weight
    1  A        2.1
    2  A        2.5好象也在存储过程好点,但现在想在程序里写,因为我只是oracle的客户端
      

  3.   

    strsql=" select id,material,sum(weight) as weight from tablename group by id,material"
      

  4.   

    我好象没说明白,我的实际数据是在Oracle上,对照表在Sql Server上。
    我可以从Oracle得到数据集MyRs
    ID Material  Weight
    1  a1        0.5
    1  a2        1.6
    2  a1        2.5
    结合Sql server的对照表,可以得到
    ID Material  Weight
    1  A        0.5
    1  A        1.6
    2  A        2.5--请问这个时候再怎么汇总得到:
    ID Material  Weight
    1  A        2.1
    2  A        2.5
      

  5.   

    先在SQL SERVER里建一个临时表,结构和ORACLE里的一样,再把ORACLE里的记录导到SQL SERVER里,然后再在SQL SERVER里做个JOIN。
      

  6.   

    那样的话还要时时的导入数据吗?因为oracle中的内容是不断增加的,而Sql中是个固定的对照表。