每次从 Mfg 设备捕获数据时,我都需要使用 Excel 表中的当前作业信息更新 SQL 表,我可以通过创建一个存储过程来执行此操作,该存储过程可以使用由捕获数据的程序运行的 JScript 执行并将其写入数据库。
我现在可以很好地查询 Excel 工作表并查看我需要的数据,但是格式有点麻烦,无需运行查询来逐行分隔数据,然后进行一次更新,我想不出如何更新它。
针对工作表查询:
SELECT Item, L05, L08, L09, SS1, SS2, SS3
FROM (
SELECT ROW_NUMBER() OVER (ORDER BY F8) AS rownumber, F1 AS Item, F2 AS L05, F3 AS L08, 4 AS L09, F5 AS SS1, F6 AS SS2, F7 AS SS3
FROM OpenDataSource( 'Microsoft.ACE.OLEDB.12.0',
'Data Source="C:\Job.xlsx";Extended Properties="Excel 12.0 XML;HDR=NO";')..."'Job Details$'") AS T2
Where rownumber >= 5 AND rownumber<=8
回报:
Item L05 L08 L09 SS1 SS2 SS3
WO 806314 806334 806618 806314 805886 807031
TE TE2-05712 TE2-04481 TE2-06364 TE2-06345 TE2-06362 TE2-04420
TF TF2-10874 TF2-07754A TF2-14249 tf2-10874 TF2-12635 TF2-12468
Qty 39144 82800 127200 36348 121800 50660
每个设备行是一列,每个数据项是工作表中的一行,我需要引用这些值并更新到如下所示的表:
LINE WO TE TF Qty
Line05 NULL NULL NULL NULL
Line08 NULL NULL NULL NULL
Line09 NULL NULL NULL NULL
SS1 NULL NULL NULL NULL
SS2 NULL NULL NULL NULL
SS3 NULL NULL NULL NULL
理想情况下,由于工作表是固定的,我可以在更新语句中单独引用 Excel 单元格,但如果可能的话,我还没有看到这样做的方法。