src/Builder4/WindowRooView.bjs
[app.Builder.js] / src / Palete / RooDatabase.vala
index ba42d5d..395545d 100644 (file)
@@ -111,7 +111,7 @@ namespace Palete {
                public Json.Object readTable(string tablename) 
                {
                        
-                       Json.Array res_ar;
+                       Json.Array res_ar = new Json.Array();
                        var res = new Json.Object();
                        try {
                                switch (this.DBTYPE ) {
@@ -154,6 +154,7 @@ namespace Palete {
  
                                }
                         } catch (GLib.Error e) {
+                                return res;
                         }
                        
                        for (var i =0; i < res_ar.get_length(); i++) {
@@ -190,13 +191,17 @@ namespace Palete {
                                TABLE_SCHEMA = '""" + this.DBNAME + """'
                        """;
                        
-                       var jarr = this.fetchAll(this.cnc.execute_select_command( 
-                                       query
-                                       ));
-                       if (jarr.get_length() < 1) {
-                               return  ret;
-                       }
-                       
+                       var jarr = new Json.Array();
+                       try {
+                          jarr = this.fetchAll(this.cnc.execute_select_command( 
+                                               query
+                               ));
+                               if (jarr.get_length() < 1) {
+                                       return  ret;
+                               }
+                       } catch (GLib.Error e) {
+                               return ret;
+                       }
                        var contents = jarr.get_string_element(0);
                        GLib.debug(contents);
                        if (contents == null) {
@@ -205,16 +210,14 @@ namespace Palete {
                        
                         GLib.Regex exp = /FK\(([^\)]+)\)/;
                         string str = "";
-                        try {
-                               GLib.MatchInfo mi;
-                               if ( exp.match (contents, 0, out mi) ) {
-                                       
-                                       str = mi.fetch(1);
-                                       GLib.debug("match = %s", str);
-                               }
-                       } catch (GLib.Error e) {
-                               return  ret;
+                         
+                       GLib.MatchInfo mi;
+                       if ( exp.match (contents, 0, out mi) ) {
+                               
+                               str = mi.fetch(1);
+                               GLib.debug("match = %s", str);
                        }
+                        
                        var ar = str.split("\n");
                        for (var i = 0; i < ar.length; i++) {
                                var kv = ar[i].split("=");
@@ -243,7 +246,7 @@ namespace Palete {
                                cols.add(qnr.get_column_name(i));
                        }
                        //print(Json.stringify(cols, null,4));
-                       var iter = qnr.create_iter();
+                        
                        var res = new Json.Array();
                         //print("ROWS %d\n", qnr.get_n_rows());
                        
@@ -253,9 +256,13 @@ namespace Palete {
                                //print("GOT ROW");
                                //print("COLS  %d\n", cols.size);
                                if (cols.size == 1) {
-                                       var str = qnr.get_value_at(0,r).get_string();
+                                        
                                        //print("GOT %s\n",str);
-                                       res.add_string_element(qnr.get_value_at(0,r).get_string());
+                                       try { 
+                                               res.add_string_element(qnr.get_value_at(0,r).get_string());
+                                       } catch (GLib.Error e) {
+                                               res.add_string_element("");
+                                       }
                                        continue;
                                }
                                
@@ -263,22 +270,26 @@ namespace Palete {
                                
                                for (var i = 0; i < cols.size; i++) { 
                                        var n = cols.get(i);
-                                       var val = qnr.get_value_at(i,r);
-                                       var type = val.type().name();
-                                       //print("%s\n",type);
-                                       switch(type) {
-                                               case "GdaBinary":
-                                               case "GdaBlob":
-                                                       add.set_string_member(n, "?? big string ??");
-                                                       break;
+                                       try {
+                                               var val = qnr.get_value_at(i,r);
+                                               var type = val.type().name();
+                                               //print("%s\n",type);
+                                               switch(type) {
+                                                       case "GdaBinary":
+                                                       case "GdaBlob":
+                                                               add.set_string_member(n, "?? big string ??");
+                                                               break;
                                                        
-                                               case  "GdaNull":
-                                                       add.set_null_member(n);
-                                                       break;
+                                                       case  "GdaNull":
+                                                               add.set_null_member(n);
+                                                               break;
                                                
-                                               default:
-                                                       add.set_string_member(n, val.get_string());
-                                                       break;
+                                                       default:
+                                                               add.set_string_member(n, val.get_string());
+                                                               break;
+                                               }
+                                       } catch (GLib.Error e ) {
+                                               add.set_string_member(n, "");
                                        }
                                        
                                }