2个数据库A,B,A中有C表(字段汉字表达表),B中有D表(字段用英文表示),现要把D表中的字段要用C表中的汉字记录表示,如果C中无英文对照的汉字表达,仍用英文表示字段,同时输出记录到DBGird中 eg: D name ID Class C EnglishStr ChineseStr 王 1 01 name 姓名 输出:姓名 ID Class 王 1 01 请高手看看怎样表示 数据库A为MSSQL,数据库B为Access,采用ADOQuery查询
数据库A(SQLSERVER): 表C: EnglishStr, ChineseStr数据库B(ACCESS)(我把它放在C:\): 表D: NAME, ID, CLASSSelect (Case When (Select Distinct ChineseStr From A Where EnglishStr = TAccess.Name) Is Not Null Then (Select Distinct ChineseStr From A Where EnglishStr = TAccess.Name) Else TAccess.Name End) 姓名, TAccess.ID, TAccess.Class From (SELECT * FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'C:\B.mdb';'admin';'', D)) TAccess.....注意我假定ADOQUERY的CONNECTION是SQLSERVER
对不起, 上面的A应为C Select (Case When (Select Distinct ChineseStr From C Where EnglishStr = TAccess.Name) Is Not Null Then (Select Distinct ChineseStr From C Where EnglishStr = TAccess.Name) Else TAccess.Name End) 姓名, TAccess.ID, TAccess.Class From (SELECT * FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'C:\B.mdb';'admin';'', D)) TAccess.....注意我假定ADOQUERY的CONNECTION是SQLSERVER的数据库A
表C: EnglishStr, ChineseStr数据库B(ACCESS)(我把它放在C:\):
表D: NAME, ID, CLASSSelect (Case When (Select Distinct ChineseStr From A Where EnglishStr = TAccess.Name) Is Not Null Then
(Select Distinct ChineseStr From A Where EnglishStr = TAccess.Name) Else
TAccess.Name End) 姓名, TAccess.ID, TAccess.Class
From (SELECT * FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'C:\B.mdb';'admin';'', D)) TAccess.....注意我假定ADOQUERY的CONNECTION是SQLSERVER
(Select Distinct ChineseStr From C Where EnglishStr = TAccess.Name) Else
TAccess.Name End) 姓名, TAccess.ID, TAccess.Class
From (SELECT * FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'C:\B.mdb';'admin';'', D)) TAccess.....注意我假定ADOQUERY的CONNECTION是SQLSERVER的数据库A