mirror of
https://github.com/gnosygnu/xowa.git
synced 2026-03-02 03:49:30 +00:00
v2.8.3.1
This commit is contained in:
@@ -22,7 +22,7 @@ public class Db_conn {
|
||||
public Db_conn(Db_engine engine) {this.engine = engine;}
|
||||
public Db_conn_info Conn_info() {return engine.Conn_info();}
|
||||
public boolean Eq(Db_conn comp) {return String_.Eq(engine.Conn_info().Xto_api(), comp.Conn_info().Xto_api());}
|
||||
public void Txn_bgn() {engine.Txn_bgn("");}
|
||||
// public void Txn_bgn() {engine.Txn_bgn("");}
|
||||
public void Txn_bgn(String name) {engine.Txn_bgn(name);}
|
||||
public void Txn_end() {engine.Txn_end();}
|
||||
public void Txn_cxl() {engine.Txn_cxl();}
|
||||
@@ -67,7 +67,7 @@ public class Db_conn {
|
||||
public int Exec_sql_plog_txn(String msg, String sql) {return Exec_sql_plog(Bool_.Y, msg, sql);}
|
||||
public int Exec_sql_plog(boolean txn, String msg, String sql) {
|
||||
Gfo_usr_dlg_.I.Plog_many("", "", msg);
|
||||
if (txn) this.Txn_bgn();
|
||||
if (txn) this.Txn_bgn(msg);
|
||||
int rv = Exec_sql(sql);
|
||||
if (txn) this.Txn_end();
|
||||
Gfo_usr_dlg_.I.Plog_many("", "", "done:" + msg);
|
||||
|
||||
@@ -37,7 +37,7 @@ public abstract class Db_conn_info__base implements Db_conn_info {
|
||||
if (hash.Has(xtn.Key())) continue;
|
||||
sb.Add_fmt("{0}={1};", xtn.Key(), xtn.Val_to_str_or_empty());
|
||||
}
|
||||
return sb.XtoStr();
|
||||
return sb.To_str();
|
||||
}
|
||||
protected static String Bld_raw(String... ary) {
|
||||
Bry_bfr bfr = Bry_bfr.reset_(255);
|
||||
|
||||
21
140_dbs/src/gplx/dbs/Db_tbl.java
Normal file
21
140_dbs/src/gplx/dbs/Db_tbl.java
Normal file
@@ -0,0 +1,21 @@
|
||||
/*
|
||||
XOWA: the XOWA Offline Wiki Application
|
||||
Copyright (C) 2012 gnosygnu@gmail.com
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package gplx.dbs; import gplx.*;
|
||||
public interface Db_tbl extends RlsAble {
|
||||
void Create_tbl();
|
||||
}
|
||||
30
140_dbs/src/gplx/dbs/Db_tbl_.java
Normal file
30
140_dbs/src/gplx/dbs/Db_tbl_.java
Normal file
@@ -0,0 +1,30 @@
|
||||
/*
|
||||
XOWA: the XOWA Offline Wiki Application
|
||||
Copyright (C) 2012 gnosygnu@gmail.com
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU Affero General Public License as
|
||||
published by the Free Software Foundation, either version 3 of the
|
||||
License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU Affero General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package gplx.dbs; import gplx.*;
|
||||
public class Db_tbl_ {
|
||||
public static void Create_tbl(Db_tbl... ary) {
|
||||
int len = ary.length;
|
||||
for (int i = 0; i < len; ++i)
|
||||
ary[i].Create_tbl();
|
||||
}
|
||||
public static void Rls(Db_tbl... ary) {
|
||||
int len = ary.length;
|
||||
for (int i = 0; i < len; ++i)
|
||||
ary[i].Rls();
|
||||
}
|
||||
}
|
||||
@@ -26,7 +26,7 @@ public interface Db_engine {
|
||||
Object New_stmt_prep_as_obj(String sql);
|
||||
DataRdr New_rdr(java.sql.ResultSet rdr, String sql);
|
||||
void Txn_bgn(String name);
|
||||
void Txn_end();
|
||||
String Txn_end();
|
||||
void Txn_cxl();
|
||||
void Txn_sav();
|
||||
void Conn_open();
|
||||
|
||||
@@ -27,10 +27,13 @@ public abstract class Db_engine_sql_base implements Db_engine {
|
||||
public Db_rdr New_rdr__rls_auto(Db_stmt stmt, Object rdr_obj, String sql) {return New_rdr(stmt, rdr_obj, sql);}
|
||||
@gplx.Virtual public Db_rdr New_rdr_clone() {return new Db_rdr__basic();}
|
||||
public Db_stmt New_stmt_prep(Db_qry qry) {return new Db_stmt_cmd(this, qry);}
|
||||
@gplx.Virtual public void Txn_bgn(String name) {Exec_as_obj(Db_qry_sql.xtn_("BEGIN TRANSACTION;"));}
|
||||
@gplx.Virtual public void Txn_end() {Exec_as_obj(Db_qry_sql.xtn_("COMMIT TRANSACTION;"));}
|
||||
@gplx.Virtual public void Txn_cxl() {Exec_as_obj(Db_qry_sql.xtn_("ROLLBACK TRANSACTION;"));}
|
||||
@gplx.Virtual public void Txn_sav() {this.Txn_end(); this.Txn_bgn("");}
|
||||
@gplx.Virtual public void Txn_bgn(String name) {Exec_as_obj(Db_qry_sql.xtn_("BEGIN TRANSACTION;"));}
|
||||
@gplx.Virtual public String Txn_end() {Exec_as_obj(Db_qry_sql.xtn_("COMMIT TRANSACTION;")); return "";}
|
||||
@gplx.Virtual public void Txn_cxl() {Exec_as_obj(Db_qry_sql.xtn_("ROLLBACK TRANSACTION;"));}
|
||||
@gplx.Virtual public void Txn_sav() {
|
||||
String txn_name = this.Txn_end();
|
||||
this.Txn_bgn(txn_name);
|
||||
}
|
||||
public Object Exec_as_obj(Db_qry qry) {
|
||||
if (qry.Tid() == Db_qry_.Tid_flush) return null; // ignore flush (delete-db) statements
|
||||
String sql = this.SqlWtr().Xto_str(qry, false); // DBG: Tfds.Write(sql);
|
||||
|
||||
@@ -25,7 +25,7 @@ public class Db_engine__mem implements Db_engine {
|
||||
public Db_stmt New_stmt_prep(Db_qry qry) {return new Db_stmt__mem(this, qry);}
|
||||
public Mem_tbl Tbls_get(String name) {return (Mem_tbl)tbl_hash.Get_by(name);}
|
||||
public void Txn_bgn(String name) {++txn_count;} private int txn_count = 0;
|
||||
public void Txn_end() {--txn_count;}
|
||||
public String Txn_end() {--txn_count; return "";}
|
||||
public void Txn_cxl() {--txn_count;}
|
||||
public void Txn_sav() {this.Txn_end(); this.Txn_bgn("");}
|
||||
public Object Exec_as_obj(Db_qry qry) {throw Err_.new_unimplemented();}
|
||||
|
||||
@@ -28,7 +28,7 @@ public class Noop_engine implements Db_engine {
|
||||
public Object New_stmt_prep_as_obj(String sql) {throw Err_.new_unimplemented();}
|
||||
public DataRdr New_rdr(java.sql.ResultSet rdr, String sql) {return DataRdr_.Null;}
|
||||
public void Txn_bgn(String name) {}
|
||||
public void Txn_end() {}
|
||||
public String Txn_end() {return "";}
|
||||
public void Txn_cxl() {}
|
||||
public void Txn_sav() {}
|
||||
public Object Exec_as_obj(Db_qry cmd) {return cmd.Exec_is_rdr() ? (Object)DataRdr_.Null : -1;}
|
||||
|
||||
@@ -36,7 +36,7 @@ public class Sqlite_engine extends Db_engine_sql_base {
|
||||
@Override public void Env_db_attach(String alias, Io_url db_url) {Exec_as_int(String_.Format("ATTACH '{0}' AS {1};", db_url.Raw(), alias));}
|
||||
@Override public void Env_db_detach(String alias) {Exec_as_int(String_.Format("DETACH {0};", alias));}
|
||||
@Override public void Txn_bgn(String name) {txn_mgr.Txn_bgn(name);}
|
||||
@Override public void Txn_end() {txn_mgr.Txn_end();}
|
||||
@Override public String Txn_end() {return txn_mgr.Txn_end();}
|
||||
@Override public void Txn_cxl() {txn_mgr.Txn_cxl();}
|
||||
@Override public void Txn_sav() {txn_mgr.Txn_sav();}
|
||||
@Override public boolean Meta_tbl_exists(String tbl) {return schema_mgr.Tbl_exists(tbl);}
|
||||
|
||||
@@ -42,8 +42,8 @@ public class Sqlite_txn_mgr {
|
||||
}
|
||||
txn_list.Add(name);
|
||||
}
|
||||
public void Txn_end() {
|
||||
if (txn_list.Count() == 0) {Gfo_usr_dlg_.I.Warn_many("", "", "no txns in stack;"); return;}
|
||||
public String Txn_end() {
|
||||
if (txn_list.Count() == 0) {Gfo_usr_dlg_.I.Warn_many("", "", "no txns in stack;"); return "";}
|
||||
String txn_last = (String)List_adp_.Pop_last(txn_list);
|
||||
if (txn_list.Count() == 0) {// no txns left; commit it
|
||||
engine.Exec_as_obj(Db_qry_sql.xtn_("COMMIT TRANSACTION;"));
|
||||
@@ -51,6 +51,7 @@ public class Sqlite_txn_mgr {
|
||||
}
|
||||
else
|
||||
engine.Exec_as_obj(Db_qry_sql.xtn_(String_.Format("RELEASE SAVEPOINT {0};", txn_last)));
|
||||
return txn_last;
|
||||
}
|
||||
public void Txn_cxl() {
|
||||
if (txn_list.Count() == 0) {Gfo_usr_dlg_.I.Warn_many("", "", "no txns in stack;"); return;}
|
||||
|
||||
@@ -45,7 +45,7 @@ public class TdbDbLoadMgr_tst {
|
||||
Tfds.Eq(file2.Path().Raw(), "C:\\file.dsv");
|
||||
|
||||
db.Files().DataObj_Wtr(wtr);
|
||||
Tfds.Eq(wtr.XtoStr(), raw);
|
||||
Tfds.Eq(wtr.To_str(), raw);
|
||||
}
|
||||
@Test public void ReadDbTbls() {
|
||||
String raw = String_.Concat_lines_crlf
|
||||
@@ -66,7 +66,7 @@ public class TdbDbLoadMgr_tst {
|
||||
Tfds.Eq(table.File().Id(), 1);
|
||||
|
||||
db.Tables().DataObj_Wtr(wtr);
|
||||
Tfds.Eq(wtr.XtoStr(), raw);
|
||||
Tfds.Eq(wtr.To_str(), raw);
|
||||
}
|
||||
@Test public void ReadTbl() {
|
||||
String raw = String_.Concat_lines_crlf
|
||||
@@ -91,7 +91,7 @@ public class TdbDbLoadMgr_tst {
|
||||
Tfds.Eq(row.Read("name"), "me");
|
||||
|
||||
tbl.DataObj_Wtr(wtr);
|
||||
Tfds.Eq(wtr.XtoStr(), raw);
|
||||
Tfds.Eq(wtr.To_str(), raw);
|
||||
}
|
||||
DataRdr rdr_(String raw) {
|
||||
DataRdr rdr = DsvDataRdr_.dsv_(raw);
|
||||
|
||||
@@ -48,7 +48,7 @@ class TdbDbSaveMgr {
|
||||
TdbTable tbl = (TdbTable)tblObj;
|
||||
tbl.DataObj_Wtr(wtr);
|
||||
}
|
||||
Io_mgr.I.SaveFilStr(fil.Path(), wtr.XtoStr());
|
||||
Io_mgr.I.SaveFilStr(fil.Path(), wtr.To_str());
|
||||
}
|
||||
List_adp FetchTablesWithSamePath(TdbDatabase db, Io_url filPath) {
|
||||
List_adp list = List_adp_.new_();
|
||||
|
||||
@@ -37,7 +37,7 @@ public class TdbDbSaveMgr_tst {
|
||||
, "1,mem/dir/db0.dsv,dsv"
|
||||
);
|
||||
db.Files().DataObj_Wtr(wtr);
|
||||
String actl = wtr.XtoStr();
|
||||
String actl = wtr.To_str();
|
||||
Tfds.Eq(expd, actl);
|
||||
}
|
||||
@Test public void WriteDbTbls() {
|
||||
@@ -52,7 +52,7 @@ public class TdbDbSaveMgr_tst {
|
||||
, "================================, ,\" \",//"
|
||||
);
|
||||
db.Tables().DataObj_Wtr(wtr);
|
||||
String actl = wtr.XtoStr();
|
||||
String actl = wtr.To_str();
|
||||
Tfds.Eq(expd, actl);
|
||||
}
|
||||
@Test public void WriteTbl() {
|
||||
@@ -71,7 +71,7 @@ public class TdbDbSaveMgr_tst {
|
||||
tbl.Flds().Add("name", StringClassXtn._);
|
||||
|
||||
tbl.DataObj_Wtr(wtr);
|
||||
String actl = wtr.XtoStr();
|
||||
String actl = wtr.To_str();
|
||||
Tfds.Eq(expd, actl);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -28,7 +28,7 @@ public class TdbEngine implements Db_engine {
|
||||
}
|
||||
public void Conn_term() {}
|
||||
public void Txn_bgn(String name) {}
|
||||
public void Txn_end() {}
|
||||
public String Txn_end() {return "";}
|
||||
public void Txn_cxl() {}
|
||||
public void Txn_sav() {}
|
||||
public Db_engine New_clone(Db_conn_info conn_info) {
|
||||
|
||||
@@ -18,7 +18,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
package gplx.dbs.engines.tdbs; import gplx.*; import gplx.dbs.*; import gplx.dbs.engines.*;
|
||||
import gplx.lists.*; /*Ordered_hash_base*/ import gplx.stores.dsvs.*; /*DsvStoreLayout*/
|
||||
public class TdbFileList extends Ordered_hash_base {
|
||||
public TdbFile Get_by_or_fail(int id) {return TdbFile.as_(FetchOrFail_base(id));}
|
||||
public TdbFile Get_by_or_fail(int id) {return TdbFile.as_(Get_by_or_fail_base(id));}
|
||||
public void Add(TdbFile src) {Add_base(src.Id(), src);}
|
||||
|
||||
Io_url dbInfo;
|
||||
|
||||
@@ -34,7 +34,7 @@ class TdbInsertWkr implements Db_qryWkr {
|
||||
GfoFldList selectFldsForNewRow = null;
|
||||
try {selectFldsForNewRow = insertFlds.XtoGfoFldLst(tbl);}
|
||||
catch (Exception e) {throw Err_.new_exc(e, "db", "failed to generate flds for new row");}
|
||||
if (insertFldsCount > selectFldsForNewRow.Count()) throw Err_.new_wo_type("insert flds cannot exceed selectFlds", "insertFlds", insertFlds.XtoStr(), "selectFlds", selectFldsForNewRow.XtoStr());
|
||||
if (insertFldsCount > selectFldsForNewRow.Count()) throw Err_.new_wo_type("insert flds cannot exceed selectFlds", "insertFlds", insertFlds.To_str(), "selectFlds", selectFldsForNewRow.To_str());
|
||||
while (rdr.MoveNextPeer()) {
|
||||
count++;
|
||||
GfoNde row = GfoNde_.vals_(selectFldsForNewRow, new Object[insertFldsCount]);
|
||||
|
||||
@@ -56,7 +56,7 @@ public class Db_qry__select_in_tbl implements Db_qry {
|
||||
if (having_sql != null) sb.Add(having_sql);
|
||||
if (order_by_sql != null) {sb.Add(" ORDER BY "); sb.Add(order_by_sql);}
|
||||
if (limit_sql != null) sb.Add(limit_sql);
|
||||
return sb.XtoStr();
|
||||
return sb.To_str();
|
||||
}
|
||||
}
|
||||
public static Db_qry__select_in_tbl new_(String base_table, String[] where_flds, String[] select_flds, String[] order_flds) {
|
||||
|
||||
@@ -72,18 +72,18 @@ public class Db_qry_select_tst {
|
||||
// @Test public void GroupBy() {
|
||||
// cmd.From_("tbl0").groupBy_("fld0", "fld1");
|
||||
// expd = "SELECT fld0, fld1 FROM tbl0 GROUP BY fld0, fld1";
|
||||
// Tfds.Eq(cmd.XtoStr(), expd);
|
||||
// Tfds.Eq(cmd.To_str(), expd);
|
||||
// }
|
||||
// @Test public void Union() {
|
||||
// cmd.From_("tbl0").select("fld0").union_(qry2.from("tbl1").select("fld0"));
|
||||
// cmd.From_("tbl0").select("fld0").union_().from("tbl1").select("fld0"); // feasible, but will be bad later when trying to access Db_qry__select_cmd props
|
||||
// expd = "SELECT fld0 FROM tbl0 UNION SELECT fld0 FROM tbl1";
|
||||
// Tfds.Eq(cmd.XtoStr(), expd);
|
||||
// Tfds.Eq(cmd.To_str(), expd);
|
||||
// }
|
||||
// @Test public void Having() {
|
||||
// cmd.From_("tbl0").groupBy_("fld0", "fld1");
|
||||
// expd = "SELECT fld0, fld1 FROM tbl0 GROUP BY fld0, fld1 HAVING Count(fld0) > 1";
|
||||
// Tfds.Eq(cmd.XtoStr(), expd);
|
||||
// Tfds.Eq(cmd.To_str(), expd);
|
||||
// }
|
||||
void tst_XtoStr(Db_qry qry, String expd) {Tfds.Eq(expd, cmd.Xto_sql());}
|
||||
}
|
||||
|
||||
@@ -24,7 +24,7 @@ public class Db_obj_ary_crt implements gplx.core.criterias.Criteria {
|
||||
public void Val_from_args(Hash_adp args) {throw Err_.new_unimplemented();}
|
||||
public void Val_as_obj_(Object v) {throw Err_.new_unimplemented();}
|
||||
public boolean Matches(Object obj) {return false;}
|
||||
public String XtoStr() {return "";}
|
||||
public String To_str() {return "";}
|
||||
public static Db_obj_ary_crt new_(Db_fld... flds) {return new Db_obj_ary_crt().Flds_(flds);}
|
||||
public static Db_obj_ary_crt new_by_type(byte type_tid, String... names) {
|
||||
int len = names.length;
|
||||
|
||||
@@ -211,7 +211,7 @@ public class Sql_qry_wtr_ansi implements Sql_qry_wtr {
|
||||
Append_db_obj_ary(sb, (Db_obj_ary_crt)crt);
|
||||
}
|
||||
else {
|
||||
Criteria_fld leaf = Criteria_fld.as_(crt); if (leaf == null) throw Err_.new_invalid_op(crt.XtoStr());
|
||||
Criteria_fld leaf = Criteria_fld.as_(crt); if (leaf == null) throw Err_.new_invalid_op(crt.To_str());
|
||||
sb.Add(leaf.Key());
|
||||
Bld_where_crt(sb, leaf.Crt());
|
||||
}
|
||||
|
||||
@@ -55,6 +55,6 @@ public class Sql_qry_wtr_iosql_tst {
|
||||
String_bldr sb = String_bldr_.new_();
|
||||
Sql_qry_wtr_ansi whereWtr = (Sql_qry_wtr_ansi)Sql_qry_wtr_.new_ansi();
|
||||
whereWtr.Bld_where_val(sb, crt);
|
||||
Tfds.Eq(expd, sb.XtoStr());
|
||||
Tfds.Eq(expd, sb.To_str());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -50,11 +50,11 @@ class Sql_qry_wtr_fxt {
|
||||
String_bldr sb = String_bldr_.new_();
|
||||
Db_arg arg = new Db_arg("not needed", val);
|
||||
sql_wtr.Bld_val(sb, arg);
|
||||
Tfds.Eq(expd, sb.XtoStr());
|
||||
Tfds.Eq(expd, sb.To_str());
|
||||
}
|
||||
public void Test_where(Criteria crt, String expd) {
|
||||
String_bldr sb = String_bldr_.new_();
|
||||
sql_wtr.Bld_where_val(sb, crt);
|
||||
Tfds.Eq(expd, sb.XtoStr());
|
||||
Tfds.Eq(expd, sb.To_str());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -28,8 +28,8 @@ public class Sql_select_fld_list {
|
||||
for (int i = 0; i < this.Count(); i++) {
|
||||
Sql_select_fld_base selectFld = this.Get_at(i);
|
||||
GfoFld fld = tbl.Flds().FetchOrNull(selectFld.Fld());
|
||||
if (fld == null) throw Err_.new_wo_type("fld not found in tbl", "fldName", selectFld.Fld(), "tblName", tbl.Name(), "tblFlds", tbl.Flds().XtoStr());
|
||||
if (rv.Has(selectFld.Alias())) throw Err_.new_wo_type("alias is not unique", "fldName", selectFld.Fld(), "flds", rv.XtoStr());
|
||||
if (fld == null) throw Err_.new_wo_type("fld not found in tbl", "fldName", selectFld.Fld(), "tblName", tbl.Name(), "tblFlds", tbl.Flds().To_str());
|
||||
if (rv.Has(selectFld.Alias())) throw Err_.new_wo_type("alias is not unique", "fldName", selectFld.Fld(), "flds", rv.To_str());
|
||||
selectFld.GroupBy_type(fld);
|
||||
rv.Add(selectFld.Alias(), selectFld.ValType());
|
||||
}
|
||||
@@ -44,13 +44,13 @@ public class Sql_select_fld_list {
|
||||
}
|
||||
return rv;
|
||||
}
|
||||
public String XtoStr() {
|
||||
public String To_str() {
|
||||
String_bldr sb = String_bldr_.new_();
|
||||
for (int i = 0; i < this.Count(); i++) {
|
||||
Sql_select_fld_base fld = this.Get_at(i);
|
||||
sb.Add_fmt("{0},{1}|", fld.Fld(), fld.Alias());
|
||||
}
|
||||
return sb.XtoStr();
|
||||
return sb.To_str();
|
||||
}
|
||||
Ordered_hash hash = Ordered_hash_.new_();
|
||||
public static Sql_select_fld_list new_() {return new Sql_select_fld_list();} Sql_select_fld_list() {}
|
||||
|
||||
@@ -23,7 +23,7 @@ public class DbMaprRdr extends DataRdr_base implements SrlMgr {
|
||||
mgr = (DbMaprMgr)this.EnvVars().Get_by_or_fail(DbMaprWtr.Key_Mgr);
|
||||
DbMaprItm rootMapr = mgr.Root();
|
||||
|
||||
GfoNde tbl = GetTbl(rootMapr, rootCrt); int subsCount = tbl.Subs().Count(); if (subsCount == 0) return null; if (subsCount > 1) throw Err_.new_wo_type("criteria returned > 1 row", "criteria", rootCrt.XtoStr(), "subsCount", subsCount);
|
||||
GfoNde tbl = GetTbl(rootMapr, rootCrt); int subsCount = tbl.Subs().Count(); if (subsCount == 0) return null; if (subsCount > 1) throw Err_.new_wo_type("criteria returned > 1 row", "criteria", rootCrt.To_str(), "subsCount", subsCount);
|
||||
SrlObj root = subProto.SrlObj_New(null);
|
||||
mgr.EnvStack_add(rootMapr, root); RowStack_add(tbl, 0);
|
||||
root.SrlObj_Srl(this);
|
||||
|
||||
@@ -81,7 +81,7 @@ public class DbMaprWtr extends DataWtr_base implements DataWtr {
|
||||
public void WriteLeafBgn(String leafName) {}
|
||||
public void WriteLeafEnd() {}
|
||||
public void Clear() {}
|
||||
public String XtoStr() {return "";}
|
||||
public String To_str() {return "";}
|
||||
@Override public SrlMgr SrlMgr_new(Object o) {return new DbMaprWtr();}
|
||||
DbMaprMgr mgr; Db_conn conn; String curTableName; Db_qry_insert insertCmd;
|
||||
public static DbMaprWtr new_by_url_(Db_conn_info url) {
|
||||
|
||||
@@ -23,7 +23,7 @@ import java.sql.Timestamp;
|
||||
import java.util.GregorianCalendar;
|
||||
import gplx.dbs.*;
|
||||
public class Db_data_rdr extends DataRdr_base implements DataRdr {
|
||||
@Override public String NameOfNode() {return commandText;} public String XtoStr() {return commandText;} private String commandText;
|
||||
@Override public String NameOfNode() {return commandText;} public String To_str() {return commandText;} private String commandText;
|
||||
private ResultSet rdr;
|
||||
private int fieldCount;
|
||||
@Override public int FieldCount() {return fieldCount;}
|
||||
|
||||
Reference in New Issue
Block a user