Hi alltogether,

is the feature of storing Funtions in the Database still usable?

I followed documentation and got completely lost.

First: I fired a simple SQL-Query

Schema:  contracts [n<-link->1] subcategories  [n<-link->1] categories 
[n<-link->1] industries

To query all contracts belonging to a single industry, (just as in a 
oldschool-sql-db) one can write

 select name categories.subcategories.contracts from Industries  where name 
containstext   'ial'

which obviously returns an Array : 

#<REST::Model::Myquery:0x00000003ffb880 @attributes={ "name" =>"Basic 
Materials", "categories"=>[["#21:1"]], "version"=>0, "cluster"=>"-2", 
"record"=>"0", "fieldTypes"=>"null=e", "created_at"=>2015-06-02 14:11:46 
+0200, "updated_at"=>2015-06-02 14:11:46 +0200}>
#<REST::Model::Myquery:0x00000003ff9b20 @attributes={"name"=>"Financial", 
"categories"=>[["#21:2"]], "version"=>0, "cluster"=>"-2", "record"=>"1", 
"fieldTypes"=>"null=e", "created_at"=>2015-06-02 14:11:46 +0200, 
"updated_at"=>2015-06-02 14:11:46 +0200}>
#<REST::Model::Myquery:0x00000003ff83b0 @attributes={"name"=>"Industrial", 
"categories"=>[["#23:0", "#23:1"]], "version"=>0, "cluster"=>"-2", 
"record"=>"2", "fieldTypes"=>"null=e", "created_at"=>2015-06-02 14:11:46 
+0200, "updated_at"=>2015-06-02 14:11:46 +0200}>

So far, so good – the query is working perfect.

Then I put the same query into a function:
( in Studio: )
return orient.getDatabase().query("select name, 
categories.subcategories.contracts from Industries  where name containstext 
'ial'");
and saved it as »getContracts«

But when I tried to fetch the result via REST I got:

uri: function/hc_database/getContracts
{"result":[{"@type":"d","@version":0,"value":"orient.getDatabase().query(\"select
 
name, categories.subcategories.contracts from Industries  where name 
containstext 'ial'\")"}]}

just the copy of the query-text....


It turned better.

I switched to javascript:

var gdb = orient.getDatabase();

return gdb.command( "sql", "select name ....

---> "code": 400,
            "reason": "Bad request",
            "content": "Error on parsing script at position #0: Error on 
execution of the script\nScript: 
allCategories\n------^\nsun.org.mozilla.javascript.WrappedException: 
Wrapped 
com.orientechnologies.orient.core.exception.OConfigurationException: No 
database instance found in context (<Unknown source>#10) in <Unknown 
source> at line number 10\nWrapped 
com.orientechnologies.orient.core.exception.OConfigurationException: No 
database instance found in context (<Unknown source>#10)\nNo database 
instance found in context"

Ups.

As only solution which works, I found 

language: Javascript
Database-Instance by getGraphNoTx()

To me the consequences of using getGraphNoTx are not clear. The strange 
behavior of the function-part should be noted as big bug in the 
development-Version .
strange. 


(I am using the current stable 2.0 Version of OrientDB)

Hartmut

-- 

--- 
You received this message because you are subscribed to the Google Groups 
"OrientDB" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to