summaryrefslogtreecommitdiff
path: root/wizards
diff options
context:
space:
mode:
authorJean-Pierre Ledure <jp@ledure.be>2016-11-02 16:51:12 +0100
committerJean-Pierre Ledure <jp@ledure.be>2016-11-02 16:56:11 +0100
commit9e93ae3ddc2262ae98abf1ce50a5ea154bd00192 (patch)
tree1cb0fd1c6d05e354849c20981b4606d71d5b7efa /wizards
parentf9f1042773795aa82bc0034122fac8271e3dabc7 (diff)
Access2Base - Simplify CopyObject
Avoid Field object buffering in CopyObject as it is now done in the Recordset class Change-Id: I35ee9e953e27554cb361adbb22baa619e4b73aaf
Diffstat (limited to 'wizards')
-rw-r--r--wizards/source/access2base/DoCmd.xba22
1 files changed, 10 insertions, 12 deletions
diff --git a/wizards/source/access2base/DoCmd.xba b/wizards/source/access2base/DoCmd.xba
index f85f3c0f615d..d13bce69b93e 100644
--- a/wizards/source/access2base/DoCmd.xba
+++ b/wizards/source/access2base/DoCmd.xba
@@ -209,7 +209,7 @@ Dim oSourceTable As Object, oSourceColumns As Object, oSourceCol As Object, oTar
Dim oSourceKeys As Object, oSourceKey As Object, oTargetKey As Object
Dim i As Integer, j As Integer, sSql As String, vPrimaryKeys() As Variant
Dim vNameComponents() As Variant, iNames As Integer, sSurround As String
-Dim vInputFields() As Variant, vFieldBinary() As Variant, vOutputFields() As Variant
+Dim vInputField As Variant, vFieldBinary() As Variant, vOutputField As Variant
Dim oInput as Object, oOutput As Object, iNbFields As Integer, vValue As Variant
Dim vBinary As Variant, lInputSize As Long, lOutputSize As Long
Dim lInputRecs As Long, lInputMax As Long, vField As Variant, bProgressMeter As Boolean, sFile As String
@@ -318,14 +318,10 @@ Const cstProgressMeterLimit = 100
bProgressMeter = ( lInputMax &gt; cstProgressMeterLimit )
iNbFields = .Fields().Count - 1
- vInputFields = Array()
vFieldBinary = Array()
- vOutputFields = Array()
- ReDim vInputFields(0 To iNbFields), vFieldBinary(0 To iNbFields), vOutputFields(0 To iNbFields)
+ ReDim vFieldBinary(0 To iNbFields)
For i = 0 To iNbFields
- Set vInputFields(i) = .Fields(i)
- vFieldBinary(i) = Utils._IsBinaryType(vInputFields(i).Column.Type)
- Set vOutputFields(i) = oOutput.Fields(i)
+ vFieldBinary(i) = Utils._IsBinaryType(.Fields(i).Column.Type)
Next i
Else
bProgressMeter = False
@@ -335,20 +331,22 @@ Const cstProgressMeterLimit = 100
oOutput.RowSet.moveToInsertRow()
oOutput._EditMode = dbEditAdd
For i = 0 To iNbFields
+ Set vInputField = .Fields(i)
+ Set vOutputField = oOutput.Fields(i)
If vFieldBinary(i) Then
- lInputSize = vInputFields(i).FieldSize
+ lInputSize = vInputField.FieldSize
If lInputSize &lt;= cstMaxBinlength Then
vField = Utils._getResultSetColumnValue(.RowSet, i + 1, True)
Utils._updateResultSetColumnValue(iRDBMS, oOutput.RowSet, i + 1, vField)
ElseIf oDatabase._BinaryStream Then
&apos; Typically for SQLite where binary fields are limited
- If lInputSize &gt; vOutputFields(i).Column.Precision Then
- TraceError(TRACEWARNING, ERRPRECISION, Utils._CalledSub(), 0, 1, Array(vOutputFields(i)._Name, lInputRecs + 1))
+ If lInputSize &gt; vOutputField.Column.Precision Then
+ TraceError(TRACEWARNING, ERRPRECISION, Utils._CalledSub(), 0, 1, Array(vOutputField._Name, lInputRecs + 1))
Utils._updateResultSetColumnValue(iRDBMS, oOutput.RowSet, i + 1, Null)
Else
sFile = Utils._GetRandomFileName(&quot;BINARY&quot;)
- vInputFields(i)._WriteAll(sFile, &quot;WriteAllBytes&quot;)
- vOutputFields(i)._ReadAll(sFile, &quot;ReadAllBytes&quot;)
+ vInputField._WriteAll(sFile, &quot;WriteAllBytes&quot;)
+ vOutputField._ReadAll(sFile, &quot;ReadAllBytes&quot;)
Kill ConvertToUrl(sFile)
End If
End If