w-orm-reladb 1.1.12 → 1.1.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -29,7 +29,7 @@
29
29
  <nav >
30
30
 
31
31
 
32
- <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="WOrmReladb.html">WOrmReladb</a><ul class='methods'><li data-type='method'><a href="WOrmReladb.html#.closeSequelize">closeSequelize</a></li><li data-type='method'><a href="WOrmReladb.html#.createStorage">createStorage</a></li><li data-type='method'><a href="WOrmReladb.html#.del">del</a></li><li data-type='method'><a href="WOrmReladb.html#.delAll">delAll</a></li><li data-type='method'><a href="WOrmReladb.html#.genModelsByDB">genModelsByDB</a></li><li data-type='method'><a href="WOrmReladb.html#.genModelsByTabs">genModelsByTabs</a></li><li data-type='method'><a href="WOrmReladb.html#.genTransaction">genTransaction</a></li><li data-type='method'><a href="WOrmReladb.html#.initSequelize">initSequelize</a></li><li data-type='method'><a href="WOrmReladb.html#.insert">insert</a></li><li data-type='method'><a href="WOrmReladb.html#.insertBulk">insertBulk</a></li><li data-type='method'><a href="WOrmReladb.html#.save">save</a></li><li data-type='method'><a href="WOrmReladb.html#.select">select</a></li><li data-type='method'><a href="WOrmReladb.html#.selectByPk">selectByPk</a></li></ul></li></ul><h3>Global</h3><ul><li><a href="global.html#cvFind">cvFind</a></li><li><a href="global.html#genDateChecker">genDateChecker</a></li><li><a href="global.html#getColKind">getColKind</a></li><li><a href="global.html#getColScale">getColScale</a></li><li><a href="global.html#importModels">importModels</a></li><li><a href="global.html#inDateRange">inDateRange</a></li><li><a href="global.html#isKindOk">isKindOk</a></li><li><a href="global.html#normPk">normPk</a></li></ul>
32
+ <h2><a href="index.html">Home</a></h2><h3>Classes</h3><ul><li><a href="WOrmReladb.html">WOrmReladb</a><ul class='methods'><li data-type='method'><a href="WOrmReladb.html#.closeSequelize">closeSequelize</a></li><li data-type='method'><a href="WOrmReladb.html#.createStorage">createStorage</a></li><li data-type='method'><a href="WOrmReladb.html#.del">del</a></li><li data-type='method'><a href="WOrmReladb.html#.delAll">delAll</a></li><li data-type='method'><a href="WOrmReladb.html#.genModelsByDB">genModelsByDB</a></li><li data-type='method'><a href="WOrmReladb.html#.genModelsByTabs">genModelsByTabs</a></li><li data-type='method'><a href="WOrmReladb.html#.genTransaction">genTransaction</a></li><li data-type='method'><a href="WOrmReladb.html#.initSequelize">initSequelize</a></li><li data-type='method'><a href="WOrmReladb.html#.insert">insert</a></li><li data-type='method'><a href="WOrmReladb.html#.insertBulk">insertBulk</a></li><li data-type='method'><a href="WOrmReladb.html#.save">save</a></li><li data-type='method'><a href="WOrmReladb.html#.select">select</a></li><li data-type='method'><a href="WOrmReladb.html#.selectByPk">selectByPk</a></li></ul></li></ul><h3>Global</h3><ul><li><a href="global.html#chkPkWf">chkPkWf</a></li><li><a href="global.html#chkWf">chkWf</a></li><li><a href="global.html#cvFind">cvFind</a></li><li><a href="global.html#genDateChecker">genDateChecker</a></li><li><a href="global.html#getColKind">getColKind</a></li><li><a href="global.html#getColScale">getColScale</a></li><li><a href="global.html#importModels">importModels</a></li><li><a href="global.html#inDateRange">inDateRange</a></li><li><a href="global.html#isKindOk">isKindOk</a></li><li><a href="global.html#normPk">normPk</a></li><li><a href="global.html#toFloating">toFloating</a></li></ul>
33
33
 
