sql variables work now.

This commit is contained in:
brad Arant 2024-09-25 19:57:51 -07:00
parent e655173a8f
commit 9977ca188c
7 changed files with 14 additions and 9 deletions

View File

@ -85,8 +85,7 @@ namespace jet {
coreutils::ZString Global::getSessionVariable(coreutils::MString &splitName) { coreutils::ZString Global::getSessionVariable(coreutils::MString &splitName) {
if(sessions.find(splitName[0]) == sessions.end()) if(sessions.find(splitName[0]) == sessions.end())
throw coreutils::Exception("requested session is not available in variable."); throw coreutils::Exception("requested session is not available in variable.");
sessions[splitName[0]]->getColumnValue(splitName[1]); return sessions[splitName[0]]->getColumnValue(splitName[1]);
return splitName[1];
} }
} }

View File

@ -53,7 +53,14 @@ namespace jet {
coreutils::ZString __mysql::getColumnValue(coreutils::ZString column) { coreutils::ZString __mysql::getColumnValue(coreutils::ZString column) {
if(column == "#") if(column == "#")
return NbrOfRows; return NbrOfRows;
return NbrOfRows; MYSQL_FIELD *field;
for(int ix = 0; ix < qFields; ++ix) {
field = mysql_fetch_field_direct(result, ix);
if(column.equals((char *)field->name)) {
return coreutils::ZString(row[ix], fieldLength[ix]);
}
}
throw coreutils::Exception("column does not exist in session result.");
} }
} }

View File

@ -9,7 +9,7 @@
namespace jet { namespace jet {
__sql::__sql(coreutils::ZString &in, coreutils::MString &out, Global &global) : Tag(in, out, global) { __sql::__sql(coreutils::ZString &in, coreutils::MString &parent, Global &global) : Tag(in, parent, global) {
output = false; output = false;
if(!hasContainer) if(!hasContainer)
throw coreutils::Exception("sql tag must have a container."); throw coreutils::Exception("sql tag must have a container.");

View File

@ -8,7 +8,7 @@ namespace jet {
class __sql : public Tag { class __sql : public Tag {
public: public:
__sql(coreutils::ZString &in, coreutils::MString &out, Global &global); __sql(coreutils::ZString &in, coreutils::MString &parent, Global &global);
}; };

BIN
jet-2.0

Binary file not shown.

View File

@ -17,7 +17,7 @@ int main(int argc, char **argv) {
coreutils::MString out; coreutils::MString out;
jet::__jet *jet = new jet::__jet(data, out, global); jet::__jet *jet = new jet::__jet(data, out, global);
delete jet; delete jet;
std::cout << out; std::cout << "----------------------\n" << out;
} }
catch(coreutils::Exception e) { catch(coreutils::Exception e) {
std::cout << "Error caught: " << e.text << std::endl; std::cout << "Error caught: " << e.text << std::endl;

View File

@ -5,12 +5,11 @@
$[nonexistant] $[nonexistant]
<mysql host="localhost" database="barant" user="barant" password="uversa" sessionid="1"> <mysql host="localhost" database="barant" user="barant" password="uversa" sessionid="1">
<sql sessionid="1">select * from testdata</sql> <sql sessionid="1">select * from testdata</sql>
$[1.text] $[1.id] $[1.text] $[1.value]
$[1.value]
</mysql> </mysql>
<set name="ix" value="1" /> <set name="ix" value="1" />
<set name="theexpr" expr="SUBSTRING('abcdefg', 1, 3)" /> <set name="theexpr" expr="SUBSTRING('abcdefg', 1, 3)" />
<set name=\"theexpr2\" expr=\"5+3\" /> <set name="theexpr2" expr="5+3" />
theexpr=($[theexpr]) theexpr=($[theexpr])
theexpr2($[theexpr2]) theexpr2($[theexpr2])
<set name="varname$[ix]" value="vardata" scope="global" /> <set name="varname$[ix]" value="vardata" scope="global" />