mirror of
https://github.com/gnosygnu/xowa.git
synced 2024-10-27 20:34:16 +00:00
Cfg: Add more implementation for create grp / itm
This commit is contained in:
parent
fd712c16f3
commit
323aba310c
@ -21,11 +21,11 @@ public class Dbmeta_fld_tid {
|
||||
public Dbmeta_fld_tid(int tid_ansi, int tid_sqlite, byte[] name, int len_1, int len_2) {
|
||||
this.tid_ansi = tid_ansi; this.tid_sqlite = tid_sqlite; this.name = name; this.len_1 = len_1; this.len_2 = len_2;
|
||||
}
|
||||
public int Tid_ansi() {return tid_ansi;} private final int tid_ansi;
|
||||
public int Tid_sqlite() {return tid_sqlite;} private final int tid_sqlite;
|
||||
public byte[] Name() {return name;} private final byte[] name;
|
||||
public int Len_1() {return len_1;} private final int len_1;
|
||||
public int Len_2() {return len_2;} private final int len_2;
|
||||
public int Tid_ansi() {return tid_ansi;} private final int tid_ansi;
|
||||
public int Tid_sqlite() {return tid_sqlite;} private final int tid_sqlite;
|
||||
public byte[] Name() {return name;} private final byte[] name;
|
||||
public int Len_1() {return len_1;} private final int len_1;
|
||||
public int Len_2() {return len_2;} private final int len_2;
|
||||
public boolean Eq(Dbmeta_fld_tid comp) {
|
||||
return tid_ansi == comp.tid_ansi
|
||||
&& tid_sqlite == comp.tid_sqlite
|
||||
@ -35,7 +35,7 @@ public class Dbmeta_fld_tid {
|
||||
}
|
||||
|
||||
public static final int Tid__bool = 0, Tid__byte = 1, Tid__short = 2, Tid__int = 3, Tid__long = 4, Tid__float = 5, Tid__double = 6, Tid__str = 7, Tid__text = 8, Tid__bry = 9, Tid__decimal = 10, Tid__date = 11;
|
||||
public static final Dbmeta_fld_tid
|
||||
public static final Dbmeta_fld_tid
|
||||
Itm__byte = new Dbmeta_fld_tid(Dbmeta_fld_tid.Tid__byte , Sqlite_tid.Tid_int , Bry_.new_a7("tinyint") , -1, -1)
|
||||
, Itm__short = new Dbmeta_fld_tid(Dbmeta_fld_tid.Tid__short , Sqlite_tid.Tid_int , Bry_.new_a7("smallint") , -1, -1)
|
||||
, Itm__int = new Dbmeta_fld_tid(Dbmeta_fld_tid.Tid__int , Sqlite_tid.Tid_int , Bry_.new_a7("integer") , -1, -1)
|
||||
@ -67,4 +67,7 @@ public class Dbmeta_fld_tid {
|
||||
default: throw Err_.new_unhandled(tid);
|
||||
}
|
||||
}
|
||||
public static Dbmeta_fld_itm To_itm(String raw) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
@ -16,9 +16,10 @@ 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.xowa.addons.apps.cfgs.dbs; import gplx.*; import gplx.xowa.*; import gplx.xowa.addons.*; import gplx.xowa.addons.apps.*; import gplx.xowa.addons.apps.cfgs.*;
|
||||
import gplx.dbs.*;
|
||||
import gplx.dbs.*; import gplx.dbs.utls.*;
|
||||
public class Xocfg_db_mgr {
|
||||
public Xocfg_db_mgr(Db_conn conn) {
|
||||
this.conn = conn;
|
||||
this.tbl__grp_meta = new Xogrp_meta_tbl(conn);
|
||||
this.tbl__grp_map = new Xogrp_map_tbl(conn);
|
||||
this.tbl__itm_meta = new Xoitm_meta_tbl(conn);
|
||||
@ -26,6 +27,7 @@ public class Xocfg_db_mgr {
|
||||
this.tbl__nde_i18n = new Xonde_i18n_tbl(conn);
|
||||
conn.Meta_tbl_assert(tbl__grp_meta, tbl__grp_map, tbl__itm_meta, tbl__itm_data, tbl__nde_i18n);
|
||||
}
|
||||
public Db_conn Conn() {return conn;} private final Db_conn conn;
|
||||
public Xogrp_meta_tbl Tbl__grp_meta() {return tbl__grp_meta;} private final Xogrp_meta_tbl tbl__grp_meta;
|
||||
public Xogrp_map_tbl Tbl__grp_map() {return tbl__grp_map ;} private final Xogrp_map_tbl tbl__grp_map;
|
||||
public Xoitm_meta_tbl Tbl__itm_meta() {return tbl__itm_meta;} private final Xoitm_meta_tbl tbl__itm_meta;
|
||||
|
@ -18,31 +18,36 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
package gplx.xowa.addons.apps.cfgs.dbs; import gplx.*; import gplx.xowa.*; import gplx.xowa.addons.*; import gplx.xowa.addons.apps.*; import gplx.xowa.addons.apps.cfgs.*;
|
||||
public class Xocfg_itm_bldr {
|
||||
private final Xocfg_db_mgr db_mgr;
|
||||
private final String Lang__dflt = "en";
|
||||
public Xocfg_itm_bldr(Xocfg_db_mgr db_mgr) {
|
||||
this.db_mgr = db_mgr;
|
||||
}
|
||||
public void Create_grp(String owner_key, String grp_key, String grp_name, String grp_help) {
|
||||
int grp_id = 1; // select Max(id) + 1 from cfg_grp_meta;
|
||||
|
||||
// insert grp_meta
|
||||
int grp_id = db_mgr.Conn().Sys_mgr().Autonum_next("cfg_grp_meta.grp_id");
|
||||
db_mgr.Tbl__grp_meta().Upsert(grp_id, grp_key);
|
||||
|
||||
int owner_id = 1; // select id from cfg_grp_meta where key = owner_key;
|
||||
int map_sort = 1; // select Max(map_sort) + 1 from cfg_grp_map where map_src = owner_id;
|
||||
// insert grp_map
|
||||
int owner_id = String_.Len_eq_0(owner_key) ? Xogrp_meta_itm.Id__root : db_mgr.Tbl__grp_meta().Select_id_by_key_or_fail(owner_key);
|
||||
int map_sort = db_mgr.Tbl__grp_map().Select_next_sort(owner_id);
|
||||
db_mgr.Tbl__grp_map().Upsert(owner_id, grp_id, map_sort);
|
||||
|
||||
int nde_type = 0; // 0=grp; 1=itm
|
||||
db_mgr.Tbl__nde_i18n().Upsert(nde_type, grp_id, "en", grp_name, grp_help);
|
||||
// insert nde_i18n
|
||||
db_mgr.Tbl__nde_i18n().Upsert(Xonde_i18n_nde_tid.Tid__grp, grp_id, Lang__dflt, grp_name, grp_help);
|
||||
}
|
||||
public void Create_itm(String grp_key, String itm_key, String scope_id_str, String type_id_str, String itm_dflt, String itm_name, String help) {
|
||||
int grp_id = 1; // select id from cfg_grp_meta WHERE key = grp_key;
|
||||
int itm_id = 1; // select Max(itm_id) + 1 from cfg_itm_meta
|
||||
int itm_sort = 1; // Select Max(itm_sort) + 1 FROM cfg_itm_meta WHERE grp_id = grp_id;
|
||||
int scope_id = 1; // app-level,wiki-level,ns-level...
|
||||
int type_id = 1; // boolean,int,String...
|
||||
// insert itm_meta
|
||||
int grp_id = db_mgr.Tbl__grp_meta().Select_id_by_key_or_fail(grp_key);
|
||||
int itm_id = db_mgr.Conn().Sys_mgr().Autonum_next("cfg_itm_meta.itm_id");
|
||||
int scope_id = Xoitm_meta_scope_tid.To_int(scope_id_str);
|
||||
int type_id = 1; // boolean,int:40,list:a|b|c,String:40,note:50,70;file;button?;label?
|
||||
db_mgr.Tbl__itm_meta().Upsert(itm_id, scope_id, type_id, itm_key, itm_dflt);
|
||||
|
||||
db_mgr.Tbl__itm_meta().Upsert(grp_id, itm_id, itm_sort, scope_id, type_id, itm_key, itm_dflt);
|
||||
// insert grp_map
|
||||
int itm_sort = db_mgr.Tbl__grp_map().Select_next_sort(grp_id);
|
||||
db_mgr.Tbl__grp_map().Upsert(grp_id, itm_id, itm_sort);
|
||||
|
||||
int nde_type = 1; // 0=grp; 1=itm
|
||||
db_mgr.Tbl__nde_i18n().Upsert(nde_type, itm_id, "en", itm_name, help);
|
||||
// insert nde_i18n
|
||||
db_mgr.Tbl__nde_i18n().Upsert(Xonde_i18n_nde_tid.Tid__itm, itm_id, Lang__dflt, itm_name, help);
|
||||
}
|
||||
}
|
||||
|
@ -34,11 +34,17 @@ public class Xogrp_map_tbl implements Db_tbl {
|
||||
public void Upsert(int map_src, int map_trg, int map_sort) {
|
||||
Db_tbl__crud_.Upsert(conn, tbl_name, flds, String_.Ary(fld__map_src), map_src, map_trg, map_sort);
|
||||
}
|
||||
public void Select_stub() {
|
||||
Db_rdr rdr = Db_rdr_.Empty;
|
||||
rdr.Read_int(fld__map_src);
|
||||
rdr.Read_int(fld__map_trg);
|
||||
rdr.Read_int(fld__map_sort);
|
||||
public int Select_next_sort(int owner_id) {
|
||||
Db_rdr rdr = conn.Stmt_select(tbl_name, flds, fld__map_src).Crt_int(fld__map_src, owner_id).Exec_select__rls_auto();
|
||||
try {
|
||||
return rdr.Move_next()
|
||||
? rdr.Read_int(fld__map_sort) + 1
|
||||
: 0;
|
||||
}
|
||||
finally {rdr.Rls();}
|
||||
}
|
||||
public void Delete(int src_id, int trg_id) {
|
||||
conn.Stmt_delete(tbl_name, fld__map_src, fld__map_trg).Crt_int(fld__map_src, src_id).Crt_int(fld__map_trg, trg_id).Exec_delete();
|
||||
}
|
||||
public void Rls() {}
|
||||
}
|
||||
|
@ -0,0 +1,28 @@
|
||||
/*
|
||||
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.xowa.addons.apps.cfgs.dbs; import gplx.*; import gplx.xowa.*; import gplx.xowa.addons.*; import gplx.xowa.addons.apps.*; import gplx.xowa.addons.apps.cfgs.*;
|
||||
public class Xogrp_meta_itm {
|
||||
public Xogrp_meta_itm(int id, String key) {
|
||||
this.id = id;
|
||||
this.key = key;
|
||||
}
|
||||
public int Id() {return id;} private final int id;
|
||||
public String Key() {return key;} private final String key;
|
||||
|
||||
public static final int Id__root = -1;
|
||||
}
|
@ -23,20 +23,31 @@ public class Xogrp_meta_tbl implements Db_tbl {
|
||||
private final Db_conn conn;
|
||||
public Xogrp_meta_tbl(Db_conn conn) {
|
||||
this.conn = conn;
|
||||
this.tbl_name = "cfg_grp_meta";
|
||||
this.fld__grp_id = flds.Add_int("grp_id");
|
||||
this.fld__grp_key = flds.Add_str("grp_key", 255);
|
||||
conn.Rls_reg(this);
|
||||
}
|
||||
public String Tbl_name() {return tbl_name;} private final String tbl_name;
|
||||
public String Tbl_name() {return tbl_name;} private final String tbl_name = TBL_NAME;
|
||||
public void Create_tbl() {conn.Meta_tbl_create(Dbmeta_tbl_itm.New(tbl_name, flds));}
|
||||
public void Upsert(int grp_id, String grp_key) {
|
||||
Db_tbl__crud_.Upsert(conn, tbl_name, flds, String_.Ary(fld__grp_id), grp_id, grp_key);
|
||||
}
|
||||
public void Select_stub() {
|
||||
Db_rdr rdr = Db_rdr_.Empty;
|
||||
rdr.Read_int(fld__grp_id);
|
||||
rdr.Read_str(fld__grp_key);
|
||||
public int Select_id_by_key_or_fail(String key) {
|
||||
Xogrp_meta_itm itm = this.Select_by_key_or_null(key);
|
||||
if (itm == null) throw Err_.new_wo_type("cfg.grp:invalid key", "key", key);
|
||||
return itm.Id();
|
||||
}
|
||||
public Xogrp_meta_itm Select_by_key_or_null(String key) {
|
||||
Db_rdr rdr = conn.Stmt_select(tbl_name, flds, fld__grp_key).Crt_str(fld__grp_key, key).Exec_select__rls_auto();
|
||||
try {return rdr.Move_next() ? Load(rdr): null;}
|
||||
finally {rdr.Rls();}
|
||||
}
|
||||
private Xogrp_meta_itm Load(Db_rdr rdr) {
|
||||
return new Xogrp_meta_itm
|
||||
( rdr.Read_int(fld__grp_id)
|
||||
, rdr.Read_str(fld__grp_key)
|
||||
);
|
||||
}
|
||||
public void Rls() {}
|
||||
public static final String TBL_NAME = "cfg_grp_meta";
|
||||
}
|
||||
|
@ -17,18 +17,14 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package gplx.xowa.addons.apps.cfgs.dbs; import gplx.*; import gplx.xowa.*; import gplx.xowa.addons.*; import gplx.xowa.addons.apps.*; import gplx.xowa.addons.apps.cfgs.*;
|
||||
public class Xoitm_meta_itm {
|
||||
public Xoitm_meta_itm(int grp_id, int id, int itm_sort, int scope_id, int type_id, String key, String dflt) {
|
||||
this.grp_id = grp_id;
|
||||
public Xoitm_meta_itm(int id, int scope_id, int type_id, String key, String dflt) {
|
||||
this.id = id;
|
||||
this.itm_sort = itm_sort;
|
||||
this.scope_id = scope_id;
|
||||
this.type_id = type_id;
|
||||
this.key = key;
|
||||
this.dflt = dflt;
|
||||
}
|
||||
public int Grp_id() {return grp_id;} private final int grp_id;
|
||||
public int Id() {return id;} private final int id;
|
||||
public int Itm_sort() {return itm_sort;} private final int itm_sort;
|
||||
public int Scope_id() {return scope_id;} private final int scope_id;
|
||||
public int Type_id() {return type_id;} private final int type_id;
|
||||
public String Key() {return key;} private final String key;
|
||||
|
@ -0,0 +1,26 @@
|
||||
/*
|
||||
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.xowa.addons.apps.cfgs.dbs; import gplx.*; import gplx.xowa.*; import gplx.xowa.addons.*; import gplx.xowa.addons.apps.*; import gplx.xowa.addons.apps.cfgs.*;
|
||||
public class Xoitm_meta_scope_tid {
|
||||
public static final int Tid__app = 1, Tid__wiki = 2;
|
||||
public static int To_int(String raw) {
|
||||
if (String_.Eq(raw, "app")) return Tid__app;
|
||||
else if (String_.Eq(raw, "wiki")) return Tid__wiki;
|
||||
else throw Err_.new_unhandled_default(raw);
|
||||
}
|
||||
}
|
@ -19,14 +19,12 @@ package gplx.xowa.addons.apps.cfgs.dbs; import gplx.*; import gplx.xowa.*; impor
|
||||
import gplx.dbs.*; import gplx.dbs.utls.*;
|
||||
public class Xoitm_meta_tbl implements Db_tbl {
|
||||
private final Dbmeta_fld_list flds = new Dbmeta_fld_list();
|
||||
private final String fld__grp_id, fld__itm_id, fld__itm_sort, fld__itm_key, fld__itm_scope_id, fld__itm_type_id, fld__itm_dflt;
|
||||
private final String fld__itm_id, fld__itm_key, fld__itm_scope_id, fld__itm_type_id, fld__itm_dflt;
|
||||
private final Db_conn conn;
|
||||
public Xoitm_meta_tbl(Db_conn conn) {
|
||||
this.conn = conn;
|
||||
this.tbl_name = "cfg_itm_meta";
|
||||
this.fld__grp_id = flds.Add_int("grp_id"); // EX: '1'
|
||||
this.fld__itm_id = flds.Add_int("itm_id"); // EX: '2'
|
||||
this.fld__itm_sort = flds.Add_int("itm_sort"); // EX: '1'
|
||||
this.fld__itm_scope_id = flds.Add_int("itm_scope_id"); // EX: '1'; REF: cfg_scope_regy; ENUM: app-only, wiki-only, ...
|
||||
this.fld__itm_type_id = flds.Add_int("itm_type_id"); // EX: '1'; REF: cfg_type_regy; ENUM: int, String, ...
|
||||
this.fld__itm_key = flds.Add_str("itm_key", 255); // EX: 'cfg_1'
|
||||
@ -35,8 +33,8 @@ public class Xoitm_meta_tbl implements Db_tbl {
|
||||
}
|
||||
public String Tbl_name() {return tbl_name;} private final String tbl_name;
|
||||
public void Create_tbl() {conn.Meta_tbl_create(Dbmeta_tbl_itm.New(tbl_name, flds));}
|
||||
public void Upsert(int grp_id, int itm_id, int itm_sort, int scope_id, int type_id, String itm_key, String itm_dflt) {
|
||||
Db_tbl__crud_.Upsert(conn, tbl_name, flds, String_.Ary(fld__grp_id, fld__itm_id), grp_id, itm_id, itm_sort, scope_id, type_id, itm_key, itm_dflt);
|
||||
public void Upsert(int itm_id, int scope_id, int type_id, String itm_key, String itm_dflt) {
|
||||
Db_tbl__crud_.Upsert(conn, tbl_name, flds, String_.Ary(fld__itm_id), itm_id, scope_id, type_id, itm_key, itm_dflt);
|
||||
}
|
||||
public Xoitm_meta_itm Select_by_key_or_null(String key) {
|
||||
Db_rdr rdr = conn.Stmt_select(tbl_name, flds, fld__itm_key).Exec_select__rls_auto();
|
||||
@ -45,9 +43,7 @@ public class Xoitm_meta_tbl implements Db_tbl {
|
||||
}
|
||||
private Xoitm_meta_itm Load(Db_rdr rdr) {
|
||||
return new Xoitm_meta_itm
|
||||
( rdr.Read_int(fld__grp_id)
|
||||
, rdr.Read_int(fld__itm_id)
|
||||
, rdr.Read_int(fld__itm_sort)
|
||||
( rdr.Read_int(fld__itm_id)
|
||||
, rdr.Read_int(fld__itm_scope_id)
|
||||
, rdr.Read_int(fld__itm_type_id)
|
||||
, rdr.Read_str(fld__itm_key)
|
||||
|
@ -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.xowa.addons.apps.cfgs.dbs; import gplx.*; import gplx.xowa.*; import gplx.xowa.addons.*; import gplx.xowa.addons.apps.*; import gplx.xowa.addons.apps.cfgs.*;
|
||||
public class Xonde_i18n_nde_tid {
|
||||
public static final int Tid__grp = 1, Tid__itm = 2;
|
||||
}
|
@ -19,28 +19,28 @@ package gplx.xowa.addons.apps.cfgs.dbs; import gplx.*; import gplx.xowa.*; impor
|
||||
import gplx.dbs.*; import gplx.dbs.utls.*;
|
||||
public class Xonde_i18n_tbl implements Db_tbl {
|
||||
private final Dbmeta_fld_list flds = new Dbmeta_fld_list();
|
||||
private final String fld__nde_type, fld__nde_id, fld__nde_locale, fld__nde_name, fld__nde_help;
|
||||
private final String fld__nde_tid, fld__nde_id, fld__nde_lang, fld__nde_name, fld__nde_help;
|
||||
private final Db_conn conn;
|
||||
public Xonde_i18n_tbl(Db_conn conn) {
|
||||
this.conn = conn;
|
||||
this.tbl_name = "cfg_nde_i18n";
|
||||
this.fld__nde_type = flds.Add_int("nde_type"); // EX: 1=grp; 2=itm
|
||||
this.fld__nde_tid = flds.Add_int("nde_tid"); // EX: 1=grp; 2=itm
|
||||
this.fld__nde_id = flds.Add_int("nde_id"); // EX: '2'
|
||||
this.fld__nde_locale = flds.Add_str("nde_locale", 16); // EX: 'en'
|
||||
this.fld__nde_lang = flds.Add_str("nde_lang", 16); // EX: 'en'
|
||||
this.fld__nde_name = flds.Add_str("nde_name", 255); // EX: 'Cfg Name'
|
||||
this.fld__nde_help = flds.Add_str("nde_help", 4096); // EX: 'Help text in html'
|
||||
this.fld__nde_help = flds.Add_str("nde_help", 4096); // EX: 'Help text'
|
||||
conn.Rls_reg(this);
|
||||
}
|
||||
public String Tbl_name() {return tbl_name;} private final String tbl_name;
|
||||
public void Create_tbl() {conn.Meta_tbl_create(Dbmeta_tbl_itm.New(tbl_name, flds));}
|
||||
public void Upsert(int nde_type, int nde_id, String nde_locale, String nde_name, String nde_help) {
|
||||
Db_tbl__crud_.Upsert(conn, tbl_name, flds, String_.Ary(fld__nde_type, fld__nde_id, fld__nde_locale), nde_type, nde_id, nde_locale, nde_name, nde_help);
|
||||
public void Upsert(int nde_tid, int nde_id, String nde_lang, String nde_name, String nde_help) {
|
||||
Db_tbl__crud_.Upsert(conn, tbl_name, flds, String_.Ary(fld__nde_tid, fld__nde_id, fld__nde_lang), nde_tid, nde_id, nde_lang, nde_name, nde_help);
|
||||
}
|
||||
public void Select_stub() {
|
||||
Db_rdr rdr = Db_rdr_.Empty;
|
||||
rdr.Read_int(fld__nde_type);
|
||||
rdr.Read_int(fld__nde_tid);
|
||||
rdr.Read_int(fld__nde_id);
|
||||
rdr.Read_str(fld__nde_locale);
|
||||
rdr.Read_str(fld__nde_lang);
|
||||
rdr.Read_str(fld__nde_name);
|
||||
rdr.Read_str(fld__nde_help);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user