34
34
  </nav>
35
35
 
@@ -75,13 +75,19 @@
75
75
 
76
76
  <dt class="tag-description">Description:</dt>
77
77
  <dd class="tag-description"><ul class="dummy"><li><p>操作關聯式資料庫</p>
78
- <p>注意: 各model內id欄位不是主鍵(primary key)時需要強制更改成為主鍵,否則sequelize無法匯入</p></li></ul></dd>
78
+ <p>注意: 各model內id欄位不是主鍵(primary key)時需要強制更改成為主鍵,否則sequelize無法匯入</p>
79
+ <p>注意: opt.url、opt.db、opt.cl、opt.storage(儲存位址名稱與路徑)含孤立代理碼元(UTF-16代理對被拆開後只剩一半,String.prototype.isWellFormed()為false)者,
80
+ 建構時即拋出invalid opt.&lt;名&gt;: string contains lone surrogate(不回顯值):UTF-8轉換會把孤立代理碼元改寫為U+FFFD,不同名稱將指向同一儲存</p>
81
+ <p>注意: 寫入與主鍵查詢之字串須良構(第66項):主鍵不得含孤立代理碼元或NUL,insert、insertBulk、save之數據字串值與鍵名(含巢狀、陣列元素)不得含孤立代理碼元(值之NUL不拒);
82
+ 不合格者insert與insertBulk整批reject、save與del該筆ok為0附err、selectByPk回傳null,詳見各函數說明與README。
83
+ 註: mssql預設排序規則(如SQL_Latin1_General_CP1_CI_AS)下字串相等由排序規則決定,良構字串亦可能相等('a'、'a'+emoji、'a'+U+FFFD),屬資料庫語意不在檢核範圍,
84
+ 需精確比對時請以二進位排序規則(如Latin1_General_100_BIN2)建表</p></li></ul></dd>
79
85
 
80
86
 
81
87
 
82
88
  <dt class="tag-source">Source:</dt>
83
89
  <dd class="tag-source"><ul class="dummy"><li>
84
- <a href="WOrmReladb.mjs.html">WOrmReladb.mjs</a>, <a href="WOrmReladb.mjs.html#line55">line 55</a>
90
+ <a href="WOrmReladb.mjs.html">WOrmReladb.mjs</a>, <a href="WOrmReladb.mjs.html#line64">line 64</a>
85
91
  </li></ul></dd>
86
92
 
87
93
 
@@ -750,7 +756,7 @@
750
756
 
751
757
  <dt class="tag-source">Source:</dt>
752
758
  <dd class="tag-source"><ul class="dummy"><li>
753
- <a href="WOrmReladb.mjs.html">WOrmReladb.mjs</a>, <a href="WOrmReladb.mjs.html#line546">line 546</a>
759
+ <a href="WOrmReladb.mjs.html">WOrmReladb.mjs</a>, <a href="WOrmReladb.mjs.html#line588">line 588</a>
754
760
  </li></ul></dd>
755
761
 
756
762
 
@@ -858,7 +864,7 @@
858
864
 
859
865
  <dt class="tag-source">Source:</dt>
860
866
  <dd class="tag-source"><ul class="dummy"><li>
861
- <a href="WOrmReladb.mjs.html">WOrmReladb.mjs</a>, <a href="WOrmReladb.mjs.html#line1788">line 1788</a>
867
+ <a href="WOrmReladb.mjs.html">WOrmReladb.mjs</a>, <a href="WOrmReladb.mjs.html#line1899">line 1899</a>
862
868
  </li></ul></dd>
863
869
 
864
870
 
@@ -966,13 +972,15 @@
966
972
  註: 未帶有效主鍵者為該筆之輸入問題,回ok為0與err且不送查詢條件(以免無效值被轉為null而誤中其他數據),
967
973
  不中斷其餘筆數,以此與[主鍵未命中]之ok為1區辨;主鍵值與主鍵欄型別不符者(整數類主鍵欄給'012'等)亦同
