Oracle与Sql Server的问题
我首先要在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 Sub
function 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
请问两者怎么联系起来呢?
问题点数:50、回复次数:6Top
1 楼zhangzs8896(小二)回复于 2005-02-21 10:28:57 得分 0
改一点:
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
Top
2 楼zhangzs8896(小二)回复于 2005-02-21 10:39:09 得分 0
其实也就是汇总的问题,我想。
如果我的数据集为:
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的客户端Top
3 楼Leftie(左手,为人民币服务)回复于 2005-02-21 10:56:47 得分 25
strsql=" select id,material,sum(weight) as weight from tablename group by id,material"Top
4 楼zhangzs8896(小二)回复于 2005-02-21 11:06:30 得分 0
我好象没说明白,我的实际数据是在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
Top
5 楼XLYT(雨田)回复于 2005-02-21 16:11:56 得分 25
先在SQL SERVER里建一个临时表,结构和ORACLE里的一样,再把ORACLE里的记录导到SQL SERVER里,然后再在SQL SERVER里做个JOIN。Top
6 楼zhangzs8896(小二)回复于 2005-02-21 16:20:02 得分 0
那样的话还要时时的导入数据吗?因为oracle中的内容是不断增加的,而Sql中是个固定的对照表。Top




