# Compare string from query

**URL:** <https://forum.inductiveautomation.com/t/compare-string-from-query/39512>\
**Category:** Ignition\
**Created:** [October 8, 2020, 7:50pm UTC](https://forum.inductiveautomation.com/t/compare-string-from-query/39512 "2020-10-08T19:50:08Z")\
**Posts on this page:** 13\
**Page:** 1

<div class="post-metadata">

**Author:** ![etlikmilos](https://avatars.discourse-cdn.com/v4/letter/e/fbc32d/32.png) [@etlikmilos](https://forum.inductiveautomation.com/u/etlikmilos)\
**Post date:** [October 8, 2020, 7:50pm UTC](https://forum.inductiveautomation.com/t/compare-string-from-query/39512/1 "2020-10-08T19:50:08Z")

</div>

Hy can you help me what i do wrong?  
I want compare two strings one sting is from SQL query and second string from textfield.  
My code doesn’t work :((

```auto
    barCode= self.getSibling("barCode").props.text
    testName = system.db.runPrepQuery("SELECT name FROM maintenanceWarehouse WHERE name = ?",[name],"Technici")
	testBarCode = system.db.runPrepQuery("SELECT barCode FROM maintenanceWarehouse WHERE barCode = ?",[barCode],"Technici")
	
	#insert new data to qurie	
	if testBarCode[0][0] == barCode :
		self.getSibling("Label_2").props.text='duplicita'
	else :
		self.getSibling("Label_2").props.text=str(testBarCode[0][0])

```

if it always goes to else and data from query and text are same  
Thank you

---

<div class="post-metadata">

**Author:** ![nminchin](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/nminchin/32/6911_2.png) [@nminchin](https://forum.inductiveautomation.com/u/nminchin)\
**Post date:** [October 8, 2020, 8:14pm UTC](https://forum.inductiveautomation.com/t/compare-string-from-query/39512/2 "2020-10-08T20:14:15Z")

</div>

You can’t use the array format to read your dataset query result, you need to use `.getValueAt(0,0)`  
Unless you convert it to a pydataset with `system.dataset.toPyDataSet`

---

<div class="post-metadata">

**Author:** ![code\_skin](https://avatars.discourse-cdn.com/v4/letter/c/43a26b/32.png) [@code\_skin](https://forum.inductiveautomation.com/u/code_skin)\
**Post date:** [October 8, 2020, 8:14pm UTC](https://forum.inductiveautomation.com/t/compare-string-from-query/39512/3 "2020-10-08T20:14:57Z")

</div>

psst, runPrepQuery returns a pyDataSet.

---

<div class="post-metadata">

**Author:** ![nminchin](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/nminchin/32/6911_2.png) [@nminchin](https://forum.inductiveautomation.com/u/nminchin)\
**Post date:** [October 8, 2020, 8:16pm UTC](https://forum.inductiveautomation.com/t/compare-string-from-query/39512/4 "2020-10-08T20:16:38Z")

</div>

Ha, so it does according to the user manual

---

<div class="post-metadata">

**Author:** ![code\_skin](https://avatars.discourse-cdn.com/v4/letter/c/43a26b/32.png) [@code\_skin](https://forum.inductiveautomation.com/u/code_skin)\
**Post date:** [October 8, 2020, 8:19pm UTC](https://forum.inductiveautomation.com/t/compare-string-from-query/39512/5 "2020-10-08T20:19:53Z")

</div>

Add some logging to help your debugging.

Try something like this:

```auto
barCode= self.getSibling("barCode").props.text
testName = system.db.runPrepQuery("SELECT name FROM maintenanceWarehouse WHERE name = ?",[name],"Technici")
testBarCode = system.db.runPrepQuery("SELECT barCode FROM maintenanceWarehouse WHERE barCode = ?",[barCode],"Technici")

# send to gateway logs
log = system.util.getLogger('DEBUG')
log.info(str(barCode))
log.info(str(testBarCode[0][0]))

#insert new data to qurie	
if testBarCode[0][0] == barCode :
     self.getSibling("Label_2").props.text='duplicita'
else :
     self.getSibling("Label_2").props.text=str(testBarCode[0][0])

```

---

<div class="post-metadata">

**Author:** ![etlikmilos](https://avatars.discourse-cdn.com/v4/letter/e/fbc32d/32.png) [@etlikmilos](https://forum.inductiveautomation.com/u/etlikmilos)\
**Post date:** [October 8, 2020, 8:19pm UTC](https://forum.inductiveautomation.com/t/compare-string-from-query/39512/6 "2020-10-08T20:19:54Z")

</div>

Thank you so much Now is working ok Thanks 😃

---

<div class="post-metadata">

**Author:** ![nminchin](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/nminchin/32/6911_2.png) [@nminchin](https://forum.inductiveautomation.com/u/nminchin)\
**Post date:** [October 8, 2020, 8:22pm UTC](https://forum.inductiveautomation.com/t/compare-string-from-query/39512/7 "2020-10-08T20:22:32Z")

</div>

Interesting… I always _thought_ runPrepQuery returned a dataset, and if that worked then maybe the user manual doco is wrong? I’m not at my pc to check anything

---

<div class="post-metadata">

**Author:** ![code\_skin](https://avatars.discourse-cdn.com/v4/letter/c/43a26b/32.png) [@code\_skin](https://forum.inductiveautomation.com/u/code_skin)\
**Post date:** [October 8, 2020, 8:24pm UTC](https://forum.inductiveautomation.com/t/compare-string-from-query/39512/8 "2020-10-08T20:24:05Z")

</div>

It’s always returned a PyDataSet (for me). Not sure how using .getValueAt(0,0) resolved the issue.

---

<div class="post-metadata">

**Author:** ![etlikmilos](https://avatars.discourse-cdn.com/v4/letter/e/fbc32d/32.png) [@etlikmilos](https://forum.inductiveautomation.com/u/etlikmilos)\
**Post date:** [October 8, 2020, 8:38pm UTC](https://forum.inductiveautomation.com/t/compare-string-from-query/39512/9 "2020-10-08T20:38:19Z")

</div>

![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/f/b/fb44de5e9b137f9486629898fb7139440c19f8f2.png)

---

<div class="post-metadata">

**Author:** ![code\_skin](https://avatars.discourse-cdn.com/v4/letter/c/43a26b/32.png) [@code\_skin](https://forum.inductiveautomation.com/u/code_skin)\
**Post date:** [October 8, 2020, 8:40pm UTC](https://forum.inductiveautomation.com/t/compare-string-from-query/39512/10 "2020-10-08T20:40:01Z")

</div>

Oops, thanks. I updated the script in my other post.

---

<div class="post-metadata">

**Author:** ![etlikmilos](https://avatars.discourse-cdn.com/v4/letter/e/fbc32d/32.png) [@etlikmilos](https://forum.inductiveautomation.com/u/etlikmilos)\
**Post date:** [October 8, 2020, 8:55pm UTC](https://forum.inductiveautomation.com/t/compare-string-from-query/39512/11 "2020-10-08T20:55:19Z")

</div>

![image](https://us1.discourse-cdn.com/inductiveautomation/original/3X/4/a/4a733d326607b7469161130818bbea0335e9b38d.png)

---

<div class="post-metadata">

**Author:** ![etlikmilos](https://avatars.discourse-cdn.com/v4/letter/e/fbc32d/32.png) [@etlikmilos](https://forum.inductiveautomation.com/u/etlikmilos)\
**Post date:** [October 8, 2020, 9:18pm UTC](https://forum.inductiveautomation.com/t/compare-string-from-query/39512/12 "2020-10-08T21:18:20Z")

</div>

```auto
    testName = system.db.runPrepQuery("SELECT name FROM maintenanceWarehouse WHERE name = ?",[name],"Technici")
	testBarCode = system.db.runPrepQuery("SELECT barCode FROM maintenanceWarehouse WHERE barCode = ?",[barCode],"Technici")
	testBarCodeDataSet = system.dataset.toDataSet(testBarCode)
	testNameDataSet = system.dataset.toDataSet(testName)
	
	#insert new data to qurie	
	
	# send to gateway logs----------------------------------------
	log = system.util.getLogger('DEBUG')
	log.info(str(barCode))
	log.info(str(testBarCodeDataSet.getValueAt(0,0)))
	#-------------------------------------------------------
	
	if testBarCodeDataSet.getValueAt(0,0).strip() == barCode.strip() :
		self.getSibling("Label_2").props.text='duplicita'
	else :

```

This code work good.

---

<div class="post-metadata">

**Author:** ![paul-griffith](https://sea1.discourse-cdn.com/inductiveautomation/user_avatar/forum.inductiveautomation.com/paul-griffith/32/37249_2.png) [@paul-griffith](https://forum.inductiveautomation.com/u/paul-griffith)\
**Post date:** [October 8, 2020, 9:31pm UTC](https://forum.inductiveautomation.com/t/compare-string-from-query/39512/13 "2020-10-08T21:31:38Z")

</div>

> [@code\_skin](#):
>
> It’s always returned a PyDataSet (for me). Not sure how using .getValueAt(0,0) resolved the issue.

PyDataset implements the Dataset interface, so the `getValueAt()` and related functions also work.