968
974
  註: 主鍵值依主鍵欄型別正規化後刪除(字串類主鍵欄之123即'123'),正規化值寫回該筆數據
969
- 註: 本函數不受opt.autoGenPk影響,於任一設定下皆不補值</p></li></ul></dd>
975
+ 註: 本函數不受opt.autoGenPk影響,於任一設定下皆不補值
976
+ 註: 主鍵含孤立代理碼元或NUL者(含new String包裝者;UTF-8存放之資料庫會把孤立代理碼元改寫為U+FFFD而刪到他筆)為該筆失敗,ok為0並附err(invalid id: 原因 at [data[索引].主鍵欄],不回顯值),
977
+ 不送查詢,同批其他筆照常;只檢主鍵,其他欄位不檢(第66項, R13);全部筆數皆不合格時不連線。其他無效主鍵之err亦不回顯主鍵值(invalid data[索引].主鍵欄…)</p></li></ul></dd>
970
978
 
971
979
 
972
980
 
973
981
  <dt class="tag-source">Source:</dt>
974
982
  <dd class="tag-source"><ul class="dummy"><li>
975
- <a href="WOrmReladb.mjs.html">WOrmReladb.mjs</a>, <a href="WOrmReladb.mjs.html#line1481">line 1481</a>
983
+ <a href="WOrmReladb.mjs.html">WOrmReladb.mjs</a>, <a href="WOrmReladb.mjs.html#line1574">line 1574</a>
976
984
  </li></ul></dd>
977
985
 
978
986
 
@@ -1318,7 +1326,7 @@ sequelize之Op Symbol、RegExp值、陣列值(請改用$in)、欄位層$and/$or
1318
1326
 
1319
1327
  <dt class="tag-source">Source:</dt>
1320
1328
  <dd class="tag-source"><ul class="dummy"><li>
1321
- <a href="WOrmReladb.mjs.html">WOrmReladb.mjs</a>, <a href="WOrmReladb.mjs.html#line1683">line 1683</a>
1329
+ <a href="WOrmReladb.mjs.html">WOrmReladb.mjs</a>, <a href="WOrmReladb.mjs.html#line1794">line 1794</a>
1322
1330
  </li></ul></dd>
1323
1331
 
1324
1332
 
@@ -1648,7 +1656,7 @@ sequelize之Op Symbol、RegExp值、陣列值(請改用$in)、欄位層$and/$or
1648
1656
 
1649
1657
  <dt class="tag-source">Source:</dt>
1650
1658
  <dd class="tag-source"><ul class="dummy"><li>
1651
- <a href="WOrmReladb.mjs.html">WOrmReladb.mjs</a>, <a href="WOrmReladb.mjs.html#line1830">line 1830</a>
1659
+ <a href="WOrmReladb.mjs.html">WOrmReladb.mjs</a>, <a href="WOrmReladb.mjs.html#line1941">line 1941</a>
1652
1660
  </li></ul></dd>
1653
1661
 
1654
1662
 
@@ -2176,7 +2184,7 @@ sequelize之Op Symbol、RegExp值、陣列值(請改用$in)、欄位層$and/$or
2176
2184
 
2177
2185
  <dt class="tag-source">Source:</dt>
2178
2186
  <dd class="tag-source"><ul class="dummy"><li>
2179
- <a href="WOrmReladb.mjs.html">WOrmReladb.mjs</a>, <a href="WOrmReladb.mjs.html#line1878">line 1878</a>
2187
+ <a href="WOrmReladb.mjs.html">WOrmReladb.mjs</a>, <a href="WOrmReladb.mjs.html#line1989">line 1989</a>
2180
2188
  </li></ul></dd>
2181
2189
 
2182
2190
 
@@ -2481,7 +2489,7 @@ sequelize之Op Symbol、RegExp值、陣列值(請改用$in)、欄位層$and/$or
2481
2489
 
