ESPERiC Ver3.2
Gear API
DataServiceEx クラス

公開メンバ関数

 add_realitem() 項目の追加
 
 append_row() 行の追加
 
 calc() 計算
 
 catalog() カタログファイルに従ってインポート
 
 categorize() 数値データのカテゴライズ
 
 clear_ws() ワークスペースをクリア
 
 compression() テーブルの圧縮・最適化
 
 convert_type() 項目の型変換複製
 
 create_table() 新規テーブル作成
 
 db_codeset() DB文字コードの設定
 
 db_load() ワークスペース(D5Dファイル)ロード
 
 db_save() ワークスペース(D5Dファイル)保存
 
 delete_allset() すべてのセット(サブテーブル)の削除
 
 delete_resultset() 検索リザルトセット(サブテーブル)の削除
 
 delete_row() 行の削除
 
 delete_item() 項目の削除
 
 delete_set() セット(サブテーブル)の削除
 
 delete_table() テーブルをワークスペースから削除
 
 duplicate_table() テーブルの複製
 
 duplicate_item() 項目の複製
 
 edit_comma() カンマ編集
 
 extract_set() サブテーブル(セット)を実テーブルに抽出
 
 extract_unique() ユニーク行の抽出
 
 fill_cell() セルに値を入力
 
 float_format() 浮動小数データの小数点以下桁数を設定
 
 get_cell() セルの値取得
 
 get_data_type() 項目のデータ型取得
 
 get_tuple_asjson() テーブルデータをJSON形式で取得
 
 get_tuple() テーブルデータ取得
 
 get_itemlist() 項目一覧取得
 
 get_memory() テーブルの使用メモリサイズ取得
 
 get_setid_list() セットID一覧取得
 
 get_rowcount() テーブルの行数取得
 
 get_tablelist() テーブル一覧取得
 
 get_tablename() テーブル名取得
 
 get_valuelist() 値リスト取得
 
 get_version() バージョン番号取得
 
 insert_row() 行の挿入
 
 join() JOINテーブルを作成
 
 join_inout() JOINテーブルのIN/OUT集合サブテーブル化
 
 join_realize() JOINテーブルをREALテーブルに変換
 
 load() テーブル(D5Tファイル)ロード
 
 move_currentset() カレントセット(サブテーブル)の移動
 
 move_item() 項目の移動
 
 read_csv() CSVファイルのインポート
 
 rename_table() テーブル名を変更
 
 rename_item() 項目名を変更
 
 save() テーブル(D5Tファイル)保存
 
 search() 検索
 
 search_values() 値リスト検索
 
 search_string() 文字列検索
 
 setand() サブテーブルAND抽出
 
 set_cell() セルに値書込み
 
 set_comment() コメント編集
 
 setnot() サブテーブルNOT抽出
 
 setor() サブテーブルOR抽出
 
 set_license() ライセンスキー設定
 
 setsub() サブテーブルSUB抽出
 
 sort() データのソート
 
 sort_item() 項目の並び順をソート
 
 transfer_item() 項目転送
 
 union() UNION(和結合)
 
 write_csv() データのエクスポート
 
 write_csv_selectitem() 項目名指定でデータのエクスポート
 
 xsum() データの集計
 

プロパティ

◆ 最後のログメッセージを取得

dsx.LastMessage
Examples
--------
1.テーブルpractice1がワークスペースに存在しないため値を取得できなかったことを確認できる

=====================================================
>>>rc = dsx.get_cell('practice1','item1')
>>>print(rc)
None
>>>dsx.LastMessage
テーブル名 practice1 はワークスペースに存在しません。
=====================================================

2.ワークスペースのクリアに成功したことを確認できる

====================================================
>>>dsx.clear_ws()
0
>>>dsx.LastMessage
'clear_ws SUCCESS ResultCode=0 ElapsedTime=0.000sec'
====================================================

詳解

データサービス(Gear-API)クラス

※ Jupyter notebook/labでGear-APIを使用する場合、dataServerへのパス指定が必須です。
※ macOSの場合、DYLD_LIBRARY_PATHでdi5engine/mac指へのパス指定が必須です。

関数詳解

◆ 項目の追加

dsx.add_realitem (   self,
  table_name,
  add_position,
  new_item_name,
  item_type,
  file_name 
)
Parameters
----------
table_name : str
    テーブル名
add_position : str
    追加位置(項目名)項目が一つもない、もしくは先頭列に追加したい場合は、"RecNo"を指定
new_item_name : str
    追加項目名
item_type : str
    追加項目のデータ型(String:文字列、Integer:整数、Double:浮動小数、Time:時刻、Date:日付、DateTime:日付時刻)
file_name : str
    項目ファイル名(拡張子付き)空項目を追加する場合は空白""

Returns
-------
ResultCode : int
    結果コード(正:追加項目ID、負:エラーコード)

Examples
--------
テーブルpractice1に、整数型の項目1を空項目で追加する

=============================================================
>>>dsx.get_itemlist("practice1")
[]
>>>dsx.add_realitem("practice1","RecNo","項目1","Integer","")
1
>>>dsx.get_itemlist("practice1")
['項目1']
=============================================================

See Also
--------
get_itemlist(項目一覧取得)で、項目が追加されたことを確認することができます

◆ 行の追加

dsx.append_row (   self,
  table_name,
  row_count,
  start_row = 1 
)
Parameters
----------
table_name : str
    テーブル名
row_count : int
    追加行数
start_row : int, default 1
    追加位置行

Returns
-------
ResultCode : int
    結果コード(正:追加行数、負:エラーコード)

Examples
--------
項目1の1行目に1行追加する

==========================================
>>> dsx.get_rowcount("practice1",1)
3
>>>dsx.get_cell("practice1","項目1",1,3,1)
['あ','い','う']
>>>dsx.append_row("practice1",1,1)
1
>>> dsx.get_rowcount("practice1",1)
4
>>>dsx.get_cell("practice1","項目1",1,4,1)
['あ','','い','う']
==========================================

See Also
--------
1.get_rowcount(テーブルの行数取得)で、行数が増えたことを確認することができます
2.get_cell(セルの値取得)で、追加された行の位置を確認することができます

◆ 計算

dsx.calc (   self,
  table_name,
  item_name,
  calc_string,
  row_count = -1,
  start_row = 1,
  setid = -1 
)
Parameters
----------
table_name : str
    テーブル名
item_name : str
    項目名
calc_string : str
    計算式
row_count : int, default -1
    行数(マイナス値は全行が対象)
start_row : int, default 1
    計算開始行
setid : int, default -1
    セットID(省略した場合はカレントセット)

Returns
-------
ResultCode : int
    結果コード(0:成功、負:エラーコード)

Examples
--------
1.項目1(整数)の全行を1,000倍にする

========================================================
>>>dsx.get_cell("practice1","項目1",1,3,1)
['1','2','3']
>>>dsx.calc("practice1","項目1",'*(@項目1,1000)',-1,1,1)
0
>>>dsx.get_cell("practice1","項目1",1,3,1)
['1000','2000','3000']
========================================================

2.項目1(文字列)と項目2(文字列)を結合する

=================================================================================
>>> dsx.get_tuple("practice1",1,2,1)
[['SeqNo','RecNo','項目1','項目2'], ['1','1','ア','カ'], ['2','2','イ','キ']]
>>> dsx.calc("practice1","項目1",'$&($@項目1,$@項目2)',-1,1,1)
0
>>> dsx.get_tuple("practice1",1,2,1)
[['SeqNo','RecNo','項目1','項目2'], ['1','1','アカ','カ'], ['2','2','イキ','キ']]
=================================================================================

Notes
-----
計算式はシングルクォーテーションで括ります

See Also
--------
1.get_cell(セルの値取得)やget_tuple(テーブルデータ取得)で、計算結果を確認することができます
2.セットIDが分からない時は、get_setid_list(セットID一覧取得)で確認することができます
3.計算の構文については、クッキングマニュアルをご参照ください

◆ カタログファイルに従ってインポート

dsx.catalog (   self,
  table_name,
  file_name,
  catalog_name,
  mode = None 
)
Parameters
----------
table_name : str
    テーブル名を定義
file_name : str
    インポートファイル名(拡張子付き)
catalog_name : str
    カタログファイル名(拡張子付き)

Returns
-------
ResultCode : int
    結果コード(正:テーブルID、負:エラーコード)

