Application Note for QuNect ODBC for Quick Base

VB.Net Console Application for Uploading Files from a Directory to a Quick Base Table

This console application takes five command line arguments.

Please note that this code will delete files that have been succesfully uploaded! An example command line setting the field with a FID of 6 to 'AutoUpload' appears below. Notice that text string values must be enclosed in single quotes.

		C:\QuNect>QuNectFileUpload.exe "QuickBase via QuNect 64 bit" "C:\Users\claude\Downloads" bc45c8xjn 9 6 "'Auto Uploaded'"

Please note that the code below code will delete files that have been succesfully uploaded!

Imports System.Data.Odbc
Imports System.IO
Imports System.Text.RegularExpressions
Module upload
    Private Class qdbVersion
        Public year As Integer
        Public major As Integer
        Public minor As Integer
    End Class
    Private qdbVer As qdbVersion = New qdbVersion
    Private dbid As String
    Private fid As String
    Private QuNectConnection As OdbcConnection
    Private fids As String
    Private fidValues As String
    Sub Main(ByVal arguments As String())
        If arguments.Length < 4 Then
            Console.WriteLine("Please supply at least four command line arguments:")
            Console.WriteLine("QuNectFileUpload ""DSN"" ""Path\To\Folder"" dbid fid")
            Exit Sub
        End If
        If arguments.Length Mod 2 = 1 Then
            Console.WriteLine("Please supply an even number of command line arguments.")
            Exit Sub
        End If
        dbid = arguments(2)
        fid = arguments(3)
        Dim isFID As Regex = New Regex("^[1-9][0-9]*$")
        Dim match As Match = isFID.Match(fid)
        If Not match.Success Then
            Console.WriteLine("{0} Is not a valid fid.", fid)
            Exit Sub
        End If
        fids = "fid" & fid
        For i As Integer = 4 To arguments.Length - 1 Step 2
            fids &= ", fid" & arguments(i)
            fidValues &= ", " & arguments(i + 1)
        QuNectConnection = getquNectConn("DSN=" & arguments(0))
        If QuNectConnection Is Nothing Then
            Exit Sub
        End If
        Dim fileFolder As String = arguments(1)
        If Directory.Exists(fileFolder) Then
            ' This path is a directory.
            Console.WriteLine("{0} is not a valid directory.", fileFolder)
            Exit Sub
        End If
    End Sub
    Private Function getquNectConn(connectionString As String) As OdbcConnection
        Dim quNectConn As OdbcConnection
            quNectConn = New OdbcConnection(connectionString)
        Catch excpt As Exception
            If excpt.Message.StartsWith("Error [IM003]") Or excpt.Message.Contains("Data source name Not found") Then
                Console.WriteLine("Please install QuNect ODBC For Quick Base from http: // and try again.")
                Console.WriteLine("Could not open ODBC connection with connection string '{0}' because {1}", connectionString, excpt.Message)
            End If
            Return Nothing
            Exit Function
        End Try
        Dim ver As String = quNectConn.ServerVersion
        Dim m As Match = Regex.Match(ver, "\d+\.(\d+)\.(\d+)\.(\d+)")
        qdbVer.year = CInt(m.Groups(1).Value)
        qdbVer.major = CInt(m.Groups(2).Value)
        qdbVer.minor = CInt(m.Groups(3).Value)
        If (qdbVer.major < 6) Or (qdbVer.major = 6 And qdbVer.minor < 98) Then
            Console.WriteLine("You are running the {0} version of QuNect ODBC for Quick Base. Please install the latest version from", ver)
            Return Nothing
            Exit Function
        End If
        Return quNectConn
    End Function
    Private Sub processFiles(fileFolder As String)
        Dim fileEntries As String() = Directory.GetFiles(fileFolder)
        ' Process the list of files found in the directory.
        Dim fileName As String
        For Each fileName In fileEntries
        Next fileName
    End Sub
    Private Function processFile(fileName As String) As Integer
        Dim strSQL As String = "INSERT INTO " & dbid & " (" & fids & ") VALUES ('" & fileName & "'" & fidValues & ")"
        Dim quNectCmd As OdbcCommand = New OdbcCommand(strSQL, QuNectConnection)
        Dim rowsCreated As Integer = 0
            rowsCreated = quNectCmd.ExecuteNonQuery()
        Catch excpt As Exception
            Console.WriteLine("Failed: {0} {1} because: {2}", fileName, strSQL, excpt.Message)
        End Try
        If rowsCreated = 1 Then
            Console.WriteLine("Success: {0}", fileName)
        End If
        Return rowsCreated
    End Function
End Module