2482
2490
  <dt class="tag-source">Source:</dt>
2483
2491
  <dd class="tag-source"><ul class="dummy"><li>
2484
- <a href="WOrmReladb.mjs.html">WOrmReladb.mjs</a>, <a href="WOrmReladb.mjs.html#line562">line 562</a>
2492
+ <a href="WOrmReladb.mjs.html">WOrmReladb.mjs</a>, <a href="WOrmReladb.mjs.html#line604">line 604</a>
2485
2493
  </li></ul></dd>
2486
2494
 
2487
2495
 
@@ -2589,7 +2597,7 @@ sequelize之Op Symbol、RegExp值、陣列值(請改用$in)、欄位層$and/$or
2589
2597
 
2590
2598
  <dt class="tag-source">Source:</dt>
2591
2599
  <dd class="tag-source"><ul class="dummy"><li>
2592
- <a href="WOrmReladb.mjs.html">WOrmReladb.mjs</a>, <a href="WOrmReladb.mjs.html#line479">line 479</a>
2600
+ <a href="WOrmReladb.mjs.html">WOrmReladb.mjs</a>, <a href="WOrmReladb.mjs.html#line511">line 511</a>
2593
2601
  </li></ul></dd>
2594
2602
 
2595
2603
 
@@ -2771,6 +2779,10 @@ sequelize之Op Symbol、RegExp值、陣列值(請改用$in)、欄位層$and/$or
2771
2779
  錯誤訊息為invalid data: date is not a valid time in years 1-9999 at [data[索引].欄名],不回顯值;sqlite以文字存日期,範圍外年份之文字與時間序不一致,會使以日期為條件之delAll刪錯列,
2772
2780
  故兩方言一律於送出前拒收;無效時間(Invalid Date、NaN、無法解析之字串、空字串等,sqlite會存為字典序大於任何年份之文字Invalid date,mssql則由資料庫報錯)亦一併reject;
2773
2781
  庫內既有之範圍外日期不遷移,須自行清理或改寫(見README)
2782
+ 註: 主鍵與數據之字串須良構(第66項, R13): 主鍵不得含孤立代理碼元(UTF-16代理對被拆開後只剩一半, UTF-8存放時被改寫為U+FFFD而使不同主鍵寫成同一鍵)或NUL,
2783
+ 數據之字串值與鍵名(含巢狀物件、陣列元素、Map/Set等,不論欄位是否在model內)不得含孤立代理碼元(值之NUL不拒);U+FFFD本身與成對代理(emoji等)為良構,照常接受。
2784
+ 任一筆不合格即reject且同批皆不寫入,訊息為invalid id: 原因 at [data[索引].主鍵欄]或invalid data: 原因 at [data[索引].路徑],不回顯值;
2785
+ 不隨opt.autoGenPk改變(autoGenPk為true時亦不以自動產生之主鍵取代呼叫端所給之不合格主鍵),檢核先於連線與model載入,作用於複本
2774
2786
  註: option.returnList開啟時改回與輸入等長且保序之逐筆結果陣列[{n,nInserted,ok}],
2775
2787
  聚合計數只答得出[有幾筆是新的]而答不出[是哪幾筆],而後者正是去重之產出物;
2776
2788
  逐筆元素之n與ok恆為1,資訊由nInserted承載,不變式為
@@ -2780,7 +2792,7 @@ sequelize之Op Symbol、RegExp值、陣列值(請改用$in)、欄位層$and/$or
2780
2792
 
2781
2793
  <dt class="tag-source">Source:</dt>
2782
2794
  <dd class="tag-source"><ul class="dummy"><li>
2783
- <a href="WOrmReladb.mjs.html">WOrmReladb.mjs</a>, <a href="WOrmReladb.mjs.html#line843">line 843</a>
2795
+ <a href="WOrmReladb.mjs.html">WOrmReladb.mjs</a>, <a href="WOrmReladb.mjs.html#line893">line 893</a>
2784
2796
  </li></ul></dd>
