# Cannot get this to move data to SQL

**URL:** <https://forum.inductiveautomation.com/t/cannot-get-this-to-move-data-to-sql/83479>\
**Category:** Ignition\
**Tags:** scripting\
**Created:** [December 22, 2023, 6:49pm UTC](https://forum.inductiveautomation.com/t/cannot-get-this-to-move-data-to-sql/83479 "2023-12-22T18:49:23Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![Dennis\_Gulliver](https://avatars.discourse-cdn.com/v4/letter/d/f9ae1b/32.png) [@Dennis\_Gulliver](https://forum.inductiveautomation.com/u/Dennis_Gulliver)\
**Post date:** [December 22, 2023, 6:49pm UTC](https://forum.inductiveautomation.com/t/cannot-get-this-to-move-data-to-sql/83479/1 "2023-12-22T18:49:23Z")

</div>

```auto
def valueChanged(tag, tagPath, previousValue, currentValue, initialChange, missedEvents):
	if not initialChange:
	     if currentValue == 1:
	        
	        BottleFeedDown = system.tag.read("[.]R3_Wait_For_Bottles").value
	        FillerDown = system.tag.read("[.]R3_Filler_Down").value
	        CapperDown = "0"
	        LabelerDown = system.tag.read("[.]R3_Labeler_Down").value
	        CasePackerDown = system.tag.read("[.]R3_CasePacker_Down").value
	        PalletizerDown = "0"
	        WrapperDown = "0"
	        MachineNumber = system.tag.read("[.]R3_Machine_Number").value
	        
	        SQL = '''
	        INSERT INTO EquipmentDown
	        (BottleFeedDown, FillerDown, CapperDown, LabelerDown, CasePackerDown, PalletizerDown, WrapperDown,0 ,MachineNumber)
	        VALUE
	        '''
	        
	        result = system.db.runPrepUpdate (SQL, [BottleFeedDown, FillerDown, CapperDown, LabelerDown, CasePackerDown, PalletizerDown, WrapperDown,0, MachineNumber], 'Ignition')

```

---

<div class="post-metadata">

**Author:** ![pturmel](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/pturmel/32/3295_2.png) [@pturmel](https://forum.inductiveautomation.com/u/pturmel)\
**Post date:** [December 22, 2023, 6:55pm UTC](https://forum.inductiveautomation.com/t/cannot-get-this-to-move-data-to-sql/83479/2 "2023-12-22T18:55:13Z")

</div>

> [@Dennis\_Gulliver](#):
>
> `if currentValue == 1:`

`currentValue` is a `QualifiedValue` object. You need to use `currentValue.value`.

You should also consolidate your individual tag reads into a single call to `system.tag.readBlocking()`. Single reads are painfully inefficient.

---

<div class="post-metadata">

**Author:** ![JordanCClark](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/jordancclark/32/83362_2.png) [@JordanCClark](https://forum.inductiveautomation.com/u/JordanCClark)\
**Post date:** [December 22, 2023, 6:56pm UTC](https://forum.inductiveautomation.com/t/cannot-get-this-to-move-data-to-sql/83479/3 "2023-12-22T18:56:28Z")

</div>

Also, your query needs to have question marks as placeholders for the values.

---

<div class="post-metadata">

**Author:** ![dkhayes117](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/dkhayes117/32/68344_2.png) [@dkhayes117](https://forum.inductiveautomation.com/u/dkhayes117)\
**Post date:** [December 22, 2023, 7:04pm UTC](https://forum.inductiveautomation.com/t/cannot-get-this-to-move-data-to-sql/83479/4 "2023-12-22T19:04:07Z")

</div>

It should look more like this, but that `0` as a column name looks suspect in `SQL`.

```auto
def valueChanged(tag, tagPath, previousValue, currentValue, initialChange, missedEvents):
	if not initialChange:
		if currentValue.value == 1:
			tagPaths = ["[.]R3_Wait_For_Bottles", "[.]R3_Filler_Down", "[.]R3_Labeler_Down"], "[.]R3_CasePacker_Down", "[.]R3_Machine_Number"]
			qVals = system.tag.readBlocking(tagPaths)
			
			BottleFeedDown = qVals[0].value
			FillerDown = qVals[1].value
			CapperDown = "0"
			LabelerDown = qVals[2].value
			CasePackerDown = qVals[3].value
			PalletizerDown = "0"
			WrapperDown = "0"
			MachineNumber = qVals[4].value
	        
	        SQL = '''
	        INSERT INTO EquipmentDown
	        (BottleFeedDown, FillerDown, CapperDown, LabelerDown, CasePackerDown, PalletizerDown, WrapperDown,0 ,MachineNumber)
	        VALUES
	        (?,?,?,?,?,?,?,?,?)
	        '''
	        args = [BottleFeedDown, FillerDown, CapperDown, LabelerDown, CasePackerDown, PalletizerDown, WrapperDown,0, MachineNumber]
			result = system.db.runPrepUpdate(SQL, args, 'Ignition')

```

---

<div class="post-metadata">

**Author:** ![JordanCClark](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/jordancclark/32/83362_2.png) [@JordanCClark](https://forum.inductiveautomation.com/u/JordanCClark)\
**Post date:** [December 22, 2023, 7:07pm UTC](https://forum.inductiveautomation.com/t/cannot-get-this-to-move-data-to-sql/83479/5 "2023-12-22T19:07:56Z")

</div>

Not sure if that values fill all the columns, but if they do, the query could have been meant as:

```python
	        SQL = '''
	        INSERT INTO EquipmentDown
	        VALUES (?, ?, ?, ?, ?, ?, ?, 0, ?)
	        '''

```

---

<div class="post-metadata">

**Author:** ![Dennis\_Gulliver](https://avatars.discourse-cdn.com/v4/letter/d/f9ae1b/32.png) [@Dennis\_Gulliver](https://forum.inductiveautomation.com/u/Dennis_Gulliver)\
**Post date:** [December 22, 2023, 7:44pm UTC](https://forum.inductiveautomation.com/t/cannot-get-this-to-move-data-to-sql/83479/6 "2023-12-22T19:44:30Z")

</div>

You are correct I am not writing to all the columns and must have something off because of that. Below are the columns of the table.

|id|int  
|BottleFeedDown|int  
|FillerDown|int  
|CapperDown|int  
|LabelerDown|int  
|CasePackerDown|int  
|PalletizerDown|int  
|WrapperDown|int  
|TimeStamp|datetime  
|MachineNumber|nvarchar(50)
