Overflow when looping through SQL-inserts for an ADODB.connection

  1. jotun1985
    jotun1985
    Hello everyone,

    I am trying to figure out a quick, automatized way to insert some real-time date from a financial service provider into excel, which can only be fetched with an excel-plugin in blocks of roughly 100,000 values.
    At the moment I am using the code below and so far it seems to be working as expected:

    My current problem is as soon as I increase the counter i to 3, thus inserting more than 30000 with the for-loop, it results in an overflow-error. I already tried to split it up in smaller blocks and a counter going to 49: Similar error.

    The referenced cells in the sheet 'prices' seem all correct. That's why I am only posting the VBA-code here. As I am not really familiar with VBA and the limitations of the used objects, I would expect the issue there and maybe someone with more VBA-experience here can see it at a glance.

    Any advice is highly appreciated and thank you very much for your time to read this post. Hope I could at least make my case clear enough.
  2. jotun1985
    jotun1985
    Sub insert()

    'Declare Variables
    Dim conn As ADODB.Connection
    Dim rs As ADODB.Recordset
    Dim sConnString As String

    Dim ColumnsSchema As ADODB.Recordset

    Dim rsT As Variant

    Dim i As Integer

    For i = 0 To 2

    rsT = Join(Application.Transpose(ThisWorkbook.Sheets("Prices").Range(Cells(3 + i * 10000, 9), Cells(10002 + i * 10000, 9)).Value), " ")


    ' Create the connection string.
    sConnString = "Provider=SQLOLEDB;Data Source=DB1;" 'rest of the string blackened


    ' Create the Connection and Recordset objects.
    Set conn = New ADODB.Connection
    Set rs = New ADODB.Recordset

    'Open the connection and execute.
    conn.Open sConnString

    Set rs = conn.Execute(rsT)


    Next i

    ' Clean up


    If CBool(conn.State And adStateOpen) Then conn.Close
    Set conn = Nothing
    Set rs = Nothing


    End Sub
  3. Artik
    Artik
    Your problem is the type of the variable i. It should be of the Long type. It doesn't make sense to use the Integer type at this time. It is implicitly converted to Long when the macro runs.

    Artik
Results 1 to 3 of 3

Search Engine Friendly URLs by vBSEO 3.6.0 RC 1