Examples
--------
カタログファイル(StructInfo.txt)に従ってpractice1.csvをインポートする

=============================================================
>>> dsx.catalog("practice1","practice1.csv","StructInfo.txt")
1
=============================================================

Notes
-----
1.インポートできない時は、DBとインポートするCSVファイル、カタログファイルの文字コードが一致していることをご確認ください
2.インポートファイル、カタログファイルは相対パスもしくは絶対パスで指定してください
3.カタログファイルの形式

カタログファイルの指定(dataType [tab] dataSize [tab] itemName)
====================
//CSV
//UTF-8
//CUTTOP
A [tab] 1 [tab] 氏名
I [tab] 1 [tab] 年齢
F [tab] 1 [tab] 身長
F [tab] 1 [tab] 体重
====================

3-1.ファイル形式指定(必須)
//CSV        カンマ区切りファイル
//TAB        タブ区切りファイル

3-2.文字コード(任意:CSVファイルの文字コードがエンジンのDB文字コードと異なる場合に指定)
//SHIFT-JIS  シフトJIS
//UTF-8      UTF-8

3-3.オプション(任意:先頭の項目行を読み飛ばす場合に指定)
//CUTTOP     

3-4.dataType
次のいずれかを指定
I : 整数
F : 浮動小数
A : 文字列
D : 日付
T : 時刻
E : 日付時刻

3-5.itemName
項目名を指定

See Also
--------
db_codeset(文字コード指定)で、エンジンのDB文字コードの設定ができます

◆ 数値データのカテゴライズ

dsx.categorize (   self,
  table_name,
  item_name,
  category_table_name 
)
Parameters
----------
table_name : str
    テーブル名
item_name : str
    項目名
category_table_name : str
    カテゴリテーブル名

Returns
-------
ResultCode : int
    結果コード(正:作成した項目ID、負:エラーコード)

Examples
--------
項目1をカテゴリーテーブルcategorize1によってカテゴライズする

===============================================================================================================
※事前に、作成したカテゴリーテーブルcategorize1をロードしています
>>> dsx.get_tablelist()
['practice1','categorize1']
>>> dsx.get_tuple("practice1",1,2,1)
[['SeqNo','RecNo','項目1','項目2'], ['1','1','1','11'], ['2','2','2','12']]
>>> dsx.categorize("practice1","項目1","categorize1")
23
>>> dsx.get_tuple("practice1",1,2,1)
[['SeqNo','RecNo','項目1','categorize1_項目1_','項目2'], ['1','1','1','奇数A','11'], ['2','2','2','偶数A','12']]
================================================================================================================

Notes
-----
データ型が異なる値は(Null)となります

See Also
--------
1.get_cell(セルの値取得)やget_tuple(テーブルデータ取得)で、カテゴライズを確認することができます
2.数値カテゴライズおよびカテゴリ定義テーブルについては、クッキングマニュアルをご参照ください

◆ ワークスペースをクリア

dsx.clear_ws (   self)
Returns
-------
ResultCode : int
    結果コード(0:成功、負:エラーコード)

Examples
--------
ワークスペースをクリアする 

=====================================
>>>dsx.get_tablelist()
['practice1','practice2','practice3']
>>>dsx.clear_ws()
0
>>>dsx.get_tablelist()
>>>
=====================================

See Also
--------
get_tablelist(テーブル一覧取得)で、ワークスペースをクリアしたことを確認することができます

◆ テーブルの圧縮・最適化

dsx.compression (   self,
  table_name 
)
Parameters
----------
table_name : str
    テーブル名

Returns
-------
ResultCode : int
    結果コード(0:成功、負:エラーコード)

Examples
--------
テーブルpractice1を圧縮する

===============================
>>>dsx.get_memory("practice1")
17528
>>>dsx.compression("practice1")
0
>>>dsx.get_memory("practice1")
17408
===============================

See Also
--------
get_memory(使用メモリサイズ取得)で、使用メモリサイズを確認することができます

◆ 項目の型変換複製

dsx.convert_type (   self,
  table_name,
  item_name,
  data_type 
)
Parameters
----------
table_name : str
    テーブル名
item_name : str
    項目名    
data_type : str
    変換するデータ型(String:文字列、Integer:整数、Double:浮動小数、Time:時刻、Date:日付、DateTime:日付時刻)

Returns
-------
ResultCode : int
    結果コード(正:生成された項目ID、負:エラーコード)

Examples
--------
項目1のデータ型を整数から浮動小数に変換する

=================================================
>>>dsx.get_itemlist("practice1")
['項目1']
>>>dsx.get_cell("practice1","項目1",1,3,1)
['1','2','3']
>>>dsx.convert_type("practice1","項目1","Double")
24
>>>dsx.get_itemlist("practice1")
['項目1','項目1_#1']
>>>dsx.get_cell("practice1","項目1_#1",1,3,1)
['1.0','2.0','3.0']
=================================================

Notes
-----
型変換できないデータは(Null)となります

See Also
--------
1.get_itemlist(項目一覧取得)で、項目が追加されたことを確認することができます
2.get_cell(セルの値取得)やget_tuple(テーブルデータ取得)で、複製されたデータを確認することができます

◆ 新規テーブルを作成

dsx.create_table (   self,
  row_count,
  table_name 
)
Parameters
----------
row_count : int
    行数
table_name : str
    テーブル名

Returns
-------
ResultCode : int
    結果コード(正:テーブルID、負:エラーコード)

Examples
--------
5行のテーブル、practice1を作成する

==================================
>>>dsx.create_table(5,"practice1")
2
>>>dsx.get_tablelist()
['practice1']
>>>dsx.get_rowcount("practice1",1)
5
==================================

See Also
--------
1.get_tablelist(テーブル一覧取得)で、テーブルが追加されたことを確認することができます
2.get_rowcount(テーブルの行数取得)で、追加したテーブルの行数を確認することができます

◆ DB文字コードの設定

dsx.db_codeset (   self,
  db_code 
)
Parameters
----------
db_code : str
    DB文字コード(UTF-8 または Shift_JIS)

Returns
-------
ResultCode : int
    結果コード(0:成功、負:エラーコード)

Examples
--------
1.文字コードをUTF-8にする 

=========================
>>>dsx.db_codeset("UTF8")
0
=========================

2. 文字コードをSJISにする 

==============================
>>>dsx.db_codeset("Shift_JIS")
0
==============================

◆ ワークスペース(D5Dファイル)ロード

dsx.db_load (   self,
  file_name 
)
Parameters
----------
file_name : str
    ワークスペースファイル名

Returns
-------
ResultCode : int
    結果コード(0:成功、負:エラーコード)

Examples
--------
================================
>>>dsx.db_load("practice99.D5D")
0
================================

Notes
-----
D5Dファイルは相対パスもしくは絶対パスで指定してください

See Also
--------
D5Dファイル、D5Tファイルについてはクッキングマニュアルをご参照ください

◆ ワークスペース(D5Dファイル)保存

dsx.db_save (   self,
  file_name 
)
Parameters
----------
file_name : str
    ワークスペースファイル名

Returns
-------
ResultCode : int
    結果コード(0:成功、負:エラーコード)

Examples
--------
================================
>>>dsx.db_save("practice99.D5D")
0
================================

Notes
-----
D5Dファイルは、保存先を相対パスもしくは絶対パスで指定してください

See Also
--------
D5Dファイル、D5Tファイルについてはクッキングマニュアルをご参照ください

◆ すべてのセット(サブテーブル)の削除

dsx.delete_allset (   self,
  table_name 
)
Parameters
----------
table_name : str
    テーブル名

Returns
-------
ResultCode : int
    結果コード(0:成功、負:エラーコード)

Examples
--------
テーブルpractice1のサブテーブルを全て削除する

================================================================================
>>>dsx.get_setid_list("practice1")
[[1,''], [2,'Search Set:1 [項目1]=あ'], [3, "SearchStrExp Set:1 項目1='あ'..."]]
>>>dsx.delete_allset("practice1")
0
>>>dsx.get_setid_list("practice1")
[[1,'']]
================================================================================

See Also
--------
get_setid_list(セットID一覧取得)で、サブテーブルが削除されたことを確認することができます

◆ 項目の削除

dsx.delete_item (   self,
  table_name,
  item_name 
)
Parameters
----------
table_name : str
    テーブル名
item_name : str
    項目名

Returns
-------
ResultCode : int
    結果コード(0:成功、負:エラーコード)

