This is a simple example that demonstrate how to create, compile, and execute queries.
#include <iostream>
#include <sstream>
using namespace zorba;
bool
{
std::cout << lQuery << std::endl;
return true;
}
bool
{
lIterator->open();
while ( lIterator->next(lItem) )
{
}
lIterator->close();
return true;
}
bool
{
try {
std::cout << lQuery << std::endl;
std::cerr << e << std::endl;
return true;
}
return false;
}
bool
{
try {
std::cerr << e << std::endl;
return true;
}
return false;
}
bool
{
std::string lQueryString("for $i in (1,2,3)");
std::istringstream lInStream(lQueryString);
try {
std::cout << lQuery << std::endl;
std::cerr << ze << std::endl;
}
return false;
}
bool
{
std::cout << lQuery << std::endl;
return true;
}
bool
example_7()
{
return true;
}
bool
example_8(
Zorba * aZorba )
{
lQuery->setFileName("foo.xq");
lQuery->compile("1+2");
std::cout << lQuery << std::endl;
return true;
}
bool
example_9(
Zorba * aZorba )
{
try {
lQuery->compile("1+2");
std::cout << e << std::endl;
return true;
}
return false;
}
bool
example_10(
Zorba * aZorba )
{
try
{
lDynContext1 = lQuery1->getDynamicContext();
lIterator1 = lQuery1->iterator();
bool checkOk = false;
try
{
lIterator3 = lQuery1->iterator();
}
catch (...)
{
checkOk = true;
}
if (!checkOk)
return false;
lIterator1->open();
while ( lIterator1->next(lItem) )
{
lIterator2->open();
while ( lIterator2->next(lItem) )
{
}
lIterator2->close();
std::cout << std::endl;
}
lIterator1->close();
}
{
std::cout << e.
what() << std::endl;
throw;
}
catch (...)
{
std::cout << "EXCEPTION !!!!" << std::endl;
throw;
}
return true;
}
bool
example_11(
Zorba * aZorba )
{
"declare variable $x := 2;\n"
"declare function local:f ($n) { $x + $n };\n"
);
lContextWithProlog->loadProlog(prolog, hints);
std::cout << lQuery << std::endl;
return true;
}
bool
example_12(
Zorba* aZorba)
{
("<a xmlns:foo='http://www.zorba-xquery.com/'><b attr='1' xmlns:bar='http://www.zorba-xquery.com/uri2'/><b attr='2'/></a>");
lIterator->open();
while ( lIterator->next(lItem) )
{
lChildIter->open();
while (lChildIter->next(lChild))
{
lAttrIter->open();
while (lAttrIter->next(lAttr))
{
std::cout <<
" attribute value " << lAttr.
getStringValue() << std::endl;
}
lAttrIter->close();
for (NsBindings::const_iterator ite = lBindings.begin();
ite != lBindings.end(); ++ite) {
std::cout << " namespace binding " << ite->first
<< "->" << ite->second << std::endl;
}
}
lChildIter->close();
}
lIterator->close();
return true;
}
bool
example_13(
Zorba* aZorba)
{
#if 0
lQuery->setTimeout(1);
try
{
lQuery->compile("while (fn:true()) {()};");
std::cout << lQuery << std::endl;
}
{
std::cout << "query interrputed after 1 second" << std::endl;
return true;
}
return false;
#else
return true;
#endif
}
bool
example_14()
{
str += "b";
str += "c";
return (str == "abc");
}
bool
{
std::string queryString =
"declare variable $foo := 1;\
\
insert node <child/> into /parent";
try
{
ss << "<parent/>";
if( query->isUpdating() )
{
query->execute();
serializer->serialize(&seq, std::cout);
}
else
{
std::cerr << "The isUpdating() method should return true" << std::endl;
return false;
}
query->close();
}
catch( ... )
{
std::cerr << "exception thrown" << std::endl;
}
return true;
}
int
simple(int argc, char* argv[])
{
bool res = false;
std::cout << "executing example 1" << std::endl;
res = example_1(lZorba);
if (!res) return 1;
std::cout << std::endl;
std::cout << "executing example 2" << std::endl;
res = example_2(lZorba);
if (!res) return 1;
std::cout << std::endl;
std::cout << "executing example 3" << std::endl;
res = example_3(lZorba);
if (!res) return 1;
std::cout << std::endl;
std::cout << "executing example 4" << std::endl;
res = example_4(lZorba);
if (!res) return 1;
std::cout << std::endl;
std::cout << "executing example 5" << std::endl;
res = example_5(lZorba);
if (!res) return 1;
std::cout << std::endl;
std::cout << "executing example 6" << std::endl;
res = example_6(lZorba);
if (!res) return 1;
std::cout << std::endl;
std::cout << "executing example 7" << std::endl;
res = example_7();
if (!res) return 1;
std::cout << std::endl;
std::cout << "executing example 8" << std::endl;
res = example_8(lZorba);
if (!res) return 1;
std::cout << std::endl;
std::cout << "executing example 9" << std::endl;
res = example_9(lZorba);
if (!res) return 1;
std::cout << std::endl;
std::cout << "executing example 10" << std::endl;
res = example_10(lZorba);
if (!res) return 1;
std::cout << std::endl;
std::cout << "executing example 11" << std::endl;
res = example_11(lZorba);
if (!res) return 1;
std::cout << std::endl;
std::cout << "executing example 12" << std::endl;
res = example_12(lZorba);
if (!res) return 1;
std::cout << std::endl;
std::cout << "executing example 13" << std::endl;
res = example_13(lZorba);
if (!res) return 1;
std::cout << std::endl;
std::cout << "executing example 14" << std::endl;
res = example_14();
if (!res) return 1;
std::cout << std::endl;
std::cout << "executing example 15" << std::endl;
res = example_15(lZorba);
if (!res) return 1;
std::cout << std::endl;
return 0;
}