Compile subroutine Copy_WorkOrder_To_SQL(WorkOrderNumber)

/*****************************************************************************\
	This is a utility function. It copies all WO_MAT entries for a specific
	work order number.
	
	History
	-------
	08/28/2013    KRF    Original Programmer
\*****************************************************************************/

Common /SQL_Copy_Commons/ SQL_NewRecordsOnly@

Equ Update_Interval$ to 500

If Assigned(OperationCode) else OperationCode = 0
If Assigned(NumToCopy) else NumToCopy = 0
Errors = ""

Declare function Copy_Record_To_SQL, GetTickCount, GetASyncKeyState, SRP_Com, COPY_WO_MAT_RECORD_TO_SQL
Declare subroutine SRP_Com, RList

NumCopied = 0
StartTime = GetTickCount()
BeginTime = StartTime

SQL_NewRecordsOnly@ = 0

// Connect to the ODBC
If SRP_Com(Connection, "CREATE", "ADODB.Connection") then
    
    // Connect to the database via ODBC    
    SRP_Com(Connection, "SET", "Mode", adModeShareDenyNone)
    SRP_Com(Connection, "SET", "CursorLocation", adUseClient)
    If SRP_Com(Connection, "CALL", "Open", "LSL2SQL", "srpadmin", "0okm9ijn") EQ "" then

        Open "WO_MAT" to hTable then
            ClearSelect
            SelectStatement = "SELECT WO_MAT WITH WO_NO = ":WorkOrderNumber
            RList(SelectStatement, 5, "", "", "")
            Done = 0
            Loop
                ReadNext Key else Done = 1
            Until Done OR (GetASyncKeyState(27) LT 0)
                GoSub Copy_Key
                If NumToCopy GT 0 AND NumCopied GE NumToCopy then Done = 1
            Repeat
        end
    
    end else
        Call Msg(@Window, SRP_Com(Connection, "ERROR"):@FM:@FM:@FM:"!")
    end
                
    SRP_Com(Connection, "CALL", "Close")
    SRP_Com(Connection, "RELEASE")
                
end else
    Call Msg(@Window, "Unable to create ADO Object.":@FM:@FM:@FM:"!")
end

Open "SYSLISTS" to hSYSLISTS then
    If Errors[-1, 1] EQ @FM then Errors[-1, 1] = ""
    If Len(Errors) then
        Write Errors to hSYSLISTS, "COPY_TABLE_TO_SQL_ERRORS*WO_MAT"
        Call SRP_Editor_Open("Record", "SYSLISTS":@FM:"COPY_TABLE_TO_SQL_ERRORS*WO_MAT")
    end else
        Delete hSYSLISTS, "COPY_TABLE_TO_SQL_ERRORS*WO_MAT" else null
        Call Msg(@Window, "No Errors")
    end
end

Return

Copy_Key:

    // Read the record and call the handler
    Read @RECORD from hTable, Key then
        If Key NE "" then
            Open "DICT.WO_MAT" to @DICT then null
            @ID = Key
            Error = COPY_WO_MAT_RECORD_TO_SQL(Connection, Key, @RECORD)
        end
    end

    If Len(Error) then
        Errors := Key:@VM:Error:@FM
    end
        
    NumCopied += 1
    CurrTime = GetTickCount()
    If CurrTime - StartTime GE Update_Interval$ then
        Call SRP_Editor_Send_Info("WO_MAT: ":NumCopied)
        StartTime = GetTickCount()
    end
        
return
