1
0
mirror of https://github.com/gnosygnu/xowa.git synced 2026-03-02 03:49:30 +00:00
This commit is contained in:
gnosygnu
2015-08-24 00:32:13 -04:00
parent df10db140c
commit ed911e3de5
220 changed files with 2618 additions and 1569 deletions

View File

@@ -55,7 +55,7 @@ public class TdbTable {
flds = ndeRdr.UnderNde().SubFlds();
}
else { // XmlRdr needs to load each row again...
throw Err_.new_invalid_op("TableLoad not implemented").Args_add("rdrType", ClassAdp_.NameOf_obj(rdr), "rdrName", rdr.NameOfNode());
throw Err_.new_invalid_op("TableLoad not implemented").Args_add("rdrType", Type_adp_.NameOf_obj(rdr), "rdrName", rdr.NameOfNode());
}
isLoaded = true;
}

View File

@@ -57,21 +57,21 @@ public class Db_qry_sql implements Db_qry {
private static void Gen_sql_arg(Bry_bfr bfr, Object val) {
if (val == null) {bfr.Add(Bry_null); return;}
Class<?> val_type = val.getClass();
if (ClassAdp_.Eq(val_type, Int_.Cls_ref_type))
if (Type_adp_.Eq(val_type, Int_.Cls_ref_type))
bfr.Add_int_variable(Int_.cast_(val));
else if (ClassAdp_.Eq(val_type, Bool_.Cls_ref_type))
else if (Type_adp_.Eq(val_type, Bool_.Cls_ref_type))
bfr.Add_int_fixed(1, Bool_.Xto_int(Bool_.cast_(val))); // NOTE: save boolean to 0 or 1, b/c (a) db may not support bit datatype (sqllite) and (b) avoid i18n issues with "true"/"false"
else if (ClassAdp_.Eq(val_type, Double_.Cls_ref_type))
else if (Type_adp_.Eq(val_type, Double_.Cls_ref_type))
bfr.Add_double(Double_.cast_(val));
else if (ClassAdp_.Eq(val_type, Long_.Cls_ref_type))
else if (Type_adp_.Eq(val_type, Long_.Cls_ref_type))
bfr.Add_long_variable(Long_.cast_(val));
else if (ClassAdp_.Eq(val_type, Float_.Cls_ref_type))
else if (Type_adp_.Eq(val_type, Float_.Cls_ref_type))
bfr.Add_float(Float_.cast_(val));
else if (ClassAdp_.Eq(val_type, Byte_.Cls_ref_type))
else if (Type_adp_.Eq(val_type, Byte_.Cls_ref_type))
bfr.Add_byte(Byte_.cast_(val));
else if (ClassAdp_.Eq(val_type, DateAdp_.Cls_ref_type))
else if (Type_adp_.Eq(val_type, DateAdp_.Cls_ref_type))
bfr.Add_byte_apos().Add_str(DateAdp_.cast_(val).XtoStr_gplx_long()).Add_byte_apos();
else if (ClassAdp_.Eq(val_type, Decimal_adp_.Cls_ref_type))
else if (Type_adp_.Eq(val_type, Decimal_adp_.Cls_ref_type))
bfr.Add_str(Decimal_adp_.cast_(val).To_str());
else {
byte[] val_bry = Bry_.new_u8(Object_.Xto_str_strict_or_null(val));

View File

@@ -166,7 +166,7 @@ public class Db_stmt_sql implements Db_stmt {// used for formatting SQL statemen
str = "NULL";
else {
str = Object_.Xto_str_strict_or_null(obj);
if (ClassAdp_.Eq(obj.getClass(), String_.Cls_ref_type))
if (Type_adp_.Eq(obj.getClass(), String_.Cls_ref_type))
str = "'" + String_.Replace(str, "'", "''") + "'";
}
ary[i] = str;

View File

@@ -17,7 +17,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package gplx.dbs.sqls; import gplx.*; import gplx.dbs.*;
public class Db_fld {
public Db_fld(String name, byte type_tid) {this.name = name; this.type_tid = type_tid;}
public Db_fld(String name, int type_tid) {this.name = name; this.type_tid = type_tid;}
public String Name() {return name;} public Db_fld Name_(String v) {name = v; return this;} private String name;
public byte Type_tid() {return type_tid;} public Db_fld Type_tid_(byte v) {type_tid = v; return this;} private byte type_tid;
public int Type_tid() {return type_tid;} public Db_fld Type_tid_(int v) {type_tid = v; return this;} private int type_tid;
}

View File

@@ -20,15 +20,15 @@ import org.junit.*; import gplx.core.strings.*; import gplx.dbs.sqls.*;
public class Db_obj_ary_tst {
@Before public void init() {} private Db_obj_ary_fxt fxt = new Db_obj_ary_fxt();
@Test public void Int() {
fxt.Init_fld("fld_0", ClassAdp_.Tid_int).Init_fld("fld_1", ClassAdp_.Tid_int).Init_vals(1, 10).Init_vals(2, 20).Test_sql("(fld_0=1 AND fld_1=10) OR (fld_0=2 AND fld_1=20)");
fxt.Init_fld("fld_0", Type_adp_.Tid__int).Init_fld("fld_1", Type_adp_.Tid__int).Init_vals(1, 10).Init_vals(2, 20).Test_sql("(fld_0=1 AND fld_1=10) OR (fld_0=2 AND fld_1=20)");
}
@Test public void Str() {
fxt.Init_fld("fld_0", ClassAdp_.Tid_int).Init_fld("fld_1", ClassAdp_.Tid_str).Init_vals(1, "a").Init_vals(2, "b").Test_sql("(fld_0=1 AND fld_1='a') OR (fld_0=2 AND fld_1='b')");
fxt.Init_fld("fld_0", Type_adp_.Tid__int).Init_fld("fld_1", Type_adp_.Tid__str).Init_vals(1, "a").Init_vals(2, "b").Test_sql("(fld_0=1 AND fld_1='a') OR (fld_0=2 AND fld_1='b')");
}
}
class Db_obj_ary_fxt {
private Db_obj_ary_crt crt = new Db_obj_ary_crt();
public Db_obj_ary_fxt Init_fld(String name, byte tid) {flds_list.Add(new Db_fld(name, tid)); return this;} private List_adp flds_list = List_adp_.new_();
public Db_obj_ary_fxt Init_fld(String name, int tid) {flds_list.Add(new Db_fld(name, tid)); return this;} private List_adp flds_list = List_adp_.new_();
public Db_obj_ary_fxt Init_vals(Object... ary) {vals_list.Add(ary); return this;} private List_adp vals_list = List_adp_.new_();
public Db_obj_ary_fxt Test_sql(String expd) {
Sql_qry_wtr_ansi cmd_wtr = (Sql_qry_wtr_ansi)Sql_qry_wtr_.I;

View File

@@ -276,9 +276,9 @@ public class Sql_qry_wtr_ansi implements Sql_qry_wtr {
Object val = itm[j];
boolean quote = false;
switch (fld.Type_tid()) {
case ClassAdp_.Tid_str:
case ClassAdp_.Tid_char:
case ClassAdp_.Tid_date:
case Type_adp_.Tid__str:
case Type_adp_.Tid__char:
case Type_adp_.Tid__date:
quote = true;
break;
}

View File

@@ -68,7 +68,7 @@ public class DbMaprWtr extends DataWtr_base implements DataWtr {
}
void WriteDataVal(String fld, Object val) {
if (insertCmd == null) insertCmd = Db_qry_.insert_(curTableName);
if (ClassAdp_.Eq_typeSafe(val, String.class))
if (Type_adp_.Eq_typeSafe(val, String.class))
insertCmd.Arg_obj_type_(fld, val, Db_val_type.Tid_varchar);
else
insertCmd.Arg_obj_(fld, val);