2785
2797
 
2786
2798
 
@@ -3152,6 +3164,7 @@ sequelize之Op Symbol、RegExp值、陣列值(請改用$in)、欄位層$and/$or
3152
3164
  註: 主鍵值依主鍵欄型別正規化後寫入(字串類主鍵欄之123存為'123');型別不符(整數類主鍵欄給'012'等)即reject且同批皆不寫入
3153
3165
  註: DATE、DATEONLY欄之值換算後年份須在1–9999,範圍外或無效者(如new Date(8.64e15)、new Date(NaN))即reject且同批皆不寫入,訊息為invalid data: date is not a valid time in years 1-9999 at [data[索引].欄名],
3154
3166
  不回顯值,兩方言一致於送出前拒收,規則同insert
3167
+ 註: 主鍵與數據之字串須良構(孤立代理碼元、主鍵之NUL),不合格者整批reject且同批皆不寫入,規則同insert(第66項, R13)
3155
3168
  註: [全有全無]為獨立於T7之額外要求——T7僅保證每筆之[檢查主鍵不存在]與[寫入]為原子,不保證整批。
3156
3169
  mssql因綁定參數數量上限會由驅動層自動拆為多語句送出,實測1000筆之批次於末筆撞主鍵時已有946筆落盤,
3157
3170
  故一律以交易包覆並於失敗時回滾;呼叫端已給transaction時改以巢狀交易(SAVEPOINT)包覆,
@@ -3161,7 +3174,7 @@ mssql因綁定參數數量上限會由驅動層自動拆為多語句送出,實
3161
3174
 
3162
3175
  <dt class="tag-source">Source:</dt>
3163
3176
  <dd class="tag-source"><ul class="dummy"><li>
3164
- <a href="WOrmReladb.mjs.html">WOrmReladb.mjs</a>, <a href="WOrmReladb.mjs.html#line1024">line 1024</a>
3177
+ <a href="WOrmReladb.mjs.html">WOrmReladb.mjs</a>, <a href="WOrmReladb.mjs.html#line1084">line 1084</a>
3165
3178
  </li></ul></dd>
3166
3179
 
3167
3180
 
@@ -3491,13 +3504,15 @@ mssql因綁定參數數量上限會由驅動層自動拆為多語句送出,實
3491
3504
  註: opt.autoGenPk為true(預設)時未帶有效主鍵者自動產生,為false時未帶有效主鍵即reject且同批皆不寫入
3492
3505
  註: 主鍵值依主鍵欄型別正規化(字串類主鍵欄之123即'123');型別不符(整數類主鍵欄給'012'等)屬呼叫端未履行契約,整批reject且同批皆不寫入
3493
3506
  註: DATE、DATEONLY欄之值換算後年份須在1–9999,範圍外或無效者(如new Date(8.64e15)、new Date(NaN))屬呼叫端未履行契約,整批reject且同批皆不寫入(含autoInsert為false而不會寫入者;不降為該筆ok為0),
3494
- 訊息為invalid data: date is not a valid time in years 1-9999 at [data[索引].欄名],不回顯值,兩方言一致於送出前拒收,規則同insert</p></li></ul></dd>
3507
+ 訊息為invalid data: date is not a valid time in years 1-9999 at [data[索引].欄名],不回顯值,兩方言一致於送出前拒收,規則同insert
3508
+ 註: 主鍵與數據之字串須良構(孤立代理碼元、主鍵之NUL;規則同insert, 第66項, R13),但不合格者為該筆失敗而非整批reject:該筆ok為0並附err(invalid id: 原因 at [data[索引].主鍵欄]或invalid data: 原因 at [data[索引].路徑],不回顯值),
3509
+ 不讀取資料庫、不寫入(含autoInsert為false),同批其他筆照常處理;不隨opt.autoGenPk改變。全部筆數皆不合格時不連線</p></li></ul></dd>
3495
3510
 
3496
3511
 
3497
3512
 
