97 lines
2.9 KiB
Plaintext
97 lines
2.9 KiB
Plaintext
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
|