Examples
--------
項目1を削除する

=======================================
>>>dsx.get_itemlist("practice1")
['項目1','項目2','項目3']
>>>dsx.delete_item("practice1","項目1")
0
>>>dsx.get_itemlist("practice1")
['項目2','項目3']
=======================================

See Also
--------
get_itemlist(項目一覧取得)で、項目が削除されたことを確認することができます

◆ 検索リザルトセット(サブテーブル)の削除

dsx.delete_resultset (   self,
  table_name,
  setid 
)
Parameters
----------
table_name : str
    テーブル名
setid : int
    削除セットID

Returns
-------
ResultCode : int
    結果コード(0:成功、負:エラーコード)

Examples
--------
テーブルpractice1の検索リザルトセットを削除する

================================================================================
>>>dsx.get_setid_list("practice1")
[[1,''], [2,'Search Set:1 [項目1]=あ'], [3, "SearchStrExp Set:1 項目1='あ'..."]]
>>>dsx.delete_resultset("practice1",2)
0
>>>dsx.get_setid_list("practice1")
[[1,'']
================================================================================

Notes
-----
指定したセットID以降のセット(サブテーブル)を削除します

See Also
--------
1.get_setid_list(セットID一覧取得)で、セットが削除されたことを確認することができます
2.セットIDが分からない時も、get_setid_list(セットID一覧取得)で確認することができます

◆ 行の削除

dsx.delete_row (   self,
  table_name,
  start_row,
  row_count,
  setid = -1 
)
Parameters
----------
table_name : str
    テーブル名
start_row : int
    削除開始行
row_count : int
    削除行数(マイナス値は全行が対象)
setid : int, default -1
    セットID(省略した場合はカレントセット)

Returns
-------
ResultCode : int
    結果コード(正:削除行数、負:エラーコード)

Examples
--------
テーブルpractice1の2行目を削除する

==========================================
>>>dsx.get_rowcount("practice1",1)
10
>>>dsx.get_cell("practice1","項目1",1,3,1)
['あ','い','う']
>>>dsx.delete_row("practice1",2,1,1)
1
>>>dsx.get_rowcount("practice1",1)
9
>>>dsx.get_cell("practice1","項目1",1,3,1)
['あ','う','え']
==========================================

See Also
--------
1.get_rowcount(テーブル行数取得)で、行数の増減を確認することができます
2.get_cell(セルの値取得)やget_tuple(テーブルデータ取得)で、行が削除されたことを確認することができます
3.セットIDが分からない時は、get_setid_list(セットID一覧取得)で確認することができます

◆ セット(サブテーブル)の削除

dsx.delete_set (   self,
  table_name,
  setid 
)
Parameters
----------
table_name : str
    テーブル名  
setid : int
    削除セットID

Returns
-------
ResultCode : int
    結果コード(0:成功、負:エラーコード)

Examples
--------
テーブルpractice1のセットIDが3のサブテーブルを削除する

================================================================================
>>>dsx.get_setid_list("practice1")
[[1,''], [2,'Search Set:1 [項目1]=あ'], [3, "SearchStrExp Set:1 項目1='あ'..."]]
>>>dsx.delete_set("practice1",3)
2
>>>dsx.get_setid_list("practice1")
[[1,''], [2,'Search Set:1 [項目1]=あ']]
================================================================================

See Also
--------
1.get_setid_list(セットID一覧取得)で、セットIDが削除されたことを確認することができます
2.セットIDが分からない時は、get_setid_list(セットID一覧取得)で確認することができます

◆ テーブルをワークスペースから削除

dsx.delete_table (   self,
  table_name 
)
Parameters
----------
table_name : str
    テーブル名

Returns
-------
ResultCode : int
    結果コード(0:成功、負:エラーコード)

Examples
--------
テーブルpractice1を削除する

=================================
>>> dsx.get_tablelist()
['practice1','practice2']
>>> dsx.delete_table("practice1")
0
>>> dsx.get_tablelist()
['practice2']
=================================

See Also
--------
get_tablelist(テーブル一覧取得)で、テーブルが削除されたことを確認することができます

◆ 項目の複製

dsx.duplicate_item (   self,
  table_name,
  item_name 
)
Parameters
----------
table_name : str
    テーブル名
item_name : str
    項目名    

Returns
-------
ResultCode : int
    結果コード(正:複製された項目ID、負:エラーコード)

Examples
--------
項目1を複製する 

===========================================
>>> dsx.get_itemlist("practice1")
['項目1']
>>> dsx.duplicate_item("practice1","項目1")
23
>>> dsx.get_itemlist("practice1")
['項目1','項目1_#1']
===========================================

See Also
--------
get_itemlist(項目一覧取得)で、項目1が複製され項目1_#1が追加されたことを確認することができます

◆ テーブルの複製

dsx.duplicate_table (   self,
  table_name 
)
Parameters
----------
table_name : str
    テーブル名

Returns
-------
ResultCode : int
    結果コード(正:複製されたテーブルID、負:エラーコード)

Examples
--------
テーブルpractice1を複製する

====================================
>>> dsx.get_tablelist()
['practice1']
>>> dsx.duplicate_table("practice1")
4
>>> dsx.get_tablelist()
['practice1','practice1_#1']
====================================
See Also
--------
get_tablelist(テーブル一覧取得)で、複製されたテーブルを確認することができます

◆ カンマ編集

dsx.edit_comma (   self,
  table_name,
  item_name,
  is_edit = 'Yes' 
)
Parameters
----------
table_name : str
    テーブル名
item_name : str
    項目名
is_edit : str, default 'Yes'
    3桁区切りするか否か(Yes/No)

Returns
-------
ResultCode : int
    結果コード(0:成功、負:エラーコード)

Examples
--------
テーブルpractice1の項目1に3桁区切りでカンマをつける

=============================================
>>> dsx.get_cell("practice1","項目1",1,3,1)
['1000','2000','3000']
>>> dsx.edit_comma("practice1","項目1","Yes")
0
>>> dsx.get_cell("practice1","項目1",1,3,1)
['1,000','2,000','3,000']
=============================================

See Also
--------
get_cell(セルの値取得)やget_tuple(テーブルデータ取得)で、カンマがついていることを確認することができます

◆ サブテーブル(セット)を実テーブルに抽出

dsx.extract_set (   self,
  table_name,
  setid,
  is_view_table_id = 'Yes',
  is_record_number = 'Yes',
  item_name_list = '*',
  new_table_name = None 
)
Parameters
----------
table_name : str
    テーブル名
setid : int
    セットID  
is_view_table_id : str, default'Yes'
    Yes:テーブルIDを表示する、No:表示しない
is_record_number : str, default'Yes'
    Yes:RecNoを出力する、N0:出力しない     
item_name_list : list, default'*'
    抽出項目名リスト("*"は全項目が対象)    
new_table_name : str, default None
    抽出後のテーブル名(省略可)             

Returns
-------
ResultCode : int
    結果コード(正:生成されたテーブルID、負:エラーコード)

Examples
--------
テーブルpractice1のサブテーブル(値リスト検索結果)を実テーブルに抽出する

==============================================================
>>> dsx.get_tablelist()
['practice1']
>>> dsx.get_setid_list("practice1")
[[1,''], [2,'Search Set:1 [項目1] = 値リスト']]
>>> dsx.extract_set("practice1",2,"No","Yes",["項目1"],"set1")
5
>>> dsx.get_tablelist()
['practice1','set1']
==============================================================

See Also
--------
1.get_tablelist(テーブル一覧取得)で、実テーブルに抽出したことを確認することができます
2.セットIDが分からない時は、get_setid_list(セットID一覧取得)で確認することができます

◆ ユニーク行の抽出

dsx.extract_unique (   self,
  table_name,
  setid,
  item_name_list = '*',
  is_keep_order = 'Yes' 
)
Parameters
----------
table_name : str
    テーブル名
setid : int
    セットID  
item_name_list : list, default'*'
    抽出項目名リスト("*"は全項目が対象)
is_keep_order : str, default'Yes'
    Yes:元の順序を保つ、No:保たない    

Returns
-------
ResultCode : int
    結果コード(正:生成されたセットID、負:エラーコード)

Examples
--------
項目1のユニーク行を抽出する

===========================================================================================================
>>> dsx.get_tuple("practice1",1,5,1)
[['SeqNo','RecNo','項目1'], ['1','1','あ'], ['2','2','あ'], ['3','3','い'], ['4','4','う'], ['5','5','う']]
>>>dsx.extract_unique("practice1",1,["項目1"],"Yes")
2
>>> dsx.get_tuple("practice1",1,3,2)
[['SeqNo','RecNo','項目1'], ['1','1','あ'], ['2','3','い'], ['3','4','う']]
===========================================================================================================

See Also
--------
1.get_cell(セルの値取得)やget_tuple(テーブルデータ取得)で、ユニーク行を抽出したことを確認することができます
2.セットIDが分からない時は、get_setid_list(セットID一覧取得)で確認することができます

◆ セルに値を入力

dsx.fill_cell (   self,
  table_name,
  item_name,
  set_string,
  start_row = 1,
  row_count = -1,
  setid = -1 
)
Parameters
----------
table_name : str
    テーブル名
item_name : str
    項目名
set_string : str
    入力文字列                              
start_row : int, default 1
    開始行
row_count : int, default -1
    行数(マイナス値は全行が対象)          
setid : int, default -1
    セットID(省略した場合はカレントセット)

Returns
-------
ResultCode : int
    結果コード(正:データ数、負:エラーコード)

Examples
--------
項目1の値を全て"あ"にする

==================================================
>>> dsx.get_cell("practice1","項目1",1,5,1)
['あ','い','う','え','お']
>>> dsx.fill_cell("practice1","項目1","あ",1,-1,1)
>>> dsx.get_cell("practice1","項目1",1,5,1)
['あ','あ','あ','あ','あ']
==================================================

Notes
-----
入力する値のタイプが異なる場合は(Null)として値が入力されます

See Also
--------
1.get_cell(セルの値取得)やget_tuple(テーブルデータ取得)で、入力結果を確認することができます
2.セットIDが分からない時は、get_setid_list(セットID一覧取得)で確認することができます
3.各行に同じ値を入力したい場合はfill_cell(値を入力)、各行に違う値を入力したい場合はset_cell(値書込み)を利用してください

◆ 浮動小数データの小数点以下桁数を設定

dsx.float_format (   self,
  table_name,
  item_name,
  digit 
)
Parameters
----------
table_name : str
    テーブル名 
item_name : str
    項目名     
digit : int
    桁数 0~15 

Returns
-------
ResultCode : int
    結果コード(0:成功、負:エラーコード)

Examples
--------
浮動小数型の項目1の小数点以下を1桁にする

===========================================
>>> dsx.get_cell("practice1","項目1",1,3,1)
['1.000','2.000','3.000']
>>> dsx.float_format("practice1","項目1",1)
0
>>> dsx.get_cell("practice1","項目1",1,3,1)
['1.0','2.0','3.0']
===========================================

See Also
--------
get_cell(セルの値取得)やget_tuple(テーブルデータ取得)で、変更後の値を確認することができます

◆ セルの値取得

dsx.get_cell (   self,
  table_name,
  item_name,
  start_row = 1,
  row_count = 1,
  setid = -1 
)
Parameters
----------
table_name : str
    テーブル名
item_name : str
    項目名
start_row : int, default 1
    開始行
row_count : int, default 1
    行数  
setid : int, default -1
    セットID(省略した場合はカレントセット)

Returns
-------
ResultList : list
    セル値リスト(文字列)

Examples
--------
項目1の先頭から3行分のセルの値を取得する

===========================================
>>> dsx.get_cell("practice1","項目1",1,3,1)
['1000','2000','3000']
===========================================

See Also
--------
セットIDが分からない時は、get_setid_list(セットID一覧取得)で確認することができます

◆ 項目のデータ型取得

dsx.get_data_type (   self,
  table_name,
  item_name 
)
Parameters
----------
table_name : str
    テーブル名 
item_name : str
    項目名     

Returns
-------
ResultCode : int
    結果コード(2 ~ 8:成功、負:エラーコード)

Notes
-----
項目のデータ型
   
#2  :整数
#3  :浮動小数
#4  :日付
#5  :時刻
#6  :文字列
#7  :日付時刻
#8  :NUMERIC

◆ 項目一覧取得

dsx.get_itemlist (   self,
  table_name 
)
Parameters
----------
table_name : str
    テーブル名

Returns
-------
ResultList : list
    項目名リスト

Examples
--------
テーブルpractice1の項目一覧を取得する

=================================
>>> dsx.get_itemlist("practice1")
['項目1']
=================================

◆ テーブルの使用メモリサイズ取得

dsx.get_memory (   self,
  table_name 
)
Parameters
----------
table_name : str
    テーブル名

Returns
-------
ResultLong : long
    メモリサイズ

Examples
--------
テーブルpractice1の使用メモリサイズを取得する

===============================
>>> dsx.get_memory("practice1")
16444
===============================

◆ テーブルの行数取得

dsx.get_rowcount (   self,
  table_name,
  setid = -1 
)
Parameters
----------
table_name : str
    テーブル名
setid : int, default -1
    セットID(省略した場合はカレントセット)

Returns
-------
ResultCode : int
    結果コード(正:セットの行数、負:エラーコード)

Examples
--------
テーブルpractice1の行数を取得する

===================================
>>> dsx.get_rowcount("practice1",1)
5
===================================

See Also
--------
セットIDが分からない時は、get_setid_list(セットID一覧取得)で確認することができます

◆ セットID一覧取得

dsx.get_setid_list (   self,
  table_name 
)
Parameters
----------
table_name : str
    テーブル名

Returns
-------
ResultIntList : list
    セットリスト [ID, アトリビュート]

Examples
----------
テーブルpractice1のセットID一覧を取得する
====================================================================================
>>> dsx.get_setid_list(“practice1”)
[[1, ''], [2, 'Search Set:1 [項目1]<>あ'], [3, "SearchStrExp Set:1 項目1='あ' ..."]]
====================================================================================

◆ テーブル一覧取得

dsx.get_tablelist (   self)
Returns
-------
ResultList : list
    テーブル名リスト

Examples
--------
ワークスペースにあるテーブル一覧を取得する

=======================
>>> dsx.get_tablelist()
['practice1']
=======================

◆ テーブル名取得

dsx.get_tablename (   self,
  tableid 
)
Parameters
----------
tableid : int
    テーブルID

Returns
-------
ResultStr : str
    テーブル名

Examples
--------
テーブルID1~3のテーブル名を取得する

=====================================
>>>dsx.get_tablelist()
['practice1','practice2','practice3']
>>> dsx.get_tablename(1)
'practice1'
>>> dsx.get_tablename(2)
'practice2'
>>> dsx.get_tablename(3)
'practice3'
=====================================

Notes
-----
テーブルIDは自動的にロードした順でつけられます

See Also
--------
get_tablelist(テーブル一覧取得)で全てのテーブルを確認することができます

◆ テーブルデータ取得

dsx.get_tuple (   self,
  table_name,
  start_row = 1,
  fetch_size = 128,
  setid = -1 
)
Parameters
----------
table_name : str
    テーブル名
start_row : int, default 1
    取得開始行
fetch_size : int, default 128
    取得行数(省略した場合はデフォルト値) 
setid : int, default -1
    セットID(省略した場合はカレントセット)

Returns
-------
ResultList : list
    文字列に変換した行配列データ(先頭行はカラム名配列)

Examples
--------
テーブルpractice1のテーブルデータを取得する

=============================================================================
>>> dsx.get_tuple("practice1",1,2,1)
[['SeqNo','RecNo','項目1','項目2'], ['1','1','あ','か'], ['2','2','い','き']]
=============================================================================

See Also
--------
セットIDが分からない時は、get_setid_list(セットID一覧取得)で確認することができます

◆ テーブルデータをJSON形式で取得

dsx.get_tuple_asjson (   self,
  table_name,
  start_row = 1,
  fetch_size = 128,
  setid = -1 
)
Parameters
----------
table_name : str
    テーブル名
start_row : int, default 1
    取得開始行
fetch_size : int, default 128
    取得行数(省略した場合はデフォルト値) 
setid : int, default -1
    セットID(省略した場合はカレントセット)

Returns
-------
ResultList : list
    文字列に変換したJSON配列データ

Examples
--------
テーブルpractice1をJSON形式で取得する

=========================================================================================================
>>> dsx.get_tuple_asjson("practice1",1,2,1)
[{'SeqNo':'1','RecNo':'1','項目1:'あ','項目2':'か'}, {'SeqNo':'2','RecNo':'2','項目1':'い','項目2':'き'}]
=========================================================================================================

See Also
--------
セットIDが分からない時は、get_setid_list(セットID一覧取得)で確認することができます

◆ 値リスト取得

dsx.get_valuelist (   self,
  table_name,
  setid,
  item_name 
)
Parameters
----------
table_name : str
    テーブル名
setid : int
    セットID  
item_name : str
    項目名    

Returns
-------
ResultList : list
    値リスト(最大5,000行、5,000行を超えた場合は後を切り捨て)

Examples
--------
項目1の値リストを取得する

============================================
>>> dsx.get_valuelist("practice1",1,"項目1")
['','あ','い','う','え','お']
============================================

Notes
-----
1.指定した項目でグループ化されたリストを取得します
2.重複データの削除と並び替えが行われます

See Also
--------
セットIDが分からない時は、get_setid_list(セットID一覧取得)で確認することができます

◆ バージョン番号取得

dsx.get_version (   self)
Returns
-------
ResultStr : str
    バージョン番号

Examples
--------
バージョンを取得する

=====================
>>> dsx.get_version()
'2,22,0,1'
=====================

◆ 行の挿入

dsx.insert_row (   self,
  table_name,
  row_count,
  start_row = 1 
)
Parameters
----------
table_name : str
    テーブル名
row_count : int
    挿入行数  
start_row : int, default 1
    挿入位置行

Returns
-------
ResultCode : int
    結果コード(正:挿入行数、負:エラーコード)

Examples
--------
テーブルpractice1の3行目に1行挿入する

===========================================
>>> dsx.get_rowcount("practice1",1)
5
>>> dsx.get_cell("practice1","項目1",1,5,1)
['あ','い','う','え','お']
>>> dsx.insert_row("practice1",1,3)
1
>>> dsx.get_rowcount("practice1",1)
6
>>> dsx.get_cell("practice1","項目1",1,5,1)
['あ','い','','う','え']
===========================================

See Also
--------
1.get_rowcount(テーブルの行数取得)で、行数の増減を確認することができます
2.get_cell(セルの値取得)やget_tuple(テーブルデータ取得)で、行の挿入位置を確認することができます

◆ JOINテーブルを作成

dsx.join (   self,
  table_name,
  master_table_name,
  slave_table_name,
  master_setid,
  slave_setid,
  master_join_key,
  slave_join_key,
  is_in_out,
  is_transfer_item = 'No' 
)
Parameters
----------
table_name : str
    JOINテーブル名
master_table_name : str
    マスターテーブル名
slave_table_name : str
    スレーブテーブル名
master_setid : int
    マスターセットID
slave_setid : int
    スレーブセットID
master_join_key : list
    マスター側JOINキーリスト
slave_join_key : list
    スレーブ側JOINキーリスト
is_in_out : str
    Inner:内部JOIN、Outer:外部JOIN
is_transfer_item : str, default 'No'
    Yes:項目転送あり、No:なし

Returns
-------
ResultCode : int
    結果コード(正:JOINテーブルID、負:エラーコード)

Examples
--------
テーブルpractice1とpractice2を内部結合(InnerJOIN)する

==================================================================================
>>> dsx.join("join1","practice1","practice2",1,1,["項目1"],["項目1"],"Inner","No")
6
>>> dsx.get_tablelist()
['practice1','practice2','join1']
>>> dsx.get_tuple("join1",1,2,1)
[['SeqNo','RecNo','項目1','項目1_#1'], ['1','1','あ','ア'], ['2','2','い','イ']]
==================================================================================

See Also
--------
1.get_tablelist(テーブル一覧取得)で、JOINテーブルが追加されたことを確認することができます
2.get_cell(セルの値取得)やget_tuple(テーブルデータ取得)で、結合結果を確認することができます

◆ JOINテーブルのIN/OUT集合サブテーブル化

dsx.join_inout (   self,
  table_name,
  is_slave,
  is_in_out 
)
Parameters
----------
table_name : str
    JOINテーブル名
isSlave : str
    Yes:スレーブテーブルより抽出、No:マスターテーブルより抽出
isJoinOut : str
    IN:IN集合、OUT:OUT集合

Returns
-------
ResultIntList : list
    結果配列(セットが追加されたテーブルIDと生成されたセットID)

Examples
--------
JOINテーブルjoin1のIN集合をサブテーブル化する

=================================================================================================
※practice1とpractice2をJOINしたものがテーブルjoin1となっています
>>> dsx.get_tablelist()
['practice1','practice2','join1']
>>> dsx.get_setid_list("practice1")
[[1,'']
>>> dsx.join_inout("join1","No","IN")
[2, 2]
>>> dsx.get_tablename("2")
'practice1'
>>> dsx.get_setid_list("practice1")
[[1,''], [2,'JoinIN isSlave No']]
>>> dsx.get_tuple("practice1",1,2,2)
[['SeqNo','RecNo','項目1','項目2','項目1_#1'], ['1','1','あ','か','ア'], ['2','2','い','き','イ']]
==================================================================================================

See Also
--------
get_setid_list(セットID一覧取得)で、JOINテーブルがサブテーブル化したことを確認することができます

◆ JOINテーブルをREALテーブルに変換

dsx.join_realize (   self,
  join_table_name,
  real_table_name,
  setid,
  master_rec_number = 'Yes',
  slave_rec_number = 'Yes',
  item_name_list = '*' 
)
Parameters
----------
join_table_name : str
    JOINテーブル名
real_table_name : str
    REALテーブル名
setid : int
    セットID      
master_rec_number : str, default 'Yes'
    Yes:マスターテーブルのRecNoを出力する、No:出力しない
slave_rec_number : str, default 'Yes'
    Yes:スレーブテーブルのRecNoを出力する、No:出力しない
item_name_list : list, default '*'
    項目名リスト("*"は全項目が対象)

Returns
-------
ResultCode : int
    結果コード(正:REALテーブルID、負:エラーコード)

Examples
--------
JOINテーブルjoin1をREALテーブルに変換する

=======================================================
>>> dsx.get_tablelist()
['practice1','practice2','join1']
>>> dsx.join_realize("join1","real1",1,"No","No",["*"])
7
>>> dsx.get_tablelist()
['practice1','practice2','join1','real1']
>>> dsx.delete_table("join1")
=======================================================

See Also
--------
1.get_tablelist(テーブル一覧取得)で、JOINテーブルを変換したREALテーブルが追加されたことを確認することができます
2.セットIDが分からない時は、get_setid_list(セットID一覧取得)で確認することができます

◆ テーブル(D5Tファイル)ロード

dsx.load (   self,
  file_name 
)
Parameters
----------
file_name : str
    テーブルファイル名    

Returns
-------
ResultCode : int
    結果コード(正:テーブルID、負:エラーコード)

Examples
--------
D5Tファイル"practice1"をロードする 

=============================
>>> dsx.load("practice1.D5T")
3
>>> dsx.get_tablelist()
['practice1']
=============================

Notes
-----
D5Tファイルは相対パスもしくは絶対パスで指定してください

See Also
--------
get_tablelist(テーブル一覧取得)で、ワークスペースにテーブルをロードしたことを確認することができます

◆ カレントセット(サブテーブル)の移動

dsx.move_currentset (   self,
  table_name,
  setid 
)
Parameters
----------
table_name : str
    テーブル名  
setid : int
    移動セットID

Returns
-------
ResultCode : int
    結果コード(0:成功、負:エラーコード)

Examples
--------
セットIDが2のサブテーブルに移動する(カレントセットを移動する)

===============================================
>>> dsx.get_setid_list("practice1")
[[1,''], [2,'Search Set:1 [項目1] = 値リスト']]
>>> dsx.move_currentset("practice1",2)
0
===============================================

See Also
--------
セットIDが分からない時は、get_setid_list(セットID一覧取得)で確認することができます

◆ 項目の移動

dsx.move_item (   self,
  table_name,
  item_name_list,
  item_name 
)
Parameters
----------
table_name : str
    テーブル名          
item_name_list : list
    移動対象項目名リスト
item_name : str
    移動先項目名        

Returns
-------
ResultCode : int
    結果コード(0:成功、負:エラーコード)

Examples
--------
項目1を項目3の位置へ移動する

================================================
>>> dsx.get_itemlist("practice1")
['項目1','項目2','項目3']
>>> dsx.move_item("practice1",["項目1"],"項目3")
0
>>> dsx.get_itemlist("practice1")
['項目2','項目3','項目1']
================================================

See Also
--------
get_itemlist(項目一覧取得)で、項目が移動したことを確認することができます

◆ ログの出力制御

dsx.output_log (   self,
  is_content = 'No',
  is_result = 'Yes',
  is_recipe = 'No',
  is_document = 'No' 
)
Parameters
----------
is_content : str, default'No'
    実行内容ログ出力  Yes:出力あり、No:出力なし
is_result : str, default'Yes'
    実行結果ログ出力  Yes:出力あり、No:出力なし
is_recipe : str, default'No'
    レシピ出力  Yes:出力あり、No:出力なし
is_document : str, default'No'
    レシピドキュメント出力  Yes:出力あり、No:出力なし

Returns
-------
ResultCode : int
    結果コード(0:成功、負:エラーコード)
    
Examples
----------
実行内容・結果ログ、レシピ・レシピドキュメント全てを出力する

===================================================
>>> dsx.output_log(“Yes”,”Yes”,”Yes”,”Yes”)
0
===================================================

◆ CSVファイルのインポート

dsx.read_csv (   self,
  table_name,
  file_name 
)
Parameters
----------
table_name : str
    テーブル名を定義
file_name : str
    インポートファイル名(拡張子付き)

Returns
-------
ResultCode : int
    結果コード(正:テーブルID、負:エラーコード)

Examples
--------
CSVファイル(practice.csv)をインポートする

============================================
>>> dsx.read_csv("practice1","practice.csv")
1
============================================

Notes
-----
1.CSVファイルの文字コードは、エンジンのDB文字コードの設定と一致させて下さい
2.CSVファイルの先頭は項目行として、この行の内容で項目名を決定します
3.CSVファイルの先頭数行の内容を調べて、各項目のデータタイプを決定します
4.期待通りのデータタイプでテーブルが作成されない場合、項目の型変換もしくはcatalog(カタログインポート)で、インポートして下さい
5.CSVファイルは相対パスもしくは絶対パスで指定してください

See Also
--------
文字コード指定(db_codeset)で、エンジンのDB文字コードの設定ができます

◆ 項目名を変更

dsx.rename_item (   self,
  table_name,
  item_name,
  new_item_name 
)
Parameters
----------
table_name : str
    テーブル名  
item_name : str
    変更前項目名
new_item_name : str
    変更後項目名

Returns
-------
ResultCode : int
    結果コード(0:成功、負:エラーコード)

Examples
--------
項目名を項目1からitem1に変更する

================================================
>>> dsx.get_itemlist("practice1")
['項目1']
>>> dsx.rename_item("practice1","項目1","item1")
0
>>> dsx.get_itemlist("practice1")
['item1']
================================================

See Also
--------
get_itemlist(項目一覧取得)で項目名が変更したことを確認することができます

◆ テーブル名を変更

dsx.rename_table (   self,
  table_name,
  new_table_name 
)
Parameters
----------
table_name : str
    変更前テーブル名
new_table_name : str
    変更後テーブル名

Returns
-------
ResultCode : int
    結果コード(0:成功、負:エラーコード)

Examples
--------
テーブル名をpractice1からpractice2に変更する

=========================================
>>> dsx.get_tablelist()
['practice1']
dsx.rename_table("practice1","practice2")
0
>>> dsx.get_tablelist()
['practice2']
=========================================
See Also
--------
get_tablelist(テーブル一覧取得)でテーブル名が変更したことを確認することができます

◆ テーブル(D5Tファイル)保存

dsx.save (   self,
  file_name 
)
Parameters
----------
file_name : str
    テーブルファイル名          

Returns
-------
ResultCode : int
    結果コード(0:成功、負:エラーコード)

Examples
--------
テーブルpractice1を保存する

=============================
>>> dsx.save("practice1.D5T")
0
=============================

Notes
-----
D5Tファイルは、保存先を相対パスもしくは絶対パスで指定してください

See Also
--------
D5Dファイル、D5Tファイルについては、クッキングマニュアルをご参照ください

◆ 検索

dsx.search (   self,
  table_name,
  item_name,
  setid,
  search_string 
)
Parameters
----------
table_name : str
    テーブル名    
item_name : str
    検索対象項目名
setid : int
    セットID      
search_string : str
    検索条件式(=、<>、<=、<、>=、>、string*、*string*、*string、IS NULL、IS NOT NULL)

Returns
-------
ResultCode : int
    結果コード(正:生成されたセットID、負:エラーコード)

Examples
--------
テーブルpractice1の項目1で、"あ"以外の値を検索する

===================================================
>>> dsx.search("practice1","項目1",1,"[項目1]<>あ")
2
>>> dsx.get_cell("practice1","項目1",1,5,2)
['い','う','え','お','か']
===================================================

See Also
--------
1.get_cell(セルの値取得)やget_tuple(テーブルデータ取得)で、検索結果を確認することができます
2.セットIDが分からない時は、get_setid_list(セットID一覧取得)で確認することができます

◆ 文字列検索式による検索

dsx.search_string (   self,
  table_name,
  setid,
  expression 
)
Parameters
----------
table_name : str
    テーブル名  
setid : int
    セットID    
expression : str
    文字列検索式

Returns
-------
ResultCode : int
    結果コード(正:生成されたセットID、負:エラーコード)

Examples
--------
性別が男性かつ年齢が20歳を超えている人の苗字を検索する

==================================================================
>>> dsx.search_string("practice1",1,"性別 ='男性'AND 年齢 >=20")
2
>>> dsx.get_cell("practice1","苗字",1,5,2)
['相澤','青木','秋元','朝倉','在原']
==================================================================

Notes
-----
search_string(文字列検索)では、search(検索)の機能に加えAND、ORの指定が可能です

See Also
--------
1.get_cell(セルの値取得)やget_tuple(テーブルデータ取得)で、検索結果を確認することができます
2.セットIDが分からない時は、get_setid_list(セットID一覧取得)で確認することができます
3.計算式の種類と構文については、クッキングマニュアルをご参照ください

◆ 値リスト検索

dsx.search_values (   self,
  table_name,
  item_name,
  setid,
  search_string_list 
)
Parameters
----------
table_name : str
    テーブル名    
item_name : str
    検索対象項目名
setid : int
    セットID      
search_string_list : list
    検索値文字列リスト

Returns
-------
ResultCode : int
    結果コード(正:生成されたセットID、負:エラーコード)

Examples
--------
項目1の値が"あ","い"のデータのみ取得する

==========================================================================================================
>>> dsx.get_tuple("practice1",1,3,1)
[['SeqNo','RecNo','項目1','項目2','項目3'], ['1','1','あ','か'], ['2','2','い','き'], ['3','3','う','く']]
>>> dsx.search_values("practice2","項目1",1,["あ","い"])
3
>>> dsx.get_tuple("practice1",1,2,3)
[['SeqNo','RecNo','項目1','項目2'], ['1','1','あ','か'], ['2','2','い','き']]
==========================================================================================================

See Also
--------
1.get_cell(セルの値取得)やget_tuple(テーブルデータ取得)でで、検索結果を確認することができます
2.セットIDが分からない時は、get_setid_list(セットID一覧取得)で確認することができます

◆ セルに値書込み

dsx.set_cell (   self,
  table_name,
  item_name,
  start_row,
  row_count,
  fill_string_list,
  setid = -1 
)
Parameters
----------
table_name : str
    テーブル名
item_name : str
    項目名
start_row : int
    開始行
row_count : int
    行数  
fill_string_list : list
    書込み値文字列リスト                    
setid : int
    セットID(省略した場合はカレントセット)

Returns
-------
ResultCode : int
    結果コード(正:データ数、負:エラーコード)

Examples
----------
項目1をあ行にする

======================================================================
>>> dsx.get_cell("practice1","項目1",1,5,1)
['あ','あ','あ','あ','あ']
>>> dsx.set_cell("practice1","項目1",1,5,["あ","い","う","え","お"],1)
>>> dsx.get_cell("practice1","項目1",1,5,1)
['あ','い','う','え','お']
======================================================================

See Also
--------
1.get_cell(セルの値取得)やget_tuple(テーブルデータ取得)で、書込み結果を確認することができます
2.セットIDが分からない時は、get_setid_list(セットID一覧取得)で確認することができます
3.各行に同じ値を入力したい場合はfill_cell(値を入力)、各行に違う値を入力したい場合はset_cell(値書込み)を利用してください

◆ サブテーブル(セット)のコメント編集

dsx.set_comment (   self,
  table_name,
  setid,
  comment_string 
)
Parameters
----------
table_name : str
    テーブル名    
setid : int
    セットID      
comment_string : str
    コメント文字列

Returns
-------
ResultCode : int
    結果コード(0:成功、負:エラーコード)

Examples
--------
テーブルpractice1のセット(Search Set)のコメントを編集する

===============================================
>>> dsx.get_setid_list("practice1")
[[1,''], [2,'Search Set:1 [項目1] = 値リスト']]
>>> dsx.set_comment("practice1",2,"検索リスト")
0
>>> dsx.get_setid_list("practice1")
[[1,''], [2,'検索リスト']]
===============================================

Notes
-----
コメント文字列は、62bytes以降は切り捨てられます

See Also
--------
1.get_setid_list(セットID一覧取得)でセットのコメントが変更したことを確認することができます
2.セットIDが分からない時は、get_setid_list(セットID一覧取得)で確認することができます

◆ ライセンスキーの設定

dsx.set_license (   self,
  license_key 
)
Parameters
----------
license_key : str
    ライセンスキー

Returns
-------
ResultCode : int
    結果コード(0:成功、負:エラーコード)

Examples
--------
ライセンスキーの設定をする

=====================================
>>> dsx.set_license("ライセンスキー")
0
=====================================

◆ 2つのサブテーブル(セット)のAND抽出

dsx.setand (   self,
  table_name,
  src_setid,
  dst_setid 
)
Parameters
----------
table_name : str
    テーブル名        
src_setid : int
    対象セットID      
dst_setid : int
    ターゲットセットID

Returns
-------
ResultCode : int
    結果コード(正:生成されたセットID、負:エラーコード)

Examples
--------
ルートセットかつ検索リスト(項目1="あ")のサブテーブルを抽出する

==================================================================================================
>>> dsx.get_tuple("practice1",1,3,1)
[['SeqNo','RecNo','項目1','項目2'], ['1','1','あ','か'], ['2','2','い','き'], ['3','3','う','く']]
>>> dsx.search_values("practice1","項目1",1,["あ"])
2
>>> dsx.get_setid_list("practice1")
[[1,''], [2,'Search Set:1 [項目1] = 値リスト']]
>>> dsx.setand("practice1",1,2)
3
>>> dsx.get_tuple("practice1",1,1,3)
[['SeqNo','RecNo','項目1','項目2'], ['1','1','あ','か']]
==================================================================================================

See Also
--------
1.get_tuple(テーブルデータ取得)で、抽出結果を確認することができます
2.セットIDが分からない時は、get_setid_list(セットID一覧取得)で確認することができます。

◆ サブテーブル(セット)のNOT抽出

dsx.setnot (   self,
  table_name,
  setid 
)
Parameters
----------
table_name : str
    テーブル名
setid : int
    セットID  

Returns
-------
ResultCode : int
    結果コード(正:生成されたセットID、負:エラーコード)

Examples
--------
テーブルpractice1のサブテーブル、検索リスト(項目1="あ")でないものをルートセットから抽出する
      
==================================================================================================
>>> dsx.get_tuple("practice1",1,3,1)
[['SeqNo','RecNo','項目1','項目2'], ['1','1','あ','か'], ['2','2','い','き'], ['3','3','う','く']]
>>> dsx.search_values("practice1","項目1",1,["あ"])
2
>>> dsx.get_setid_list("practice1")
[[1,''], [2,'Search Set:1 [項目1] = 値リスト']]
>>> dsx.setnot("practice1",2)
4
>>> dsx.get_tuple("practice3",1,2,4)
[['SeqNo','RecNo','項目1','項目2'], ['1','2','い','き'], ['2','3','う','く']]
===================================================================================================

See Also
--------
1.get_cell(セルの値取得)やget_tuple(テーブルデータ取得)で、抽出結果を確認することができます
2.セットIDが分からない時は、get_setid_list(セットID一覧取得)で確認することができます
3.NOT抽出とSUB抽出の違いについては、クッキングマニュアルをご参照ください

◆ 2つのサブテーブル(セット)のOR抽出

dsx.setor (   self,
  table_name,
  src_setid,
  dst_setid 
)
Parameters
----------
table_name : str
    テーブル名  
src_setid : int
    対象セットID
dst_setid : int
    ターゲットセットID

Returns
-------
ResultCode : int
    結果コード(正:生成されたセットID、負:エラーコード)

Examples
--------
テーブルpractice1の2つのサブテーブル、検索リスト(項目1="あ")または検索リスト(項目2="き")を抽出する

==================================================================================================
>>>dsx.get_tuple("practice1",1,3,1)
[['SeqNo','RecNo','項目1','項目2'], ['1','1','あ','か'], ['2','2','い','き'], ['3','3','う','く']]
>>>dsx.search_values("practice1","項目1",1,["あ"])
2
>>>dsx.search_values("practice1","項目2",1,["き"])
3
>>>dsx.get_setid_list("practice1")
[[1,''], [2,'Search Set:1 [項目1] = 値リスト']] , [3,'Search Set:1 [項目2] = 値リスト']]
>>> dsx.setor("practice1",2,3)
4
>>> dsx.get_tuple("practice1",1,2,4)
[['SeqNo','RecNo','項目1','項目2'], ['1','1','あ','か'], ['2','2','い','き']]
==================================================================================================

See Also
--------
1.get_tuple(テーブルデータ取得)で、抽出結果を確認することができます
2.セットIDが分からない時は、get_setid_list(セットID一覧取得)で確認することができます

◆ 2つのサブテーブル(セット)のSUB抽出

dsx.setsub (   self,
  table_name,
  src_setid,
  dst_setid 
)
Parameters
----------
table_name : str
    テーブル名  
src_setid : int
    対象セットID
dst_setid : int
    ターゲットセットID

Returns
-------
ResultCode : int
    結果コード(正:生成されたセットID、負:エラーコード)

Examples
--------
テーブルpractice1の2つのサブテーブル、検索リスト(項目1="あ")を除いたテーブルから、 検索リスト(項目1="い")を除いたものを抽出する

==================================================================================================
>>>dsx.get_tuple("practice1",1,3,1)
[['SeqNo','RecNo','項目1','項目2'], ['1','1','あ','か'], ['2','2','い','き'], ['3','3','う','く']]
>>>dsx.search_values("practice1","項目1",1,["あ"])
2
>>> dsx.setnot("practice1",2)
3
>>> dsx.get_tuple("practice3",1,2,3)
[['SeqNo','RecNo','項目1','項目2'], ['1','2','い','き'], ['2','3','う','く']]
>>>dsx.search_values("practice1","項目1",1,["い"])
4
>>> dsx.setsub("practice1",3,4)
7
>>> dsx.get_tuple("practice1",1,1,7)
[['SeqNo','RecNo','項目1','項目2'], ['1','1','う','く']]
===================================================================================================

See Also
--------
1.get_cell(セルの値取得)やget_tuple(テーブルデータ取得)で、抽出結果を確認することができます
2.セットIDが分からない時は、get_setid_list(セットID一覧取得)で確認することができます
3.NOT抽出とSUB抽出の違いについては、クッキングマニュアルをご参照ください

◆ データのソート

dsx.sort (   self,
  table_name,
  item_name,
  setid,
  sort_type = 'ASC' 
)
Parameters
----------
table_name : str
    テーブル名
item_name : str
    項目名  
setid : int
    セットID
sort_type : str, default 'ASC'
    並び順(ASC:昇順、DSC:降順)

Returns
-------
ResultCode : int
    結果コード(正:生成されたセットID、負:エラーコード)

Examples
--------
項目1の値を昇順にする

===========================================
>>> dsx.get_cell("practice1","項目1",1,5,1)
['2','3','4','5','1']
>>> dsx.sort("practice1","項目1",1,"ASC")
2
>>> dsx.get_cell("practice1","項目1",1,5,2)
['1','2','3','4','5']
===========================================

See Also
--------
1.get_cell(セルの値取得)やget_tuple(テーブルデータ取得)で、ソート結果を確認することができます
2.セットIDが分からない時は、get_setid_list(セットID一覧取得)で確認することができます

◆ 項目の並び順をソート

dsx.sort_item (   self,
  table_name,
  sort_key 
)
Parameters
----------
table_name : str
    テーブル名
sort_key : str
    ソートキー(ID、TYPE、NAME)

Returns
-------
ResultCode : int
    結果コード(0:成功、負:エラーコード)

Examples
--------
項目の並びを名前順にする

=====================================
>>> dsx.get_itemlist("practice1")
['項目2','項目3','項目1']
>>> dsx.sort_item("practice1","NAME")
0
>>> dsx.get_itemlist("practice1")
['項目1','項目2','項目3']
=====================================

See Also
--------
get_itemlist(項目一覧取得)で、ソート結果を確認することができます

◆ 項目転送

dsx.transfer_item (   self,
  table_name,
  item_name 
)
Parameters
----------
table_name : str
    転送元JOINテーブル名
item_name : str
    項目名              

Returns
-------
ResultCode : int
    結果コード(正:追加作成された項目ID、負:エラーコード)

Examples
--------
テーブルpractice1とpractice2を内部結合(InnerJOIN)した後、項目1を転送する

==================================================================================================
>>> dsx.join("join1","practice1","practice2",1,1,["項目1"],["項目1"],"Inner","No")
3
>>> dsx.get_tuple("practice1",1,2,1)
[['SeqNo','RecNo','項目1','項目2'], ['1','1','あ','か'], ['2','2','い','き']]
>>> dsx.transfer_item("join1","項目1")
12
>>> dsx.get_tuple("practice1",1,2,1)
[['SeqNo','RecNo','項目1','項目2','項目1_#1'], ['1','1','あ','か','ア'], ['2','2','い','き','イ']]
==================================================================================================

See Also
--------
get_cell(セルの値取得)やget_tuple(テーブルデータ取得)で、転送した項目を確認することができます

◆ UNION(和結合)

dsx.union (   self,
  table_name,
  master_table_name,
  slave_table_name,
  master_setid,
  slave_setid,
  master_union_key,
  slave_union_key,
  is_master_tableid = 'Yes',
  is_slave_rec_number = 'Yes',
  is_delete_table = 'No' 
)
Parameters
----------
table_name : str
    縦結合テーブル名          
master_table_name : str
    マスターテーブル名        
slave_table_name : str
    スレーブテーブル名        
master_setid : int
    マスターテーブルのセットID
slave_setid : int
    スレーブテーブルのセットID
master_union_key : str
    マスターテーブルの結合キーリスト 
slave_union_key : str
    スレーブテーブルの結合キーリスト 
is_master_tableid : str
    Yes:マスターテーブルのIDを使用する、No:使用しない   
is_slave_rec_number : str
    Yes:スレーブテーブルのRecNoを出力する、No:出力しない
is_delete_table : str
    Yes:元テーブルを削除する、No:削除しない             

Returns
-------
ResultCode : int
    結果コード(正:生成されたテーブルID、負:エラーコード)

Examples
--------
テーブルpractice1とpractice2の項目1を結合する

=========================================================================================
>>> dsx.get_tablelist()
['practice1','practice2']
>>> dsx.union("union1","practice1","practice2",1,1,["項目1"],["項目1"],"No","No","No")
4
>>> dsx.get_tablelist()
['practice1,'practice2','union1']
>>> dsx.get_tuple("union1",1,4,1)
[['SeqNo','RecNo','項目1'], ['1','1','あ'], ['2','2','い']['3','3','ア'], ['4','4','イ']]
=========================================================================================

See Also
--------
1.get_tablelist(テーブル一覧取得)で、UNIONテーブルが追加されたことを確認することができます
2.get_cell(セルの値取得)やget_tuple(テーブルデータ取得)で、結合結果を確認することができます
3.セットIDが分からない時は、get_setid_list(セットID一覧取得)で確認することができます

◆ データのエクスポート

dsx.write_csv (   self,
  table_name,
  file_name,
  setid,
  delimiter = 'CSV',
  write_top = 1,
  write_bottom = -1,
  write_left = 1,
  write_right = -1,
  is_header = 'Yes' 
)
Parameters
----------
table_name : str
    テーブル名                  
file_name : str
    エクスポート先のファイル名                  
setid : int
    セットID                    
delimiter : str, default 'CSV'
    区切り文字(CSV/TAB)       
write_top : int, default 1
    開始行(先頭行は1)        
write_bottom : int, default -1
    終了行(マイナス値は最終行)
write_left : int, default 1
    開始列(先頭列は1、RecNoは指定不可)
write_right : int, default -1
    終了列(マイナス値は最終列)
is_header : str, default 'Yes'
    Yes:項目ヘッダー出力あり、No:項目ヘッダー出力なし

Returns
-------
ResultCode : int
    結果コード(正:出力行数、負:エラーコード)

Examples
--------
テーブルpractice1の全ての値をカンマ区切りのCSVファイルにエクスポートする

=====================================================================
>>> dsx.write_csv("practice1","practice.csv",1,"CSV",1,-1,1,-1,"Yes")
10
=====================================================================

Notes
-----
CSVファイルは、エクスポート先を相対パスもしくは絶対パスで指定してください

See Also
--------
セットIDが分からない時は、get_setid_list(セットID一覧取得)で確認することができます

◆ 項目名指定でデータのエクスポート

dsx.write_csv_selectitem (   self,
  table_name,
  file_name,
  setid,
  delimiter = 'CSV',
  write_top = 1,
  write_bottom = -1,
  item_name_list = '*',
  is_header = 'Yes',
)
Parameters
----------
table_name : str
    テーブル名                  
file_name : str
    エクスポート先のファイル名                  
setid : int
    セットID                    
delimiter : str
    区切り文字(CSV/TAB)       
write_top : int, default 1
    開始行(先頭行は1)        
write_bottom : int, default -1
    終了行(マイナス値は最終行)
item_name_list : list, default '*'
    抽出項目名リスト("*"は全項目が対象)    
is_header : str, default 'Yes'
    Yes:項目ヘッダー出力あり、No:項目ヘッダー出力なし

Returns
-------
ResultCode : int
    結果コード(正:出力行数、負:エラーコード)

Examples
--------
テーブルpractice1の項目1のみをカンマ区切りのCSVファイルにエクスポートする

====================================================================================
>>>dsx.write_csv_selectitem("practice1","practice.csv",1,"CSV",1,-1,["項目1"],"Yes")
10
====================================================================================

Notes
-----
CSVファイルは、エクスポート先を相対パスもしくは絶対パスで指定してください

See Also
--------
セットIDが分からない時は、get_setid_list(セットID一覧取得)で確認することができます

◆ データの集計

dsx.xsum (   self,
  table_name,
  setid,
  dimension_item_list,
  measure_item_list 
)
Parameters
----------
table_name : str
    テーブル名
setid : int
    セットID  
dimension_item_list : list
    次元の項目名リスト(最大32項目)
measure_item_list : list
    測度の項目リスト {項目名,件数,最大値,最小値,合計値,平均値}(最大32項目)
        件数  (Yes:集計する、No:集計しない)
        最大値(Yes:集計する、No:集計しない)
        最小値(Yes:集計する、No:集計しない)
        合計値(Yes:集計する、No:集計しない)
        平均値(Yes:集計する、No:集計しない)

Returns
-------
ResultCode : int
    結果コード(正:生成された集計テーブルID、負:エラーコード)

Examples
--------
項目1の件数、最大値、最小値、合計値、平均値を集計する

======================================================================================================================================
 >>> dsx.xsum("practice1",1,["項目1"],[["項目1","Yes","Yes","Yes","Yes","Yes"]])
5
>>> dsx.get_tablelist()
['practice1','XTBL_practice1']
>>> dsx.get_tuple("XTBL_practice1",1,20,1)
[['SeqNo','RecNo','項目1','N<項目1>','MAX<項目1>','MIN<項目1>','SUM<項目1>','AVG<項 目1>'], ['1','1','1','1','1','1','1.000','1.000']]
======================================================================================================================================

Notes
-----
1.引数の、測度の項目リストは二次元配列で記載してください
2.作成されたテーブルは、元のテーブル名の先頭に XTBL_ が付いています

See Also
--------
1.get_tablelist(テーブル一覧取得)で、集計テーブルが追加されたことを確認することができます
2.get_cell(セルの値取得)やget_tuple(テーブルデータ取得)で、集計結果を確認することができます
3.セットIDが分からない時は、get_setid_list(セットID一覧取得)で確認することができます