summaryrefslogtreecommitdiff
path: root/wizards/source/access2base/Database.xba
diff options
context:
space:
mode:
Diffstat (limited to 'wizards/source/access2base/Database.xba')
-rw-r--r--wizards/source/access2base/Database.xba30
1 files changed, 20 insertions, 10 deletions
diff --git a/wizards/source/access2base/Database.xba b/wizards/source/access2base/Database.xba
index 84f1112d745c..968d394aa8ee 100644
--- a/wizards/source/access2base/Database.xba
+++ b/wizards/source/access2base/Database.xba
@@ -979,19 +979,29 @@ Dim oStatement As Object 'For CreateStatement method
Dim sExpr As String 'For inclusion of aggregate function
Dim sTempField As String 'Random temporary field in SQL expression
- vResult = Null
+Dim sTarget as String, sWhere As String, sOrderBy As String, sLimit As String
- If psFunction = "" Then sExpr = "TOP 1 " & psExpr Else sExpr = UCase(psFunction) & "(" & psExpr & ")"
+ vResult = Null
Randomize 2^14-1
- sTempField = "TEMP" & Right("00000" & Int(100000 * Rnd), 5)
- sSql = "SELECT " & sExpr & " AS [" & sTempField & "] FROM " & psDomain
- If pvCriteria <> "" Then
- sSql = sSql & " WHERE " & pvCriteria
- End If
- If pvOrderClause <> "" Then
- sSql = sSql & " ORDER BY " & pvOrderClause
- End If
+ sTempField = "[TEMP" & Right("00000" & Int(100000 * Rnd), 5) & "]"
+ If pvCriteria <> "" Then sWhere = " WHERE " & pvCriteria Else sWhere = ""
+ If pvOrderClause <> "" Then sOrderBy = " ORDER BY " & pvOrderClause Else sOrderBy = ""
+ sLimit = ""
+
+ Select Case UCase(MetaData.getDatabaseProductName())
+ Case "MYSQL", "SQLITE"
+ If psFunction = "" Then
+ sTarget = psExpr
+ sLimit = " LIMIT 1"
+ Else
+ sTarget = UCase(psFunction) & "(" & psExpr & ")"
+ End If
+ sSql = "SELECT " & sTarget & " AS " & sTempField & " FROM " & psDomain & sWhere & sOrderBy & sLimit
+ Case Else ' Standard syntax - Includes HSQLDB
+ If psFunction = "" Then sTarget = "TOP 1 " & psExpr Else sTarget = UCase(psFunction) & "(" & psExpr & ")"
+ sSql = "SELECT " & sTarget & " AS " & sTempField & " FROM " & psDomain & sWhere & sOrderBy
+ End Select
'Lookup the value.
Set oStatement = Connection.createStatement()