【发布时间】:2016-02-10 02:37:44
【问题描述】:
我正在处理一个遗留的 VB6 项目,我需要像这样进行 JOIN 调用:
SELECT C.Cnum, C.RealDate, M.Name, R.Price, R.Qnt, R.RealPrice, R.QntP, R.QntR, M.Name
FROM "CHECK" C
LEFT JOIN "RCHECK" R ON C.Cnum = R.Cnum
LEFT JOIN "PCHECK" P ON C.Cnum = P.Cnum
LEFT JOIN "MONEY" M ON P.Curency = M.Sifr
LEFT JOIN "MENU" MN ON R.Sifr = MN.Sifr
WHERE C.Cnum > 0 ORDER BY C.Cnum
我使用"Driver={Microsoft Paradox Driver (*.db )};DriverID=538" 作为连接字符串的一部分,但它似乎不支持多个连接!这很奇怪。
任何想法如何解决/解决它?
是的,当我在 Borland Database Desktop 中运行此查询时,它运行良好。
更新 1:
我的 VB 代码:
Dim Conn As New ADODB.Connection
Dim sConnStr As String
Dim sQuery As String
sConnStr = "Driver={Microsoft Paradox Driver (*.db )};DriverID=538;Fil=Paradox 5.X;CollatingSequence=ASCII;DBQ=C:\DBTOFTP\BUFF;DefaultDir=C:\DBTOFTP\BUFF;PWD=SOMEPASS;"
sQuery = "SELECT C.Cnum, C.RealDate, M.Name, R.Price, R.Qnt, R.RealPrice, R.QntP, R.QntR, M.Name " & _
"FROM ""CHECK"" C " & _
"LEFT JOIN ""RCHECK"" R ON C.Cnum = R.Cnum " & _
"LEFT JOIN ""PCHECK"" P ON C.Cnum = P.Cnum " & _
"LEFT JOIN ""MONEY"" M ON P.Curency = M.Sifr " & _
"LEFT JOIN ""MENU"" MN ON R.Sifr = MN.Sifr " & _
"WHERE C.Cnum > 0 " & _
"ORDER BY C.Cnum"
Conn.ConnectionString = sConnStr
Conn.Open
【问题讨论】:
-
已验证查询使用单个
LEFT JOIN运行,但随后失败 2 次或更多次? -
是的,它只适用于单个,但适用于 2 个或更多:(
-
您能否向我们展示一下执行此查询的相关 VB 代码?
-
好的,更新了问题