Paradox DB SQL多重联接
我正在处理一个旧版VB6项目,需要进行如下连接调用:Paradox DB SQL多重联接,sql,vb6,paradox,Sql,Vb6,Paradox,我正在处理一个旧版VB6项目,需要进行如下连接调用: 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.S
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
FROM
(
"CHECK" C
INNER JOIN
"RCHECK" R
ON C.Cnum = R.Cnum
)
INNER JOIN
"PCHECK" P
ON P.Cnum = C.Cnum
我使用“Driver={Microsoft Paradox Driver(*.db)};DriverID=538”
作为连接字符串的一部分,但它似乎不支持多个连接!这很奇怪
有没有办法解决/解决这个问题
是的,当我在Borland数据库桌面上运行这个查询时,它工作得很好
更新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
一些旧的驱动程序通常要求多个连接必须用括号括起来 试着这样做:
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
FROM
(
"CHECK" C
INNER JOIN
"RCHECK" R
ON C.Cnum = R.Cnum
)
INNER JOIN
"PCHECK" P
ON P.Cnum = C.Cnum
是否已验证查询使用单个
左联接运行,但随后失败2次或2次以上?是的,它使用单个联接运行,失败2次或2次以上:(您是否也可以向我们显示执行此查询的相关VB代码?当然,更新了类似问题的数学运算,只为每个运算添加了更多括号。Microsoft Access创建了他的“连接”有了这个“括号地狱”,你可以用它来创建你的查询。你能展示一下这4个连接的例子吗?我试图用括号添加第三个连接,结果显示了一个错误…选择TA.fieldA,TB.fieldB,TC.fieldC,TD.fieldD FROM((TA.id=TB.aid上的TA内部连接TB)TB.id=TC.bId上的内部连接TC)TC.id上的内部连接TD=TD.cId;