3498
3513
  <dt class="tag-source">Source:</dt>
3499
3514
  <dd class="tag-source"><ul class="dummy"><li>
3500
- <a href="WOrmReladb.mjs.html">WOrmReladb.mjs</a>, <a href="WOrmReladb.mjs.html#line1362">line 1362</a>
3515
+ <a href="WOrmReladb.mjs.html">WOrmReladb.mjs</a>, <a href="WOrmReladb.mjs.html#line1434">line 1434</a>
3501
3516
  </li></ul></dd>
3502
3517
 
3503
3518
 
@@ -3881,7 +3896,7 @@ sequelize之Op Symbol、RegExp值、陣列值(請改用$in)、欄位層$and/$or
3881
3896
 
3882
3897
  <dt class="tag-source">Source:</dt>
3883
3898
  <dd class="tag-source"><ul class="dummy"><li>
3884
- <a href="WOrmReladb.mjs.html">WOrmReladb.mjs</a>, <a href="WOrmReladb.mjs.html#line604">line 604</a>
3899
+ <a href="WOrmReladb.mjs.html">WOrmReladb.mjs</a>, <a href="WOrmReladb.mjs.html#line646">line 646</a>
3885
3900
  </li></ul></dd>
3886
3901
 
3887
3902
 
@@ -4206,6 +4221,7 @@ sequelize之Op Symbol、RegExp值、陣列值(請改用$in)、欄位層$and/$or
4206
4221
  <dd class="tag-description"><ul class="dummy"><li><p>由主鍵查詢單筆數據,因由資料庫依主鍵索引取值且僅回傳單筆,不需如select提取全部符合數據再處理,故數據量大時效能較佳</p>
4207
4222
  <p>註: 主鍵欄位取自opt.pk,預設為id,支援由呼叫端指定
4208
4223
  註: 主鍵未命中或主鍵值無效皆回傳null而不reject,[命中]之判定基準與insert、save、del內對既有數據之認定一致
4224
+ 註: 含孤立代理碼元或NUL之字串主鍵(含new String包裝者)為無效而回傳null,不連線、不送查詢(第66項, R13): UTF-8存放之資料庫會把孤立代理碼元改寫為U+FFFD,若照送會命中他筆
4209
4225
  註: 主鍵值依主鍵欄型別正規化後查詢: 字串類主鍵欄之有限數字以String(v)處置(selectByPk(123)即查'123'), 整數類主鍵欄之標準整數寫法字串轉為數值;
4210
4226
  型別不符(整數類主鍵欄給'012'、12.4、'abc'等)亦屬主鍵值無效而回傳null
4211
4227
  註: 本函數不得有副作用,故不創建資料表</p></li></ul></dd>
@@ -4214,7 +4230,7 @@ sequelize之Op Symbol、RegExp值、陣列值(請改用$in)、欄位層$and/$or
4214
4230
 
4215
4231
  <dt class="tag-source">Source:</dt>
4216
4232
  <dd class="tag-source"><ul class="dummy"><li>
4217
- <a href="WOrmReladb.mjs.html">WOrmReladb.mjs</a>, <a href="WOrmReladb.mjs.html#line709">line 709</a>
4233
+ <a href="WOrmReladb.mjs.html">WOrmReladb.mjs</a>, <a href="WOrmReladb.mjs.html#line752">line 752</a>
4218
4234
  </li></ul></dd>
4219
4235
 
4220
4236
 
@@ -4540,7 +4556,7 @@ sequelize之Op Symbol、RegExp值、陣列值(請改用$in)、欄位層$and/$or
4540
4556
  <br class="clear">
4541
4557
 
4542
4558
  <footer>
4543
- Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.5</a> on Tue Oct 20 2026 04:13:54 GMT+0800 (台北標準時間) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
4559
+ Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.5</a> on Wed Oct 21 2026 11:57:34 GMT+0800 (台北標準時間) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
4544
4560
  </footer>
4545
4561
 
4546
4562
  <script>prettyPrint();</script>