Overview
Examples
Screenshots
Comparisons
Applications
Download
Documentation
Tutorials
Bazaar
Status & Roadmap
FAQ
Authors & License
Forums
Funding Ultimate++
Search on this site
Search in forums












SourceForge.net Logo
Home » U++ Library support » U++ SQL » Problem with SqlUpdate
Re: Problem with SqlUpdate [message #45728 is a reply to message #45725] Tue, 29 December 2015 20:05 Go to previous messageGo to previous message
dolik.rce is currently offline  dolik.rce
Messages: 1789
Registered: August 2008
Location: Czech Republic
Ultimate Contributor

nilrum wrote on Tue, 29 December 2015 17:48
Quote:
The problematic brackets come from SqlSet(). You actually want just a single value, not a set of values:

SqlUpdate(LINK)(ID_OTHER, SqlSet(Select(ID_TWO).From(TWO).Where(NAME_TWO == "Name"))).Where(ID_LINK == 1);


This should work as you intended.

So I tried to write, but I receive an error

error C2664: 'Upp::SqlUpdate &Upp::SqlUpdate::operator ()(const Upp::SqlId &,Upp::SqlVal)' : cannot convert argument 1 from 'Upp::SqlId' to 'const Upp::SqlSet &'
Reason: cannot convert from 'Upp::SqlId' to 'const Upp::SqlSet'

I'm sorry that I mislead you... I haven't actually check if the code compiles Embarassed

I had to check the code of SqlSelect and I finally figured out how this should be done properly:
SqlUpdate(LINK)(ID_OTHER, Select(ID_TWO).From(TWO).Where(NAME_TWO == "Name").AsValue()).Where(ID_LINK == 1);

Notice the AsValue() method of SqlSelect. It turns the subquery into SqlVal, which can be then assigned to ID_OTHER column. There is also similar method AsTable(), which does similar job in case of subqueries in FROM clause.

Hope this will finally work Smile

Honza
 
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Previous Topic: Commas into SQL
Next Topic: MySql, boolean values and SqlArray
Goto Forum:
  


Current Time: Fri May 10 05:08:23 CEST 2024

Total time taken to generate the page: 0.02436 seconds