My Project
3.DataServiceEx.py
Go to the documentation of this file.
1#!/usr/bin/env python
2# -*- coding: utf-8 -*-
3
5 """
6 データサービス(Gear-API)クラス
7
8 ※ Jupyter notebook/labでGear-APIを使用する場合、dataServerへのパス指定が必須です。
9 ※ macOSの場合、DYLD_LIBRARY_PATHでdi5engine/mac指へのパス指定が必須です。
10
11 Jupyter lab 起動例
12 cd ESPERiCフォルダーのパス
13 export PYTHONPATH=$(cd "./server/dataService" && pwd):$PYTHONPATH
14 export PYTHONPATH=$(cd "./server" && pwd):$PYTHONPATH ←←← start_sdc3 APIを使用するの場合のみ 必須
15 export DYLD_LIBRARY_PATH=$(cd "./server/di5engine/mac" && pwd) ←←← macOSの場合のみ 必須
16 Jupyter Lab
17 """
18
19 def __init__(self, is_macro_stop = False, is_language = "ja-JP"):
20 """
21 コンストラクタ
22
23 Parameters
24 ----------
25 is_macro_stop : bool, default False
26 実行エラーが発生した場合に中断するか否か
27 (True:中断、False:続行)
28 is_language : str, default 'ja-JP'
29 言語
30 (ja-JP:日本語、en-US:英語)
31 """
32 import DataServiceCtl
33 self._sLastMessage = None
34 serv = DataServiceCtl.DataServiceCtl()
35 serv.IsMacroStop = is_macro_stop
36 serv.IsLanguage = is_language
37 serv.execDataService()
38
39 def __get_message(self):
40 """
41 最後に出力されたメッセージを取得
42
43 Returns
44 -------
45 _sLastMessage : str
46 出力メッセージ
47 """
48 return self._sLastMessage
49
50 def __set_message(self, message):
51 """
52 最後に出力されたメッセージを設定
53
54 Parameters
55 ----------
56 message : str
57 設定するメッセージ
58 """
59 self._sLastMessage = message
60
61 LastMessage = property(fget=__get_message, fset=__set_message) # 最後に出力されたメッセージ
62
63 def __document(self, is_document = 'No'):
64 """
65 レシピドキュメントの出力制御
66
67 Parameters
68 ----------
69 is_document : str, default 'No'
70 Yes:ドキュメント出力あり、No:出力なし
71
72 Returns
73 -------
74 ResultCode : int
75 結果コード(0:成功、負:エラーコード)
76 """
77 import DocumentEx
78 serv = DocumentEx.DocumentEx()
79 serv.Documentout = is_document
80 serv.execDataService()
81 self.LastMessage = serv.ResultMessage
82 return serv.ResultCode
83
84 def output_log(self, is_content = 'No', is_result = 'Yes', is_recipe = 'No', is_document = 'No'):
85 """
86 ログの出力制御
87
88 Parameters
89 ----------
90 is_content : str, default 'No'
91 実行内容ログ出力 Yes:出力あり、No:出力なし
92 is_result : str, default 'Yes'
93 実行結果ログ出力 Yes:出力あり、No:出力なし
94 is_recipe : str, default 'No'
95 レシピ出力 Yes:出力あり、No:出力なし
96 is_document : str, default 'No'
97 レシピドキュメント出力 Yes:出力あり、No:出力なし
98
99 Returns
100 -------
101 ResultCode : int
102 結果コード(0:成功、負:エラーコード)
103 """
104 import OutputLogEx
105 serv = OutputLogEx.OutputLogEx()
106 serv.Contentout = is_content
107 serv.Resultout = is_result
108 serv.Recipeout = is_recipe
109 serv.Documentout = is_document
110 serv.execDataService()
111 self.LastMessage = serv.ResultMessage
112 return serv.ResultCode
113
114 def add_realitem(self, table_name, add_position, new_item_name, item_type, file_name):
115 """
116 項目の追加
117
118 Parameters
119 ----------
120 table_name : str
121 テーブル名
122 add_position : str
123 追加位置(項目名)項目がない場合は”RecNo”を指定
124 new_item_name : str
125 追加項目名
126 item_type : str
127 追加項目のデータ型(String:文字列、Integer:整数、Double:浮動小数、Time:時刻、Date:日付、DateTime:日付時刻)
128 file_name : str
129 項目ファイル名(拡張子付き)空項目を追加する場合は空白””
130
131 Returns
132 -------
133 ResultCode : int
134 結果コード(正:追加項目ID、負:エラーコード)
135
136 Examples
137 --------
138 テーブルpractice1に、整数型の項目1を空項目で追加する
139
140 =======================================================================
141 >>>dsx.add_realitem(“practice1”,”RecNo”,”項目1”,”Integer”,””)
142 1
143 >>>dsx.get_itemlist(“practice1”)
144 [‘項目1’]
145 =======================================================================
146
147 See Also
148 --------
149 1.項目一覧取得(get_itemlist)で、項目が追加されたことを確認できます
150 2.テーブルデータ取得(get_tuple)で追加位置を確認できます
151
152 ====================================
153 >>>dsx.get_tuple("practice1",1,10,1)
154 [['SeqNo', 'RecNo'], ['1', '1']]
155 ====================================
156
157 SeqNoとRecNoはテーブル作成時から既にある項目です
158
159 """
160 import AddRealItemEx
161 serv = AddRealItemEx.AddRealItemEx()
162 serv.TableName = table_name
163 serv.AddPos = add_position
164 serv.NewFilterName = new_item_name
165 serv.FilterType = item_type
166 serv.FileName = file_name
167 serv.execDataService()
168 self.LastMessage = serv.ResultMessage
169 return serv.ResultCode
170
171 def __add_realitem_numeric(self, table_name, add_position, new_item_name, item_type, num_scale, num_mode, file_name):
172 """
173 NUMERIC項目の追加(サポートなし)
174
175 Parameters
176 ----------
177 table_name : str
178 テーブル名
179 add_position : str
180 追加位置(項目名)
181 new_item_name : str
182 追加項目名
183 item_type : str
184 追加項目のデータ型(Numeric:NUMERIC)
185 num_scale : int
186 スケール(0~38)
187 num_mode : str
188 丸めモード(ROUND_UP、ROUND_DOWN、ROUND_CEILING、ROUND_FLOOR、ROUND_HALF_UP、ROUND_HALF_DOWN、ROUND_HALF_EVEN)
189 file_name : str
190 項目ファイル名(拡張子付き)空項目を追加する場合は空白
191
192 Returns
193 -------
194 ResultCode : int
195 結果コード(正:追加項目ID、負:エラーコード)
196 """
197 import AddRealItemNumericEx
198 serv = AddRealItemNumericEx.AddRealItemNumericEx()
199 serv.TableName = table_name
200 serv.AddPos = add_position
201 serv.NewFilterName = new_item_name
202 serv.FilterType = item_type
203 serv.NumScale = num_scale
204 serv.NumMode = num_mode
205 serv.FileName = file_name
206 serv.execDataService()
207 self.LastMessage = serv.ResultMessage
208 return serv.ResultCode
209
210 def append_row(self, table_name, row_count, start_row = 1):
211 """
212 行の追加
213
214 Parameters
215 ----------
216 table_name : str
217 テーブル名
218 row_count : int
219 追加行数
220 start_row : int, default 1
221 追加位置行
222
223 Returns
224 -------
225 ResultCode : int
226 結果コード(正:追加行数、負:エラーコード)
227
228 Examples
229 --------
230 項目1の1行目に1行追加する
231
232 ==============================================
233 >>> dsx.get_rowcount(“practice1”,1)
234 3
235 >>>dsx.get_cell(“practice1”,”項目1”,1,3,1)
236 [‘あ’,’い’,’う’]
237 >>>dsx.append_row(“practice1”,1,1)
238 1
239 >>> dsx.get_rowcount(“practice1”,1)
240 4
241 >>>dsx.get_cell(“practice1”,”項目1”,1,3,1)
242 [‘あ’,’’,’い’]
243 ==============================================
244
245 See Also
246 --------
247 1.テーブルの行数取得(get_rowcount)で、行数が増えたことを確認できます
248 2.セルの値取得(get_cell)で、追加された行の位置を確認できます
249
250 """
251 import AppendRowEx
252 serv = AppendRowEx.AppendRowEx()
253 serv.TableName = table_name
254 serv.StartRow = start_row
255 serv.RowCount = row_count
256 serv.execDataService()
257 self.LastMessage = serv.ResultMessage
258 return serv.ResultCode
259
260 def calc(self, table_name, item_name, calc_string, row_count = -1, start_row = 1, setid = -1):
261 """
262 計算
263
264 Parameters
265 ----------
266 table_name : str
267 テーブル名
268 item_name : str
269 項目名
270 calc_string : str
271 計算式
272 row_count : int, default -1
273 行数(マイナス値は全行が対象)
274 start_row : int, default 1
275 計算開始行
276 setid : int, default -1
277 セットID(省略した場合はカレントセット)
278
279 Returns
280 -------
281 ResultCode : int
282 結果コード(0:成功、負:エラーコード)
283
284 Examples
285 --------
286 項目1の整数全行に×1000をする
287
288 ==============================================================
289 >>>dsx.get_cell(“practice1”,”項目1”,1,3,1)
290 [‘1’,’2’,’3’]
291 >>>dsx.calc(“practice1”,”項目1”,’*(@項目1,1000)’,-1,1,1)
292 0
293 >>>dsx.get_cell(“practice1”,”項目1”,1,5,1)
294 [‘1000’,’2000’,’3000’]
295 ==============================================================
296
297 Notes
298 -----
299 計算式のみシングルクォーテーションで括ります
300
301 See Also
302 --------
303 1.セルの値取得(get_cell)で、計算結果を確認できます
304 2.セットIDが分からない時は、セットID一覧取得(get_setid_list)で確認できます
305 3.計算の構文についてはクッキングマニュアルのp.35,36をご参照ください
306
307 Examples
308 ----------
309 項目1と項目2を文字列結合する
310
311 ==========================================================================================
312 >>> dsx.get_tuple("practice1",1,20,1)
313 [['SeqNo', 'RecNo', '項目1', '項目2'], ['1', '1', 'ア', 'カ'], ['2', '2', 'イ', 'キ']]
314 >>> dsx.calc("practice1","項目1",'$&($@項目1,$@項目2)',-1,1,1)
315 0
316 >>> dsx.get_tuple("practice1",1,20,1)
317 [['SeqNo', 'RecNo', '項目1', '項目2'], ['1', '1', 'アカ', 'カ'], ['2', '2', 'イキ', 'キ']]
318 ==========================================================================================
319
320 Notes
321 -----
322 計算式のみシングルクォーテーションで括ります
323
324 See Also
325 --------
326 1.テーブルデータ取得(get_tuple)で、文字列結合の結果を確認できます
327 2.セットIDが分からない時は、セットID一覧取得(get_setid_list)で確認できます
328 3.計算の構文についてはクッキングマニュアルのp.35,36をご参照ください
329
330 """
331 import CalcEx
332 serv = CalcEx.CalcEx()
333 serv.TableName = table_name
334 serv.FilterName = item_name
335 serv.StartRow = start_row
336 serv.RowCount = row_count
337 serv.CalcStr = calc_string
338 serv.SetID = setid
339 serv.execDataService()
340 self.LastMessage = serv.ResultMessage
341 return serv.ResultCode
342
343 def catalog(self, table_name, file_name, catalog_name, mode = None):
344 """
345 Parameters
346 ----------
347 table_name : str
348 テーブル名を定義
349 file_name : str
350 インポートファイル名(拡張子付き)
351 catalog_name : str
352 カタログファイル名(拡張子付き StructInfo.txt)
353
354 Returns
355 -------
356 ResultCode : int
357 結果コード(正:テーブルID、負:エラーコード)
358
359 Examples
360 --------
361 カタログファイル(StructInfo.txt)に従ってpractice1.csvをインポートする
362
363 =====================================================================================================
364 >>> dsx.catalog("practice1","フォルダ\\フォルダ\\practice1.csv","フォルダ\\フォルダ\\StructInfo.txt")
365 1
366 =====================================================================================================
367
368 Notes
369 -----
370 1.インポートできない時は、DBとインポートするCSVファイル、カタログファイルの文字コードが一致していることをご確認ください
371
372 2.カタログファイルの形式
373 2-1.ファイル形式指定(必須)
374 //CSV カンマ区切りファイル
375 //TAB タブ区切りファイル
376 //FIX 固定長データファイル
377
378 2-2.文字コード(任意:CSVファイルの文字エンコードがエンジンのDB文字コードと異なる場合に指定)
379 //SHIFT-JIS シフトJIS
380 //UTF-8 UTF-8
381 //MS932 MS932 (Windows 日本語)
382
383 2-3.オプション(任意:先頭の項目行を読み飛ばす場合に指定)
384 //CUTTOP
385
386 2-4.dataType
387 次のいずれかを指定
388 I : 整数
389 F : 浮動小数
390 A : 文字列
391 D : 日付
392 T : 時刻
393 E : 日付時刻
394
395 2-5.dataSize
396 データの長さを指定(固定長データファイルの場合のみ有効)
397
398 2-6.itemName
399 項目名を指定
400
401 Examples
402 --------
403 カタログファイルの指定(dataType [tab] dataSize [tab] itemName)
404
405 //CSV
406 //UTF-8
407 //CUTTOP
408 A [tab] 1 [tab] 氏名
409 I [tab] 1 [tab] 年齢
410 F [tab] 1 [tab] 身長
411 F [tab] 1 [tab] 体重
412
413 See Also
414 --------
415 文字コード指定(db_codeset)で、エンジンのDB文字コードの設定ができます
416
417 """
418 import CatalogEx
419 serv = CatalogEx.CatalogEx()
420 serv.TableName = table_name
421 serv.CatName = catalog_name
422 serv.SrcName = file_name
423 serv.Mode = mode #インポート処理モード(null:通常モード、"correct":エラー訂正モード)
424 serv.execDataService()
425 self.LastMessage = serv.ResultMessage
426 return serv.ResultCode
427
428 def read_csv(self, table_name, file_name):
429 """
430 CSVファイルのインポート
431
432
433 使用上の注意
434 1. CSVファイルの文字エンコードは、エンジンのDB文字コードの設定と一致させて下さい。
435 2. CSVファイルの先頭は項目行として、この行の内容で項目名を決定します。
436 3. CSVファイルの先頭数行の内容を調べて、各項目のデータタイプを決定します。
437 4. 期待通りのデータタイプでテーブルが作成されない場合、項目の型変換を行って下さい。または catalog でインポートして下さい。
438
439 Parameters
440 ----------
441 table_name : str
442 テーブル名を定義
443 file_name : str
444 インポートファイル名(拡張子付き)
445
446 Returns
447 -------
448 ResultCode : int
449 結果コード(正:テーブルID、負:エラーコード)
450 """
451 import ReadCsvEx
452 serv = ReadCsvEx.ReadCsvEx()
453 serv.TableName = table_name
454 serv.SrcName = file_name
455 serv.Mode = None #インポート処理モード(null:通常モード、"correct":エラー訂正モード)
456 serv.execDataService()
457 self.LastMessage = serv.ResultMessage
458 return serv.ResultCode
459
460 def categorize(self, table_name, item_name, category_table_name):
461 """
462 数値データのカテゴライズ
463
464 Parameters
465 ----------
466 table_name : str
467 テーブル名
468 item_name : str
469 項目名
470 category_table_name : str
471 カテゴリテーブル名(カテゴリテーブルの内容はクッキングマニュアルを参照)
472
473 Returns
474 -------
475 ResultCode : int
476 結果コード(正:作成した項目ID、負:エラーコード)
477
478 Examples
479 --------
480 項目1をカテゴリーテーブルcategorize1によってカテゴライズする
481
482 ============================================================================================================================
483 ※事前に作成したカテゴリーテーブルcategorize1をロードしています
484 >>> dsx.get_tablelist()
485 ['practice1', 'categorize1']
486 >>> dsx.get_tuple("practice1",1,20,1)
487 [['SeqNo', 'RecNo', '項目1', '項目2'], ['1', '1', '1', '11'], ['2', '2', '2', '12']]
488 >>> dsx.categorize("practice1","項目1","categorize1")
489 23
490 >>> dsx.get_tuple("practice1",1,20,1)
491 [['SeqNo', 'RecNo', '項目1', 'categorize1_項目1_', '項目2'], ['1', '1', '1', '奇数A', '11'], ['2', '2', '2', '偶数A', '12']]
492 =============================================================================================================================
493
494 See Also
495 --------
496 1.テーブルデータ取得(get_tuple)で、カテゴライズを確認できます
497 2.数値カテゴライズおよびカテゴリ定義テーブルについては、クッキングマニュアルのp.75をご参照ください
498
499 """
500 import CategorizeEx
501 serv = CategorizeEx.CategorizeEx()
502 serv.TableName = table_name
503 serv.FilterName = item_name
504 serv.CatableName = category_table_name
505 serv.execDataService()
506 self.LastMessage = serv.ResultMessage
507 return serv.ResultCode
508
509 def clear_ws(self):
510 """
511 ワークスペースをクリア
512
513 Returns
514 -------
515 ResultCode : int
516 結果コード(0:成功、負:エラーコード)
517
518 Examples
519 --------
520 ワークスペースをクリアする
521
522 ============================================
523 >>>dsx.get_tablelist()
524 [‘practice1’,’practice2’,’practice3’]
525 >>>dsx.clear_ws()
526 0
527 >>>dsx.get_tablelist()
528 >>>
529 ============================================
530
531 See Also
532 --------
533 テーブル一覧取得(get_tablelist)で、ワークスペースをクリアしたことを確認できます
534
535 """
536 import ClearWSEx
537 serv = ClearWSEx.ClearWSEx()
538 serv.execDataService()
539 self.LastMessage = serv.ResultMessage
540 return serv.ResultCode
541
542 def comment(self, comment):
543 """
544 コメントと時刻を表示
545
546 Parameters
547 ----------
548 comment : str
549 任意の文字列、DATETIMEは日付時刻を表示
550
551 Returns
552 -------
553 ResultCode : int
554 結果コード(0:成功、負:エラーコード)
555 """
556 import CommentEx
557 serv = CommentEx.CommentEx()
558 serv.Commentout = comment
559 serv.execDataService()
560 self.LastMessage = serv.ResultMessage
561 return serv.ResultCode
562
563 def edit_comma(self, table_name, item_name, is_edit = 'Yes'):
564
565 """
566 カンマ編集
567
568 Parameters
569 ----------
570 table_name : str
571 テーブル名
572 item_name : str
573 項目名
574 is_edit : str, default 'Yes'
575 3桁区切りするか否か(Yes/No)
576
577 Returns
578 -------
579 ResultCode : int
580 結果コード(0:成功、負:エラーコード)
581
582 Examples
583 --------
584 テーブルpractice1の項目1に3桁区切りでカンマをつける
585
586 ====================================================
587 >>> dsx.get_cell(“practice1”,”項目1”,1,3,1)
588 [‘1000’,’2000’,’3000’]
589 >>> dsx.edit_comma(“practice1”,”項目1”,”Yes”)
590 0
591 >>> dsx.get_cell(“practice1”,”項目1”,1,3,1)
592 [‘1,000’,’2,000’,’3,000’]
593 ====================================================
594
595 See Also
596 --------
597 セルの値取得(get_cell)で、カンマがついていることを確認できます
598
599 """
600 import EditCommaEx
601 serv = EditCommaEx.EditCommaEx()
602 serv.TableName = table_name
603 serv.FilterName = item_name
604 serv.Edit = is_edit
605 serv.execDataService()
606 self.LastMessage = serv.ResultMessage
607 return serv.ResultCode
608
609 def compression(self, table_name):
610 """
611 テーブルの圧縮・最適化
612
613 Parameters
614 ----------
615 table_name : str
616 テーブル名
617
618 Returns
619 -------
620 ResultCode : int
621 結果コード(0:成功、負:エラーコード)
622
623 Examples
624 --------
625 テーブルpractice1を圧縮する
626
627 =================================
628 >>>dsx.get_memory(“practice1”)
629 17528
630 >>>dsx.compression(“practice1”)
631 0
632 >>>dsx.get_memory(“practice1”)
633 17408
634 =================================
635
636 See Also
637 --------
638 使用メモリサイズ取得(get_memory)で、使用メモリサイズを確認できます
639
640 """
641 import CompressionEx
642 serv = CompressionEx.CompressionEx()
643 serv.TableName = table_name
644 serv.execDataService()
645 self.LastMessage = serv.ResultMessage
646 return serv.ResultCode
647
648 def 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'):
649 """
650 JOINテーブルを作成
651
652 Parameters
653 ----------
654 table_name : str
655 JOINテーブル名
656 master_table_name : str
657 マスターテーブル名
658 slave_table_name : str
659 スレーブテーブル名
660 master_setid : int
661 マスターセットID
662 slave_setid : int
663 スレーブセットID
664 master_join_key : list
665 マスター側JOINキーリスト
666 slave_join_key : list
667 スレーブ側JOINキーリスト
668 is_in_out : str
669 Inner:内部JOIN、Outer:外部JOIN
670 is_transfer_item : str, default 'No'
671 Yes:項目転送あり、No:なし
672
673 Returns
674 -------
675 ResultCode : int
676 結果コード(正:JOINテーブルID、負:エラーコード)
677
678 Examples
679 --------
680 テーブルpractice1とpractice2を内部結合(InnerJOIN)する
681
682 ======================================================================================
683 6
684 >>> dsx.get_tablelist()
685 ['practice1', 'practice2','join1']
686 >>> dsx.get_tuple("join1",1,20,1)
687 [['SeqNo', 'RecNo', '項目1','項目1_#1'], ['1', '1', 'あ','ア'], ['2', '2', 'い','イ']]
688 ======================================================================================
689
690 See Also
691 --------
692 1.テーブル一覧取得(get_tablelist)で、JOINテーブルが追加されたことを確認できます
693 2.テーブルデータ取得(get_tuple)で、結合結果を確認できます
694
695 """
696 import JoinEx
697 serv = JoinEx.JoinEx()
698 serv.JtableName = table_name
699 serv.MtableName = master_table_name
700 serv.StableName = slave_table_name
701 serv.MsetID = master_setid
702 serv.SsetID = slave_setid
703 serv.MJoinKey = master_join_key
704 serv.SJoinKey = slave_join_key
705 serv.IsInOrOut = is_in_out
706 serv.IsStarJoin = is_transfer_item
707 serv.execDataService()
708 self.LastMessage = serv.ResultMessage
709 return serv.ResultCode
710
711 def create_table(self, row_count, table_name):
712 """
713 新規テーブルを作成
714
715 Parameters
716 ----------
717 row_count : int
718 行数
719 table_name : str
720 テーブル名
721
722 Returns
723 -------
724 ResultCode : int
725 結果コード(正:テーブルID、負:エラーコード)
726
727 Examples
728 --------
729 5行のテーブル、practice1を作成する
730
731 ====================================
732 >>>dsx.create_table(5,”practice1”)
733 2
734 >>>dsx.get_tablelist()
735 [‘practice1’]
736 >>>dsx.get_rowcount(“practice1”,1)
737 5
738 ====================================
739
740 See Also
741 --------
742 1.テーブル一覧取得(get_tablelist)で、テーブルが追加されたことを確認できます
743 2.テーブルの行数取得(get_rowcount)で、追加したテーブルの行数を確認できます
744
745 """
746 import CreateTableEx
747 serv = CreateTableEx.CreateTableEx()
748 serv.RowCount = row_count
749 serv.TableName = table_name
750 serv.execDataService()
751 self.LastMessage = serv.ResultMessage
752 return serv.ResultCode
753
754 def db_codeset(self, db_codeset):
755 """
756 DB文字コードの設定
757
758 Parameters
759 ----------
760 db_codeset : str
761 DB文字コード(UTF-8 または Shift_JIS)
762
763 Returns
764 -------
765 ResultCode : int
766 結果コード(0:成功、負:エラーコード)
767
768 Examples
769 --------
770 1.文字コードをUTF-8にする
771
772 ===========================
773 >>>dsx.db_codeset(“UTF8”)
774 0
775 ===========================
776
777 2. 文字コードをSJISにする
778
779 ================================
780 >>>dsx.db_codeset(“Shift_JIS”)
781 0
782 ================================
783
784 """
785 import DBCodeSetEx
786 serv = DBCodeSetEx.DBCodeSetEx()
787 serv.DbCode = db_code
788 serv.execDataService()
789 self.LastMessage = serv.ResultMessage
790 return serv.ResultCode
791
792 def db_load(self, file_name):
793 """
794 ワークスペース(D5Dファイル)ロード
795
796 Parameters
797 ----------
798 file_name : str
799 ワークスペースファイル名
800
801 Returns
802 -------
803 ResultCode : int
804 結果コード(0:成功、負:エラーコード)
805
806 Examples
807 --------
808 ================================================================
809 >>>dsx.db_load("C:フォルダ\\フォルダ\\フォルダ\\practice99.D5D")
810 0
811 ================================================================
812
813 See Also
814 --------
815 D5Dファイル、D5Tファイルについてはクッキングマニュアルのp.2をご参照ください
816
817 """
818 import DBLoadEx
819 serv = DBLoadEx.DBLoadEx()
820 serv.WorkSpace = file_name
821 serv.execDataService()
822 self.LastMessage = serv.ResultMessage
823 return serv.ResultCode
824
825 def db_save(self, file_name):
826 """
827 ワークスペース(D5Dファイル)保存
828
829 Parameters
830 ----------
831 file_name : str
832 ワークスペースファイル名
833
834 Returns
835 -------
836 ResultCode : int
837 結果コード(0:成功、負:エラーコード)
838
839 Examples
840 --------
841 ================================================================
842 >>>dsx.db_save("C:フォルダ\\フォルダ\\フォルダ\\practice99.D5D")
843 0
844 ================================================================
845
846 See Also
847 --------
848 D5Dファイル、D5Tファイルについてはクッキングマニュアルのp.2をご参照ください
849
850 """
851 import DBSaveEx
852 serv = DBSaveEx.DBSaveEx()
853 serv.WorkSpace = file_name
854 serv.execDataService()
855 self.LastMessage = serv.ResultMessage
856 return serv.ResultCode
857
858 def delete_allset(self, table_name):
859 """
860 すべてのセット(サブテーブル)の削除
861
862 Parameters
863 ----------
864 table_name : str
865 テーブル名
866
867 Returns
868 -------
869 ResultCode : int
870 結果コード(0:成功、負:エラーコード)
871
872 Examples
873 --------
874 テーブルpractice1のサブテーブルを全て削除する
875
876 ====================================================================================
877 >>>dsx.get_setid_list("practice1")
878 [[1, ''], [2, 'Search Set:1 [項目1]=あ'], [3, "SearchStrExp Set:1 項目1='あ' ..."]]
879 >>>dsx.delete_allset("practice1")
880 0
881 >>>dsx.get_setid_list("practice1")
882 [[1, '']]
883 ====================================================================================
884
885 See Also
886 --------
887 セットID一覧取得(get_setid_list)で、サブテーブルが削除されたことを確認できます
888
889 """
890 import DeleteAllSetEx
891 serv = DeleteAllSetEx.DeleteAllSetEx()
892 serv.TableName = table_name
893 serv.execDataService()
894 self.LastMessage = serv.ResultMessage
895 return serv.ResultCode
896
897 def delete_resultset(self, table_name, setid):
898 """
899 検索リザルトセット(サブテーブル)の削除
900
901 Parameters
902 ----------
903 table_name : str
904 テーブル名
905 setid : int
906 削除セットID
907
908 Returns
909 -------
910 ResultCode : int
911 結果コード(0:成功、負:エラーコード)
912
913 Examples
914 --------
915 テーブルpractice1の検索リザルトセットを削除する
916
917 ====================================================================================
918 >>>dsx.get_setid_list("practice1")
919 [[1, ''], [2, 'Search Set:1 [項目1]=あ'], [3, "SearchStrExp Set:1 項目1='あ' ..."]]
920 >>>dsx.delete_resultset("practice1",3)
921 0
922 >>>dsx.get_setid_list("practice1")
923 [[1, ''], [2, 'Search Set:1 [項目1]=あ']]
924 ====================================================================================
925
926 See Also
927 --------
928 1.セットID一覧取得(get_setid_list)で、セットが削除されたことを確認できます
929 2.セットIDが分からない時は、セットID一覧取得(get_setid_list)で確認できます
930
931 """
932 import DeleteResultSetEx
933 serv = DeleteResultSetEx.DeleteResultSetEx()
934 serv.TableName = table_name
935 serv.SetID = setid
936 serv.execDataService()
937 self.LastMessage = serv.ResultMessage
938 return serv.ResultCode
939
940 def delete_row(self, table_name, start_row, row_count, setid = -1):
941 """
942 行の削除
943
944 Parameters
945 ----------
946 table_name : str
947 テーブル名
948 start_row : int
949 削除開始行
950 row_count : int
951 削除行数(マイナス値は全行が対象)
952 setid : int, default -1
953 セットID(省略した場合はカレントセット)
954
955 Returns
956 -------
957 ResultCode : int
958 結果コード(正:削除行数、負:エラーコード)
959
960 Examples
961 --------
962 テーブルpractice1の2行目を削除する
963
964 ==============================================
965 >>>dsx.get_rowcount(“practice1”,1)
966 10
967 >>>dsx.get_cell(“practice1”,”項目1”,1,3,1)
968 [’あ’,’い’,’う’]
969 >>>dsx.delete_row(“practice1”,2,1,1)
970 1
971 >>>dsx.get_rowcount(“practice1”,1)
972 9
973 >>>dsx.get_cell(“practice1”,”項目1”,1,3,1)
974 [’あ’,’う’,’え’]
975 ==============================================
976
977 See Also
978 --------
979 1.テーブル行数取得(get_rowcount)で、行数の増減を確認できます
980 2.セルの値取得(get_cell)で、行が削除されたことを確認できます
981 3.セットIDが分からない時は、セットID一覧取得(get_setid_list)で確認できます
982
983 """
984 import DeleteRowEx
985 serv = DeleteRowEx.DeleteRowEx()
986 serv.TableName = table_name
987 serv.StartRow = start_row
988 serv.RowCount = row_count
989 serv.SetID = setid
990 serv.execDataService()
991 self.LastMessage = serv.ResultMessage
992 return serv.ResultCode
993
994 def delete_item(self, table_name, item_name):
995 """
996 項目の削除
997
998 Parameters
999 ----------
1000 table_name : str
1001 テーブル名
1002 item_name : str
1003 項目名
1004
1005 Returns
1006 -------
1007 ResultCode : int
1008 結果コード(0:成功、負:エラーコード)
1009
1010 Examples
1011 --------
1012 項目1を削除する
1013
1014 ============================================
1015 >>>dsx.get_itemlist(“practice1”)
1016 [‘項目1’,’項目2’,’項目3’]
1017 >>>dsx.delete_item(“practice1”,”項目1”)
1018 0
1019 >>>dsx.get_itemlist(“practice1”)
1020 [’項目2’,’項目3’]
1021 ============================================
1022
1023 See Also
1024 --------
1025 項目一覧取得(get_itemlist)で、項目が削除されたことを確認できます
1026
1027 """
1028 import DeleteItemEx
1029 serv = DeleteItemEx.DeleteItemEx()
1030 serv.TableName = table_name
1031 serv.FilterName = item_name
1032 serv.execDataService()
1033 self.LastMessage = serv.ResultMessage
1034 return serv.ResultCode
1035
1036 def delete_table(self, table_name):
1037 """
1038 テーブルをワークスペースから削除
1039
1040 Parameters
1041 ----------
1042 table_name : str
1043 テーブル名
1044
1045 Returns
1046 -------
1047 ResultCode : int
1048 結果コード(0:成功、負:エラーコード)
1049
1050 Examples
1051 --------
1052 テーブルpractice1を削除する
1053
1054 ====================================
1055 >>> dsx.get_tablelist()
1056 [‘practice1’,’practice2’]
1057 >>> dsx.delete_table(“practice1”)
1058 0
1059 >>> dsx.get_tablelist()
1060 [’practice2’]
1061 ====================================
1062
1063 See Also
1064 --------
1065 テーブル一覧取得(get_tablelist)で、テーブルが削除されたことを確認できます
1066
1067 """
1068 import DeleteTableEx
1069 serv = DeleteTableEx.DeleteTableEx()
1070 serv.TableName = table_name
1071 serv.execDataService()
1072 self.LastMessage = serv.ResultMessage
1073 return serv.ResultCode
1074
1075 def duplicate_table(self, table_name):
1076 """
1077 テーブルの複製
1078
1079 Parameters
1080 ----------
1081 table_name : str
1082 テーブル名
1083
1084 Returns
1085 -------
1086 ResultCode : int
1087 結果コード(正:複製されたテーブルID、負:エラーコード)
1088
1089 Examples
1090 --------
1091 テーブルpractice1を複製する
1092
1093 ======================================
1094 >>> dsx.get_tablelist()
1095 [‘practice1’]
1096 >>> dsx.duplicate_table(“practice1”)
1097 4
1098 >>> dsx.get_tablelist()
1099 [‘practice1’,’practice1_#1’]
1100 ======================================
1101 See Also
1102 --------
1103 テーブル一覧取得(get_tablelist)で、複製されたテーブルを確認できます
1104
1105 """
1106 import DuplicateTableEx
1107 serv = DuplicateTableEx.DuplicateTableEx()
1108 serv.TableName = table_name
1109 serv.execDataService()
1110 self.LastMessage = serv.ResultMessage
1111 return serv.ResultCode
1112
1113 def duplicate_item(self, table_name, item_name):
1114 """
1115 項目の複製
1116
1117 Parameters
1118 ----------
1119 table_name : str
1120 テーブル名
1121 item_name : str
1122 項目名
1123
1124 Returns
1125 -------
1126 ResultCode : int
1127 結果コード(正:複製された項目ID、負:エラーコード)
1128
1129 Examples
1130 --------
1131 項目1を複製する
1132
1133 ================================================
1134 >>> dsx.get_itemlist(“practice1”)
1135 [‘項目1’,’項目2’]
1136 >>> dsx.duplicate_item(“practice1”,”項目1”)
1137 23
1138 >>> dsx.get_itemlist(“practice1”)
1139 [‘項目1’, ‘項目1_#1’,’項目2’]
1140 ================================================
1141
1142 See Also
1143 --------
1144 項目一覧取得(get_itemlist)で、項目1が複製され項目1_#1が追加されたことを確認できます
1145
1146 """
1147 import DuplicateItemEx
1148 serv = DuplicateItemEx.DuplicateItemEx()
1149 serv.TableName = table_name
1150 serv.FilterName = item_name
1151 serv.execDataService()
1152 self.LastMessage = serv.ResultMessage
1153 return serv.ResultCode
1154
1155 def extract_set(self, table_name, setid, is_view_table_id = 'Yes', is_record_number = 'Yes', item_name_list = '*', new_table_name = None):
1156 """
1157 サブテーブル(セット)を実テーブルに抽出
1158
1159 Parameters
1160 ----------
1161 table_name : str
1162 テーブル名
1163 setid : int
1164 セットID
1165 is_view_table_id : str, default 'Yes'
1166 Yes:テーブルIDを表示する、No:表示しない
1167 is_record_number : str, default 'Yes'
1168 Yes:RecNoを出力する、N0:出力しない
1169 item_name_list : list, default '*'
1170 抽出項目名リスト("*"は全項目が対象)
1171 new_table_name : str, default None
1172 抽出後のテーブル名(省略可)
1173
1174 Returns
1175 -------
1176 ResultCode : int
1177 結果コード(正:生成されたテーブルID、負:エラーコード)
1178
1179 Examples
1180 --------
1181 テーブルpractice1のサブテーブル(値リスト検索結果)を実テーブルに抽出する
1182
1183 ===============================================================
1184 >>> dsx.get_tablelist()
1185 ['practice1']
1186 >>> dsx.get_setid_list("practice1")
1187 [[1, ''], [2, 'Search Set:1 [項目1] = 値リスト']]
1188 >>> dsx.extract_set("practice2",2,"No","Yes",["項目1"],"set1")
1189 5
1190 >>> dsx.get_tablelist()
1191 ['practice1','set1']
1192 ===============================================================
1193
1194 See Also
1195 --------
1196 1.テーブル一覧取得(get_tablelist)で、実テーブルに抽出したことを確認できます
1197 2.セットIDが分からない時は、セットID一覧取得(get_setid_list)で確認できます
1198
1199 """
1200 import ExtractSetEx
1201 serv = ExtractSetEx.ExtractSetEx()
1202 serv.TableName = table_name
1203 serv.SetID = setid
1204 serv.TableIDAns = is_view_table_id
1205 serv.RecNoAns = is_record_number
1206 serv.FilterNameList = item_name_list
1207 serv.NewtableName = new_table_name
1208 serv.execDataService()
1209 self.LastMessage = serv.ResultMessage
1210 return serv.ResultCode
1211
1212 def extract_unique(self, table_name, setid, item_name_list = '*', is_keep_order = 'Yes'):
1213 """
1214 ユニーク行の抽出
1215
1216 Parameters
1217 ----------
1218 table_name : str
1219 テーブル名
1220 setid : int
1221 セットID
1222 item_name_list : list, default '*'
1223 抽出項目名リスト("*"は全項目が対象)
1224 is_keep_order : str, default 'Yes'
1225 Yes:元の順序を保つ、No:保たない
1226
1227 Returns
1228 -------
1229 ResultCode : int
1230 結果コード(正:生成されたセットID、負:エラーコード)
1231
1232 Examples
1233 --------
1234 項目1のユニーク行を抽出する
1235
1236 ========================================================================================================================
1237 >>> dsx.get_tuple("practice1",1,20,1)
1238 [['SeqNo', 'RecNo', '項目1'], ['1', '1', 'あ'], ['2', '2', 'あ'], ['3', '3', 'い'], ['4', '4', 'う'], ['5', '5', 'う']]
1239 >>>dsx.extract_unique(“practice1”,1,[“項目1”],”Yes”)
1240 2
1241 >>> dsx.get_tuple("practice1",1,20,2)
1242 [['SeqNo', 'RecNo', '項目1'], ['1', '1', 'あ'], ['2', '3', 'い'], ['3', '4', 'う']]
1243 ========================================================================================================================
1244
1245 Notes
1246 -----
1247 ユニーク行を抽出した際に生成されたセットIDが2なので、結果確認のテーブルデータ取得では引数(セットID)が2となります
1248 See Also
1249 --------
1250 1.テーブルデータ取得(get_tuple)で、ユニーク行を抽出したことを確認できます
1251 2.セットIDが分からない時は、セットID一覧取得(get_setid_list)で確認できます
1252
1253 """
1254 import ExtractUniqueEx
1255 serv = ExtractUniqueEx.ExtractUniqueEx()
1256 serv.TableName = table_name
1257 serv.SetID = setid
1258 serv.FilterNameList = item_name_list
1259 serv.CnsvOdrAns = is_keep_order
1260 serv.execDataService()
1261 self.LastMessage = serv.ResultMessage
1262 return serv.ResultCode
1263
1264 def fill_cell(self, table_name, item_name, set_string, start_row = 1, row_count = -1, setid = -1):
1265 """
1266 セルに値を入力
1267
1268 Parameters
1269 ----------
1270 table_name : str
1271 テーブル名
1272 item_name : str
1273 項目名
1274 set_string : str
1275 入力文字列
1276 start_row : int, default 1
1277 開始行
1278 row_count : int, default -1
1279 行数(マイナス値は全行が対象)
1280 setid : int, default -1
1281 セットID(省略した場合はカレントセット)
1282
1283 Returns
1284 -------
1285 ResultCode : int
1286 結果コード(正:データ数、負:エラーコード)
1287
1288 Examples
1289 --------
1290 項目1の値を全て”あ”にする
1291
1292 =========================================================
1293 >>> dsx.fill_cell(“practice1”,”項目1”,”あ”,1,-1,1)
1294 >>> dsx.get_cell(“practice1”,”項目1”,1,5,1)
1295 [‘あ’,’あ’,’あ’,’あ’,’あ’]
1296 =========================================================
1297
1298 See Also
1299 --------
1300 1.セルの値取得(get_cell)で、入力結果を確認できます
1301 2.セットIDが分からない時は、セットID一覧取得(get_setid_list)で確認できます
1302 3.同じ値を複数入力したい場合は値を入力(fill_cell)、違う値を複数入力したい場合は値書込み(set_cell)がおすすめです
1303
1304 """
1305 import FillCellEx
1306 serv = FillCellEx.FillCellEx()
1307 serv.TableName = table_name
1308 serv.FilterName = item_name
1309 serv.StartRow = start_row
1310 serv.RowCount = row_count
1311 serv.FillStr = set_string
1312 serv.SetID = setid
1313 serv.execDataService()
1314 self.LastMessage = serv.ResultMessage
1315 return serv.ResultCode
1316
1317 def sort_item(self, table_name, sort_key):
1318 """
1319 項目の並び順をソート
1320
1321 Parameters
1322 ----------
1323 table_name : str
1324 テーブル名
1325 sort_key : str
1326 ソートキー(ID、TYPE、NAME)
1327
1328 Returns
1329 -------
1330 ResultCode : int
1331 結果コード(0:成功、負:エラーコード)
1332
1333 Examples
1334 --------
1335 項目の並びを名前順にする
1336
1337 =========================================
1338 >>> dsx.get_itemlist(“practice1”)
1339 [‘項目2’,’項目3’,’項目1’]
1340 >>> dsx.sort_item(“practice1”,”NAME”)
1341 0
1342 >>> dsx.get_itemlist(“practice1”)
1343 [‘項目1’,’項目2’,’項目3’]
1344 =========================================
1345
1346 See Also
1347 --------
1348 項目一覧取得(get_itemlist)で、ソート結果を確認できます
1349
1350 """
1351 import SortItemEx
1352 serv = SortItemEx.SortItemEx()
1353 serv.TableName = table_name
1354 serv.SortKey = sort_key
1355 serv.execDataService()
1356 self.LastMessage = serv.ResultMessage
1357 return serv.ResultCode
1358
1359 def transfer_item(self, table_name, item_name):
1360 """
1361 項目転送
1362
1363 Parameters
1364 ----------
1365 table_name : str
1366 転送元JOINテーブル名
1367 item_name : str
1368 項目名
1369
1370 Returns
1371 -------
1372 ResultCode : int
1373 結果コード(正:追加作成された項目ID、負:エラーコード)
1374
1375 Examples
1376 --------
1377 テーブルpractice1とpractice2を内部結合(InnerJOIN)した後、項目1を転送する
1378
1379 ===========================================================================================================
1380 >>> dsx.join("join1","practice1","practice2",1,1,["項目1"],["項目1"],"Inner","No")
1381 3
1382 >>> dsx.get_tuple("practice1",1,20,1)
1383 [['SeqNo', 'RecNo', '項目1', '項目2'], ['1', '1', 'あ', 'か'], ['2', '2', 'い', 'き']]
1384 >>> dsx.transfer_item("join1","項目1")
1385 12
1386 >>> dsx.get_tuple("practice3",1,20,1)
1387 [['SeqNo', 'RecNo', '項目1', '項目2','項目1_#1'], ['1', '1', 'あ', 'か','ア'], ['2', '2', 'い', 'き','イ']]
1388 ===========================================================================================================
1389
1390 See Also
1391 --------
1392 テーブルデータ取得(get_tuple)で、転送した項目を確認できます
1393
1394 """
1395 import TransferItemEx
1396 serv = TransferItemEx.TransferItemEx()
1397 serv.TableName = table_name
1398 serv.FilterName = item_name
1399 serv.execDataService()
1400 self.LastMessage = serv.ResultMessage
1401 return serv.ResultCode
1402
1403 def float_format(self, table_name, item_name, digit):
1404 """
1405 浮動小数データの小数点以下桁数を設定
1406
1407 Parameters
1408 ----------
1409 table_name : str
1410 テーブル名
1411 item_name : str
1412 項目名
1413 digit : int
1414 桁数 0~15
1415
1416 Returns
1417 -------
1418 ResultCode : int
1419 結果コード(0:成功、負:エラーコード)
1420
1421 Examples
1422 --------
1423 浮動小数型の項目1の小数点以下を1桁にする
1424
1425 ===============================================
1426 >>> dsx.get_cell(“practice1”,”項目1”,1,3,1)
1427 [‘1.000’,’2.000’,’3.000’]
1428 >>> dsx.float_format(“practice1”,”項目1”,1)
1429 0
1430 >>> dsx.get_cell(“practice1”,”項目1”,1,3,1)
1431 [‘1.0’,’2.0’,’3.0’]
1432 ===============================================
1433
1434 See Also
1435 --------
1436 セルの値取得(get_cell)で、小数点以下の桁数を確認できます
1437
1438 """
1439 import FloatFormatEx
1440 serv = FloatFormatEx.FloatFormatEx()
1441 serv.TableName = table_name
1442 serv.FilterName = item_name
1443 serv.Digit = digit
1444 serv.execDataService()
1445 self.LastMessage = serv.ResultMessage
1446 return serv.ResultCode
1447
1448 def get_cell(self, table_name, item_name, start_row = 1, row_count = 1, setid = -1):
1449 """
1450 セルの値取得
1451
1452 Parameters
1453 ----------
1454 table_name : str
1455 テーブル名
1456 item_name : str
1457 項目名
1458 start_row : int, default 1
1459 開始行
1460 row_count : int, default 1
1461 行数
1462 setid : int, default -1
1463 セットID(省略した場合はカレントセット)
1464
1465 Returns
1466 -------
1467 ResultList : list
1468 セル値リスト(文字列)
1469
1470 Examples
1471 --------
1472 項目1の先頭から3行分のセルの値を取得する
1473
1474 ===============================================
1475 >>> dsx.get_cell(“practice1”,”項目1”,1,3,1)
1476 [‘1000’,’2000’,’3000’]
1477 ===============================================
1478
1479 See Also
1480 --------
1481 セットIDが分からない時は、セットID一覧取得(get_setid_list)で確認できます
1482
1483 """
1484 import GetCellEx
1485 serv = GetCellEx.GetCellEx()
1486 serv.TableName = table_name
1487 serv.FilterName = item_name
1488 serv.StartRow = start_row
1489 serv.RowCount = row_count
1490 serv.SetID = setid
1491 serv.execDataService()
1492 self.LastMessage = serv.ResultMessage
1493 return serv.ResultList
1494
1495 def get_tuple_asjson(self, table_name, start_row = 1, fetch_size = 128, setid = -1):
1496 """
1497 テーブルデータをJSON形式で取得
1498
1499 Parameters
1500 ----------
1501 table_name : str
1502 テーブル名
1503 start_row : int, default 1
1504 取得開始行
1505 fetch_size : int, default 128
1506 取得行数(省略した場合はデフォルト値)
1507 setid : int, default -1
1508 セットID(省略した場合はカレントセット)
1509
1510 Returns
1511 -------
1512 ResultList : list
1513 文字列に変換したJSON配列データ
1514
1515 Examples
1516 --------
1517 テーブルpractice1をJSON形式で取得する
1518
1519 ========================================================================================================================
1520 >>> dsx.get_tuple_asjson("practice1",1,10,1)
1521 [{'SeqNo': '1', 'RecNo': '1', '項目1: '', '項目2': ''}, {'SeqNo': '2', 'RecNo': '2', ' 項目1': '', '項目2': ''}]
1522 ========================================================================================================================
1523
1524 See Also
1525 --------
1526 セットIDが分からない時は、セットID一覧取得(get_setid_list)で確認できます
1527
1528 """
1529 import GetTupleEx
1530 serv = GetTupleEx.GetTupleEx()
1531 serv.TableName = table_name
1532 serv.StartRow = start_row
1533 serv.FetchSize = fetch_size
1534 serv.SetID = setid
1535 serv.Json = 1
1536 serv.execDataService()
1537 self.LastMessage = serv.ResultMessage
1538 return serv.ResultList
1539
1540 def get_tuple(self, table_name, start_row = 1, fetch_size = 128, setid = -1):
1541 """
1542 テーブルデータ取得
1543
1544 Parameters
1545 ----------
1546 table_name : str
1547 テーブル名
1548 start_row : int, default 1
1549 取得開始行
1550 fetch_size : int, default 128
1551 取得行数(省略した場合はデフォルト値)
1552 setid : int, default -1
1553 セットID(省略した場合はカレントセット)
1554
1555 Returns
1556 -------
1557 ResultList : list
1558 文字列に変換した行配列データ(先頭行はカラム名配列)
1559
1560 Examples
1561 --------
1562 テーブルpractice1のテーブルデータを取得する
1563
1564 ======================================================================================
1565 >>> dsx.get_tuple("practice1",1,30,1)
1566 [['SeqNo', 'RecNo', '項目1', '項目2'], ['1', '1', 'あ', 'か'], ['2', '2', 'い', 'き']]
1567 ======================================================================================
1568 Notes
1569 -----
1570 1つ目のリスト[SeqNo, RecNo,項目1,項目2]は列名(項目名)、2つ目以降のリスト内の値は列(項目)の順になっています
1571
1572 See Also
1573 --------
1574 セットIDが分からない時は、セットID一覧取得(get_setid_list)で確認できます
1575
1576 """
1577 import GetTupleEx
1578 serv = GetTupleEx.GetTupleEx()
1579 serv.TableName = table_name
1580 serv.StartRow = start_row
1581 serv.FetchSize = fetch_size
1582 serv.SetID = setid
1583 serv.Json = 0
1584 serv.execDataService()
1585 self.LastMessage = serv.ResultMessage
1586 return serv.ResultList
1587
1588 def __get_fatalerror(self):
1589 """
1590 実行不能エラー発生時の制御フラグ取得
1591
1592 Returns
1593 -------
1594 GetFatalError : bool
1595 実行不能エラーが発生フラグ
1596 """
1597 import DataServiceCtl2
1598 serv = DataServiceCtl2.DataServiceCtl2()
1599 return serv.GetFatalError()
1600
1601 def __get_fatalerror_logname(self):
1602 """
1603 実行ログファイル名取得
1604
1605 Returns
1606 -------
1607 GetFatalErrorLogName : str
1608 実行ログファイル名
1609 """
1610 import DataServiceCtl2
1611 serv = DataServiceCtl2.DataServiceCtl2()
1612 return serv.GetFatalErrorLogName()
1613
1614 def get_itemlist(self, table_name):
1615 """
1616 項目一覧取得
1617
1618 Parameters
1619 ----------
1620 table_name : str
1621 テーブル名
1622
1623 Returns
1624 -------
1625 ResultList : list
1626 項目名リスト
1627
1628 Examples
1629 --------
1630 テーブルpractice1の項目一覧を取得する
1631
1632 ===================================
1633 >>> dsx.get_itemlist(“practice1”)
1634 [‘項目1’]
1635 ===================================
1636
1637 """
1638 import GetItemListEx
1639 serv = GetItemListEx.GetItemListEx()
1640 serv.TableName = table_name
1641 serv.execDataService()
1642 self.LastMessage = serv.ResultMessage
1643 return serv.ResultList
1644
1646 """
1647 ライセンス有効期限取得
1648
1649 Returns
1650 -------
1651 ResultStr : str
1652 日付文字列
1653 """
1654 import GetLicenseExpirationEx
1655 serv = GetLicenseExpirationEx.GetLicenseExpirationEx()
1656 serv.execDataService()
1657 self.LastMessage = serv.ResultMessage
1658 return serv.ResultStr
1659
1660 def get_limit_cpu(self):
1661 """
1662 使用可能CPU数(ライセンス情報)取得
1663
1664 Returns
1665 -------
1666 ResultLong : int
1667 CPU数
1668 """
1669 import GetLimitCPUEx
1670 serv = GetLimitCPUEx.GetLimitCPUEx()
1671 serv.execDataService()
1672 self.LastMessage = serv.ResultMessage
1673 return serv.ResultLong
1674
1675 def get_memory(self, table_name):
1676 """
1677 テーブルの使用メモリサイズ取得
1678
1679 Parameters
1680 ----------
1681 table_name : str
1682 テーブル名
1683
1684 Returns
1685 -------
1686 ResultLong : long
1687 メモリサイズ
1688
1689 Examples
1690 --------
1691 テーブルpractice1の使用メモリサイズを取得する
1692
1693 =================================
1694 >>> dsx.get_memory(“practice1”)
1695 16444
1696 =================================
1697
1698 """
1699 import GetMemoryEx
1700 serv = GetMemoryEx.GetMemoryEx()
1701 serv.TableName = table_name
1702 serv.execDataService()
1703 self.LastMessage = serv.ResultMessage
1704 return serv.ResultLong
1705
1707 """
1708 使用可能メモリサイズ(ライセンス情報)取得
1709
1710 Returns
1711 -------
1712 ResultLong : long
1713 メモリサイズ
1714 """
1715 import GetLimitMemoryEx
1716 serv = GetLimitMemoryEx.GetLimitMemoryEx()
1717 serv.execDataService()
1718 self.LastMessage = serv.ResultMessage
1719 return serv.ResultLong
1720
1721 def get_limit_row(self):
1722 """
1723 最大行数(ライセンス情報)取得
1724
1725 Returns
1726 -------
1727 ResultLong : long
1728 行数
1729 """
1730 import GetLimitRowEx
1731 serv = GetLimitRowEx.GetLimitRowEx()
1732 serv.execDataService()
1733 self.LastMessage = serv.ResultMessage
1734 return serv.ResultLong
1735
1736 def get_setid_list(self, table_name):
1737 """
1738 セットID一覧取得
1739
1740 Parameters
1741 ----------
1742 table_name : str
1743 テーブル名
1744
1745 Returns
1746 -------
1747 ResultIntList : list
1748 セットリスト [ID, アトリビュート]
1749 """
1750 import GetSetIDListEx
1751 serv = GetSetIDListEx.GetSetIDListEx()
1752 serv.TableName = table_name
1753 serv.execDataService()
1754 self.LastMessage = serv.ResultMessage
1755 return serv.ResultIntList
1756
1757 def get_rowcount(self, table_name, setid = -1):
1758 """
1759 テーブルの行数取得
1760
1761 Parameters
1762 ----------
1763 table_name : str
1764 テーブル名
1765 setid : int, default -1
1766 セットID(省略した場合はカレントセット)
1767
1768 Returns
1769 -------
1770 ResultCode : int
1771 結果コード(正:セットの行数、負:エラーコード)
1772
1773 Examples
1774 --------
1775 テーブルpractice1の行数を取得する
1776
1777 =====================================
1778 >>> dsx.get_rowcount(“practice1”,1)
1779 5
1780 =====================================
1781
1782 See Also
1783 --------
1784 セットIDが分からない時は、セットID一覧取得(get_setid_list)で確認できます
1785
1786 """
1787 import GetRowCountEx
1788 serv = GetRowCountEx.GetRowCountEx()
1789 serv.TableName = table_name
1790 serv.SetID = setid
1791 serv.execDataService()
1792 self.LastMessage = serv.ResultMessage
1793 return serv.ResultCode
1794
1795 def get_tablelist(self):
1796 """
1797 テーブル一覧取得
1798
1799 Returns
1800 -------
1801 ResultList : list
1802 テーブル名リスト
1803
1804 Examples
1805 --------
1806 チューボーにあるテーブル一覧を取得する
1807
1808 ========================
1809 >>> dsx.get_tablelist()
1810 [‘practice1’]
1811 ========================
1812
1813 """
1814 import GetTableListEx
1815 serv = GetTableListEx.GetTableListEx()
1816 serv.execDataService()
1817 self.LastMessage = serv.ResultMessage
1818 return serv.ResultList
1819
1820 def get_tablename(self, tableid):
1821 """
1822 テーブル名取得
1823
1824 Parameters
1825 ----------
1826 tableid : int
1827 テーブルID
1828
1829 Returns
1830 -------
1831 ResultStr : str
1832 テーブル名
1833
1834 Examples
1835 --------
1836 テーブルID1~3のテーブル名を取得する
1837
1838 ========================================
1839 >>>dsx.get_tablelist()
1840 ['practice1', 'practice2', 'practice3']
1841 >>> dsx.get_tablename(1)
1842 'practice1'
1843 >>> dsx.get_tablename(2)
1844 'practice2'
1845 >>> dsx.get_tablename(3)
1846 'practice3'
1847 ========================================
1848
1849 Notes
1850 -----
1851 テーブルIDは自動的にロードした順でつけられます
1852
1853 See Also
1854 --------
1855 テーブル一覧取得(get_tablelist)で全てのテーブルを確認できます
1856
1857 """
1858 import GetTableNameEx
1859 serv = GetTableNameEx.GetTableNameEx()
1860 serv.TableID = tableid
1861 serv.execDataService()
1862 self.LastMessage = serv.ResultMessage
1863 return serv.ResultStr
1864
1865 def get_valuelist(self, table_name, setid, item_name):
1866 """
1867 値リスト取得
1868
1869 Parameters
1870 ----------
1871 table_name : str
1872 テーブル名
1873 setid : int
1874 セットID
1875 item_name : str
1876 項目名
1877
1878 Returns
1879 -------
1880 ResultList : list
1881 値リスト(最大5,000行、5,000行を超えた場合は後を切り捨て)
1882
1883 Examples
1884 --------
1885 項目1の値リストを取得する
1886
1887 ============================================
1888 >>> dsx.get_valuelist("practice1",1,"項目1")
1889 ['', 'あ', 'い', 'う', 'え', 'お']
1890 ============================================
1891
1892 See Also
1893 --------
1894 セットIDが分からない時は、セットID一覧取得(get_setid_list)で確認できます
1895
1896 """
1897 import GetValueListEx
1898 serv = GetValueListEx.GetValueListEx()
1899 serv.TableName = table_name
1900 serv.SetID = setid
1901 serv.FilterName = item_name
1902 serv.execDataService()
1903 self.LastMessage = serv.ResultMessage
1904 return serv.ResultList
1905
1906 def get_version(self):
1907 """
1908 バージョン番号取得
1909
1910 Returns
1911 -------
1912 ResultStr : str
1913 バージョン番号
1914
1915 Examples
1916 --------
1917 SDCV3のバージョンを取得する
1918
1919 =====================
1920 >>> dsx.get_version()
1921 ‘2,22,0,1’
1922 =====================
1923
1924 """
1925 import GetVersionEx
1926 serv = GetVersionEx.GetVersionEx()
1927 serv.execDataService()
1928 self.LastMessage = serv.ResultMessage
1929 return serv.ResultStr
1930
1931 def join_inout(self, table_name, is_slave, is_in_out):
1932 """
1933 JOINテーブルのIN/OUT集合サブテーブル化
1934
1935 Parameters
1936 ----------
1937 table_name : str
1938 JOINテーブル名
1939 isSlave : str
1940 Yes:スレーブテーブルより抽出、No:マスターテーブルより抽出
1941 isJoinOut : str
1942 IN:IN集合、OUT:OUT集合
1943
1944 Returns
1945 -------
1946 ResultIntList : list
1947 結果配列(セットが追加されたテーブルIDと生成されたセットID)
1948
1949 Examples
1950 --------
1951 JOINテーブルjoin1のIN集合をサブテーブル化する
1952 ============================================================================================================
1953 ※practice1とpractice2をJOINしたものがjoin1となっています
1954 >>> dsx.get_tablelist()
1955 ['practice1', 'practice2', 'join1']
1956 >>> dsx.get_setid_list("practice1")
1957 [[1, '']
1958 >>> dsx.join_inout("join1","No","IN")
1959 [2, 2]
1960 >>> dsx.get_tablename("2")
1961 'practice1'
1962 >>> dsx.get_setid_list("practice1")
1963 [[1, ''], [2, 'JoinIN isSlave No']]
1964 >>> dsx.get_tuple("practice1",1,20,2)
1965 [['SeqNo', 'RecNo', '項目1', '項目2', '項目1_#1'], ['1', '1', 'あ', 'か', 'ア'], ['2', '2', 'い', 'き','イ']]
1966 =============================================================================================================
1967
1968 See Also
1969 --------
1970 セットID一覧取得(get_setid_list)で、JOINテーブルがサブテーブル化したことを確認できます
1971
1972 """
1973 import JoinInOutEx
1974 serv = JoinInOutEx.JoinInOutEx()
1975 serv.TableName = table_name
1976 serv.IsSlave = is_slave
1977 serv.IsJoinOut = is_in_out
1978 serv.execDataService()
1979 self.LastMessage = serv.ResultMessage
1980 return serv.ResultIntList
1981
1982 def insert_row(self, table_name, row_count, start_row = 1):
1983 """
1984 行の挿入
1985
1986 Parameters
1987 ----------
1988 table_name : str
1989 テーブル名
1990 row_count : int
1991 挿入行数
1992 start_row : int, default 1
1993 挿入位置行
1994
1995 Returns
1996 -------
1997 ResultCode : int
1998 結果コード(正:挿入行数、負:エラーコード)
1999
2000 Examples
2001 --------
2002 テーブルpractice1の3行目に1行挿入する
2003
2004 ===========================================
2005 >>> dsx.get_rowcount(“practice1”,1)
2006 5
2007 >>> dsx.get_cell("practice1","項目1",1,5,1)
2008 ['あ', 'い', 'う', 'え', 'お']
2009 >>> dsx.insert_row("practice1",1,3)
2010 1
2011 >>> dsx.get_rowcount(“practice1”,1)
2012 6
2013 >>> dsx.get_cell("practice1","項目1",1,5,1)
2014 ['あ', 'い', '','う', 'え']
2015 ===========================================
2016
2017 See Also
2018 --------
2019 1.テーブルの行数取得(get_rowcount)で、行数の増減を確認できます
2020 2.セルの値取得(get_cell)で、行の挿入位置を確認できます
2021
2022 """
2023 import InsertRowEx
2024 serv = InsertRowEx.InsertRowEx()
2025 serv.TableName = table_name
2026 serv.StartRow = start_row
2027 serv.RowCount = row_count
2028 serv.execDataService()
2029 self.LastMessage = serv.ResultMessage
2030 return serv.ResultCode
2031
2032 def join_realize(self, join_table_name, real_table_name, setid, master_rec_number = 'Yes', slave_rec_number = 'Yes', item_name_list = '*'):
2033 """
2034 JOINテーブルをREALテーブルに変換
2035
2036 Parameters
2037 ----------
2038 join_table_name : str
2039 JOINテーブル名
2040 real_table_name : str
2041 REALテーブル名
2042 setid : int
2043 セットID
2044 master_rec_number : str, default 'Yes'
2045 Yes:マスターテーブルのRecNoを出力する、No:出力しない
2046 slave_rec_number : str, default 'Yes'
2047 Yes:スレーブテーブルのRecNoを出力する、No:出力しない
2048 item_name_list : list, default '*'
2049 項目名リスト("*"は全項目が対象)
2050
2051 Returns
2052 -------
2053 ResultCode : int
2054 結果コード(正:REALテーブルID、負:エラーコード)
2055
2056 Examples
2057 --------
2058 JOINテーブルjoin1をREALテーブルに変換する
2059
2060 =======================================================
2061 >>> dsx.join_realize("join1","real1",1,"No","No",["*"])
2062 7
2063 >>> dsx.get_tablelist()
2064 ['practice1', 'practice2', 'join1', 'real1']
2065 =======================================================
2066
2067 See Also
2068 --------
2069 1.テーブル一覧取得(get_tablelist)で、JOINテーブルを変換したREALテーブルが追加されたことを確認できます
2070 2.セットIDが分からない時は、セットID一覧取得(get_setid_list)で確認できます
2071
2072 """
2073 import JoinRealizeEx
2074 serv = JoinRealizeEx.JoinRealizeEx()
2075 serv.JtableName = join_table_name
2076 serv.RtableName = real_table_name
2077 serv.SetID = setid
2078 serv.MRecNo = master_rec_number
2079 serv.SRecNo = slave_rec_number
2080 serv.FilterNameList = item_name_list
2081 serv.execDataService()
2082 self.LastMessage = serv.ResultMessage
2083 return serv.ResultCode
2084
2085 def load(self, file_name):
2086 """
2087 テーブル(D5Tファイル)ロード
2088
2089 Parameters
2090 ----------
2091 file_name : str
2092 テーブルファイル名
2093
2094 Returns
2095 -------
2096 ResultCode : int
2097 結果コード(正:テーブルID、負:エラーコード)
2098
2099 Examples
2100 --------
2101 D5Tファイル”practice1”をロードする
2102
2103 ===============================================
2104 >>> dsx.load(フォルダ\\フォルダ\\practice1.D5T)
2105 3
2106 >>> dsx.get_tablelist()
2107 [‘practice1’]
2108 ===============================================
2109
2110 See Also
2111 --------
2112 テーブル一覧取得(get_tablelist)で、チューボーにテーブルをロードしたことを確認できます
2113
2114 """
2115 import LoadEx
2116 serv = LoadEx.LoadEx()
2117 serv.TableName = file_name
2118 serv.execDataService()
2119 self.LastMessage = serv.ResultMessage
2120 return serv.ResultCode
2121
2122 def __logrotate(self):
2123 """
2124 ログ/レシピファイルのローテーション(非公開内部機能)
2125
2126 Returns
2127 -------
2128 ResultCode : int
2129 結果コード(0:成功、負:エラーコード)
2130 """
2131 import LogRotateEx
2132 serv = LogRotateEx.LogRotateEx()
2133 serv.execDataService()
2134 self.LastMessage = serv.ResultMessage
2135 return serv.ResultCode
2136
2137 def move_item(self, table_name, item_name_list, item_name):
2138 """
2139 項目の移動
2140
2141 Parameters
2142 ----------
2143 table_name : str
2144 テーブル名
2145 item_name_list : list
2146 移動対象項目名リスト
2147 item_name : str
2148 移動先項目名
2149
2150 Returns
2151 -------
2152 ResultCode : int
2153 結果コード(0:成功、負:エラーコード)
2154
2155 Examples
2156 --------
2157 項目1を項目3の位置へ移動する
2158
2159 ================================================
2160 >>> dsx.get_itemlist("practice1")
2161 ['項目1', '項目2', '項目3']
2162 >>> dsx.move_item("practice1",["項目1"],"項目3")
2163 0
2164 >>> dsx.get_itemlist("practice1")
2165 ['項目2', '項目3', '項目1']
2166 ================================================
2167
2168 See Also
2169 --------
2170 項目一覧取得(get_itemlist)で、項目が移動したことを確認できます
2171
2172 """
2173 import MoveItemEx
2174 serv = MoveItemEx.MoveItemEx()
2175 serv.TableName = table_name
2176 serv.FilterNameList = item_name_list
2177 serv.FilterName = item_name
2178 serv.execDataService()
2179 self.LastMessage = serv.ResultMessage
2180 return serv.ResultCode
2181
2182 def __numeric_rescale(self, table_name, item_name, num_scale, num_mode):
2183 """
2184 NUMERIC型データのスケール・丸めモードを設定(サポートなし)
2185
2186 Parameters
2187 ----------
2188 table_name : str
2189 テーブル名
2190 item_name : str
2191 項目名
2192 num_scale : int
2193 スケール(0~38)
2194 num_mode : str
2195 丸めモード(ROUND_UP、ROUND_DOWN、ROUND_CEILING、ROUND_FLOOR、ROUND_HALF_UP、ROUND_HALF_DOWN、ROUND_HALF_EVEN)
2196
2197 Returns
2198 -------
2199 ResultCode : int
2200 結果コード(0:成功、負:エラーコード)
2201 """
2202 import NumericRescaleEx
2203 serv = NumericRescaleEx.NumericRescaleEx()
2204 serv.TableName = table_name
2205 serv.FilterName = item_name
2206 serv.NumScale = num_scale
2207 serv.NumMode = num_mode
2208 serv.execDataService()
2209 self.LastMessage = serv.ResultMessage
2210 return serv.ResultCode
2211
2212 def overwrite(self, table_name, item_name, start_row, row_count, fill_string_list, is_ex_space = 'No', setid = -1):
2213 """
2214 セルの上書き
2215
2216 Parameters
2217 ----------
2218 table_name : str
2219 テーブル名
2220 item_name : str
2221 項目名
2222 start_row : int
2223 開始行
2224 row_count : int
2225 行数(入力文字列数以下)
2226 fill_string_list : list
2227 入力文字列リスト
2228 is_ex_space : str, default 'No'
2229 Yes:末尾空白を削除する、No:削除しない
2230 setid : int, default -1
2231 セットID(省略した場合はカレントセット)
2232
2233 Returns
2234 -------
2235 ResultCode : int
2236 結果コード(正:データ数、負:エラーコード)
2237 """
2238 import OverwriteEx
2239 serv = OverwriteEx.OverwriteEx()
2240 serv.TableName = table_name
2241 serv.FilterName = item_name
2242 serv.StartRow = start_row
2243 serv.RowCount = row_count
2244 serv.FillStrList = fill_string_list
2245 serv.SetID = setid
2246 serv.ExSpace = is_ex_space
2247 serv.execDataService()
2248 self.LastMessage = serv.ResultMessage
2249 return serv.ResultCode
2250
2251 def overwrite_batch(self, table_name, start_row, row_count, fill_string_list, setid = -1):
2252 """
2253 セルの上書き
2254
2255 Parameters
2256 ----------
2257 table_name : str
2258 テーブル名
2259 start_row : int
2260 開始行
2261 row_count : int
2262 行数(入力文字列数以下)
2263 fill_string_list : カラム = [[] for i in range(len(ヘッダーカラム))]
2264 入力文字列リスト(カラム単位での2次元配列)
2265 setid : int, default -1
2266 セットID(省略した場合はカレントセット)
2267
2268 Returns
2269 -------
2270 ResultCode : int
2271 結果コード(正:データ数、負:エラーコード)
2272 """
2273 import OverwriteOnBatchEx
2274 serv = OverwriteOnBatchEx.OverwriteOnBatchEx()
2275 serv.TableName = table_name
2276 serv.StartRow = start_row
2277 serv.RowCount = row_count
2278 serv.FillStrList = fill_string_list
2279 serv.SetID = setid
2280 serv.execDataService()
2281 self.LastMessage = serv.ResultMessage
2282 return serv.ResultCode
2283
2284 def rename_table(self, table_name, new_table_name):
2285 """
2286 テーブル名を変更
2287
2288 Parameters
2289 ----------
2290 table_name : str
2291 変更前テーブル名
2292 new_table_name : str
2293 変更後テーブル名
2294
2295 Returns
2296 -------
2297 ResultCode : int
2298 結果コード(0:成功、負:エラーコード)
2299
2300 Examples
2301 --------
2302 テーブル名をpractice1からpractice2に変更する
2303
2304 =============================================
2305 >>> dsx.get_tablelist()
2306 [‘practice1’]
2307 dsx.rename_table(“practice1”,”practice2”)
2308 0
2309 >>> dsx.get_tablelist()
2310 [‘practice2’]
2311 =============================================
2312 See Also
2313 --------
2314 テーブル一覧取得(get_tablelist)でテーブル名が変更したことを確認できます
2315
2316 """
2317 import RenameTableEx
2318 serv = RenameTableEx.RenameTableEx()
2319 serv.TableName = table_name
2320 serv.NewtableName = new_table_name
2321 serv.execDataService()
2322 self.LastMessage = serv.ResultMessage
2323 return serv.ResultCode
2324
2325 def rename_item(self, table_name, item_name, new_item_name):
2326 """
2327 項目名を変更
2328
2329 Parameters
2330 ----------
2331 table_name : str
2332 テーブル名
2333 item_name : str
2334 変更前項目名
2335 new_item_name : str
2336 変更後項目名
2337
2338 Returns
2339 -------
2340 ResultCode : int
2341 結果コード(0:成功、負:エラーコード)
2342
2343 Examples
2344 --------
2345 項目名を項目1からitem1に変更する
2346
2347 ======================================================
2348 >>> dsx.get_itemlist(“practice1”)
2349 [‘項目1’]
2350 >>> dsx.rename_item(“practice1”,”項目1”,”item1”)
2351 0
2352 >>> dsx.get_itemlist(“practice1”)
2353 [‘item1’]
2354 ======================================================
2355
2356 See Also
2357 --------
2358 項目一覧取得(get_itemlist)で項目名が変更したことを確認できます
2359
2360 """
2361 import RenameItemEx
2362 serv = RenameItemEx.RenameItemEx()
2363 serv.TableName = table_name
2364 serv.FilterName = item_name
2365 serv.NewfilterName = new_item_name
2366 serv.execDataService()
2367 self.LastMessage = serv.ResultMessage
2368 return serv.ResultCode
2369
2370 def save(self, file_name):
2371 """
2372 テーブル(D5Tファイル)保存
2373
2374 Parameters
2375 ----------
2376 file_name : str
2377 テーブルファイル名
2378
2379 Returns
2380 -------
2381 ResultCode : int
2382 結果コード(0:成功、負:エラーコード)
2383
2384 Examples
2385 --------
2386 テーブルpractice1を保存する
2387
2388 =============================================================
2389 >>> dsx.save(“フォルダ\\フォルダ\\フォルダ\\practice1.D5T”)
2390 0
2391 =============================================================
2392
2393 See Also
2394 --------
2395 D5Dファイル、D5Tファイルについてはクッキングマニュアルのp.2をご参照ください
2396
2397 """
2398 import SaveEx
2399 serv = SaveEx.SaveEx()
2400 serv.TableName = file_name
2401 serv.execDataService()
2402 self.LastMessage = serv.ResultMessage
2403 return serv.ResultCode
2404
2405 def search(self, table_name, item_name, setid, search_string):
2406 """
2407 検索
2408
2409 Parameters
2410 ----------
2411 table_name : str
2412 テーブル名
2413 item_name : str
2414 検索対象項目名
2415 setid : int
2416 セットID
2417 search_string : str
2418 検索条件式(=、<>、<=、<、>=、>、string*、*string*、*string、IS NULL、IS NOT NULL)
2419
2420 Returns
2421 -------
2422 ResultCode : int
2423 結果コード(正:生成されたセットID、負:エラーコード)
2424
2425 Examples
2426 --------
2427 テーブルpractice1の項目1で、”あ”以外の値を検索する
2428
2429 =========================================================
2430 >>> dsx.search(“practice1”,”項目1”,1,”[項目1]<>あ”)
2431 2
2432 >>> dsx.get_cell(“practice1”,”項目1”,1,5,2)
2433 [‘い’,’う’,’え’,’お’,’か’]
2434 =========================================================
2435
2436 Notes
2437 -----
2438 検索した際に生成されたセットIDが2なので、セルの値取得での引数(セットID)は2となります
2439
2440 See Also
2441 --------
2442 1.セルの値取得(get_cell)で検索結果を確認できます
2443 2.セットIDが分からない時は、セットID一覧取得(get_setid_list)で確認できます
2444
2445 """
2446 import SearchEx
2447 serv = SearchEx.SearchEx()
2448 serv.TableName = table_name
2449 serv.FilterName = item_name
2450 serv.SetID = setid
2451 serv.SearchStr = search_string
2452 serv.execDataService()
2453 self.LastMessage = serv.ResultMessage
2454 return serv.ResultCode
2455
2456 def search_values(self, table_name, item_name, setid, search_string_list):
2457 """
2458 値リスト検索
2459
2460 Parameters
2461 ----------
2462 table_name : str
2463 テーブル名
2464 item_name : str
2465 検索対象項目名
2466 setid : int
2467 セットID
2468 search_string_list : list
2469 検索値文字列リスト
2470
2471 Returns
2472 -------
2473 ResultCode : int
2474 結果コード(正:生成されたセットID、負:エラーコード)
2475
2476 Examples
2477 --------
2478 項目1の値が”あ”,“い”のデータのみ取得する
2479
2480 =======================================================================================================================
2481 >>> dsx.get_tuple("practice1",1,20,1)
2482 [['SeqNo', 'RecNo', '項目1', '項目2', '項目3'], ['1', '1', 'あ', 'か'], ['2', '2', 'い', 'き'], ['3', '3', 'う', 'く']]
2483 >>> dsx.search_values("practice2","項目1",1,[" あ","い"])
2484 3
2485 >>> dsx.get_tuple("practice1",1,20,3)
2486 [['SeqNo', 'RecNo', '項目1', '項目2'], ['1', '1', 'あ', 'か'], ['2', '2', 'い', 'き']]
2487 =======================================================================================================================
2488
2489 Notes
2490 -----
2491 値リスト検索で生成されたセットIDが3なので、検索結果確認のテーブルデータ取得では引数(セットID)が3となります
2492
2493 See Also
2494 --------
2495 1.テーブルデータ取得で、検索結果を確認できます
2496 2.セットIDが分からない時は、セットID一覧取得(get_setid_list)で確認できます
2497
2498 """
2499 import SearchValuesEx
2500 serv = SearchValuesEx.SearchValuesEx()
2501 serv.TableName = table_name
2502 serv.FilterName = item_name
2503 serv.SetID = setid
2504 serv.SearchStr = search_string_list
2505 serv.execDataService()
2506 self.LastMessage = serv.ResultMessage
2507 return serv.ResultCode
2508
2509 def search_values_bycsv(self, table_name, item_name, setid, file_name):
2510 """
2511 値リスト検索(CSVファイル指定)
2512
2513 Parameters
2514 ----------
2515 table_name : str
2516 テーブル名
2517 item_name : str
2518 検索対象項目名
2519 setid : int
2520 セットID
2521 file_name : str
2522 CSVファイル名
2523
2524 Returns
2525 -------
2526 ResultCode : int
2527 結果コード(正:生成されたセットID、負:エラーコード)
2528 """
2529 import SearchValuesByCsvEx
2530 serv = SearchValuesByCsvEx.SearchValuesByCsvEx()
2531 serv.TableName = table_name
2532 serv.FilterName = item_name
2533 serv.SetID = setid
2534 serv.FileName = file_name
2535 serv.execDataService()
2536 self.LastMessage = serv.ResultMessage
2537 return serv.ResultCode
2538
2539 def search_values_bytable(self, table_name, item_name, setid, list_table_name, list_item_name, list_setid):
2540 """
2541 値リスト検索(他テーブル指定)
2542
2543 Parameters
2544 ----------
2545 table_name : str
2546 テーブル名
2547 item_name : str
2548 検索対象項目名
2549 setid : int
2550 セットID
2551 list_table_name : str
2552 値リスト取得テーブル名
2553 list_item_name : str
2554 値リスト取得項目名
2555 list_setid : int
2556 値リスト取得セットID
2557
2558 Returns
2559 -------
2560 ResultCode : int
2561 結果コード(正:生成されたセットID、負:エラーコード)
2562 """
2563 import SearchValuesByTableEx
2564 serv = SearchValuesByTableEx.SearchValuesByTableEx()
2565 serv.TableName = table_name
2566 serv.FilterName = item_name
2567 serv.SetID = setid
2568 serv.VtableName = list_table_name
2569 serv.VfilterName = list_item_name
2570 serv.VsetID = list_setid
2571 serv.execDataService()
2572 self.LastMessage = serv.ResultMessage
2573 return serv.ResultCode
2574
2575 def search_string(self, table_name, setid, expression):
2576 """
2577 文字列検索式による検索
2578
2579 Parameters
2580 ----------
2581 table_name : str
2582 テーブル名
2583 setid : int
2584 セットID
2585 expression : str
2586 文字列検索式(検索式の種類と構文はクッキングマニュアルを参照)
2587
2588 Returns
2589 -------
2590 ResultCode : int
2591 結果コード(正:生成されたセットID、負:エラーコード)
2592
2593 Examples
2594 --------
2595 性別が男性かつ年齢が20歳を超えている人の苗字を検索する
2596
2597 =============================================================================
2598 >>> dsx.search_string(“practice1”,1,”性別 = ’男性’ AND 年齢 <= ’20’”)
2599 2
2600 >>> dsx.get_cell(“practice1”,”苗字”,1,5,2)
2601 [‘相澤’,’青木’,’秋元’,’朝倉’,’在原’]
2602 =============================================================================
2603
2604 Notes
2605 -----
2606 1.検索した際に生成されたセットIDが2なので、セルの値取得での引数(セットID)は2となります
2607 2.文字列検索では、検索の機能に加えAND、ORの指定が可能です
2608
2609 See Also
2610 --------
2611 1.セルの値取得(get_cell)で検索結果を確認できます
2612 2.セットIDが分からない時は、セットID一覧取得(get_setid_list)で確認できます
2613
2614 """
2615 import SearchStringEx
2616 serv = SearchStringEx.SearchStringEx()
2617 serv.TableName = table_name
2618 serv.SetID = setid
2619 serv.Expression = expression
2620 serv.execDataService()
2621 self.LastMessage = serv.ResultMessage
2622 return serv.ResultCode
2623
2624 def setand(self, table_name, src_setid, dst_setid):
2625 """
2626 2つのサブテーブル(セット)のAND抽出
2627
2628 Parameters
2629 ----------
2630 table_name : str
2631 テーブル名
2632 src_setid : int
2633 対象セットID
2634 dst_setid : int
2635 ターゲットセットID
2636
2637 Returns
2638 -------
2639 ResultCode : int
2640 結果コード(正:生成されたセットID、負:エラーコード)
2641
2642 Examples
2643 --------
2644 ルートセットかつ検索リスト(項目1=”あ”)のサブテーブルを抽出する
2645
2646 ==============================================================================================================
2647 >>> dsx.get_tuple("practice1",1,20,1)
2648 [['SeqNo', 'RecNo', '項目1', '項目2'], ['1', '1', 'あ', 'か'], ['2', '2', 'い', 'き'], ['3', '3', 'う', 'く']]
2649 >>> dsx.search_values("practice1","項目1",1,["あ"])
2650 2
2651 >>> dsx.get_setid_list("practice1")
2652 [[1, ''], [2, 'Search Set:1 [項目1] = 値リスト']]
2653 >>> dsx.setand("practice1",1,2)
2654 3
2655 >>> dsx.get_tuple("practice1",1,50,3)
2656 [['SeqNo', 'RecNo', '項目1', '項目2'], ['1', '1', 'あ', 'か']]
2657 ==============================================================================================================
2658
2659 See Also
2660 --------
2661 1.テーブルデータ取得(get_tuple)で、抽出結果を確認できます
2662 2.セットIDが分からない時は、セットID一覧取得(get_setid_list)で確認できます。
2663
2664 """
2665 import SetAndEx
2666 serv = SetAndEx.SetAndEx()
2667 serv.TableName = table_name
2668 serv.SrcsetID = src_setid
2669 serv.DestsetID = dst_setid
2670 serv.execDataService()
2671 self.LastMessage = serv.ResultMessage
2672 return serv.ResultCode
2673
2674 def set_cell(self, table_name, item_name, start_row, row_count, fill_string_list, setid = -1):
2675 """
2676 セルに値書込み
2677
2678 Parameters
2679 ----------
2680 table_name : str
2681 テーブル名
2682 item_name : str
2683 項目名
2684 start_row : int
2685 開始行
2686 row_count : int
2687 行数
2688 fill_string_list : list
2689 書込み値文字列リスト
2690 setid : int
2691 セットID(省略した場合はカレントセット)
2692
2693 Returns
2694 -------
2695 ResultCode : int
2696 結果コード(正:データ数、負:エラーコード)
2697
2698 Examples
2699 ----------
2700 項目1をあ行にする
2701
2702 ====================================================================================
2703 >>> dsx.set_cell(“practice1”,”項目1”,1,5,[”あ”,”い”,”う”,”え”,”お”],1)
2704 >>> dsx.get_cell(“practice1”,”項目1”,1,5,1)
2705 [‘あ’,’い’,’う’,’え’,’お’]
2706 ====================================================================================
2707
2708 See Also
2709 --------
2710 1.セルの値取得(get_cell)で、書込み結果を確認できます
2711 2.セットIDが分からない時は、セットID一覧取得(get_setid_list)で確認できます
2712 3.同じ値を複数入力したい場合は値を入力(fill_cell)、違う値を複数入力したい場合は値書込み(set_cell)がおすすめです
2713
2714 """
2715 import SetCellEx
2716 serv = SetCellEx.SetCellEx()
2717 serv.TableName = table_name
2718 serv.FilterName = item_name
2719 serv.StartRow = start_row
2720 serv.RowCount = row_count
2721 serv.FillStrList = fill_string_list
2722 serv.SetID = setid
2723 serv.execDataService()
2724 self.LastMessage = serv.ResultMessage
2725 return serv.ResultCode
2726
2727 def set_comment(self, table_name, setid, comment_string):
2728 """
2729 サブテーブル(セット)のコメント編集
2730
2731 Parameters
2732 ----------
2733 table_name : str
2734 テーブル名
2735 setid : int
2736 セットID
2737 comment_string : str
2738 コメント文字列
2739
2740 Returns
2741 -------
2742 ResultCode : int
2743 結果コード(0:成功、負:エラーコード)
2744
2745 Examples
2746 --------
2747 テーブルpractice1のセット(Search Set)のコメントを編集する
2748
2749 =================================================
2750 >>> dsx.get_setid_list("practice1")
2751 [[1, ''], [2, 'Search Set:1 [項目1] = 値リスト']]
2752 >>> dsx.set_comment("practice1",2,"検索リスト")
2753 0
2754 >>> dsx.get_setid_list("practice1")
2755 [[1, ''], [2, '検索リスト']]
2756 =================================================
2757
2758 See Also
2759 --------
2760 1.セットID一覧取得(get_setid_list)でセットのコメントが変更したことを確認できます
2761 2.セットIDが分からない時は、セットID一覧取得(get_setid_list)で確認できます
2762
2763 """
2764 import SetCommentEx
2765 serv = SetCommentEx.SetCommentEx()
2766 serv.TableName = table_name
2767 serv.SetID = setid
2768 serv.CommentStr = comment_string
2769 serv.execDataService()
2770 self.LastMessage = serv.ResultMessage
2771 return serv.ResultCode
2772
2773 def move_currentset(self, table_name, setid):
2774 """
2775 カレントセット(サブテーブル)の移動
2776
2777 Parameters
2778 ----------
2779 table_name : str
2780 テーブル名
2781 setid : int
2782 移動セットID
2783
2784 Returns
2785 -------
2786 ResultCode : int
2787 結果コード(0:成功、負:エラーコード)
2788
2789 Examples
2790 --------
2791 セットIDが2のサブテーブルに移動する(カレントセットを移動する)
2792
2793 =================================================
2794 >>> dsx.get_setid_list("practice1")
2795 [[1, ''], [2, 'Search Set:1 [項目1] = 値リスト']]
2796 >>> dsx.move_currentset("practice1",2)
2797 0
2798 =================================================
2799
2800 See Also
2801 --------
2802 セットIDが分からない時は、セットID一覧取得(get_setid_list)で確認できます
2803
2804 """
2805 import MoveCurrentSetEx
2806 serv = MoveCurrentSetEx.MoveCurrentSetEx()
2807 serv.TableName = table_name
2808 serv.SetID = setid
2809 serv.execDataService()
2810 self.LastMessage = serv.ResultMessage
2811 return serv.ResultCode
2812
2813 def delete_set(self, table_name, setid):
2814 """
2815 セット(サブテーブル)の削除
2816
2817 Parameters
2818 ----------
2819 table_name : str
2820 テーブル名
2821 setid : int
2822 削除セットID
2823
2824 Returns
2825 -------
2826 ResultCode : int
2827 結果コード(0:成功、負:エラーコード)
2828
2829 Examples
2830 --------
2831 テーブルpractice1のセットIDが3のサブテーブルを削除する
2832
2833 ====================================================================================
2834 >>>dsx.get_setid_list("practice1")
2835 [[1, ''], [2, 'Search Set:1 [項目1]=あ'], [3, "SearchStrExp Set:1 項目1='あ' ..."]]
2836 >>>dsx.delete_set(“practice1”,3)
2837 2
2838 >>>dsx.get_setid_list("practice1")
2839 [[1, ''], [2, 'Search Set:1 [項目1]=あ']]
2840 ====================================================================================
2841
2842 See Also
2843 --------
2844 1.セットID一覧取得(get_setid_list)で、セットIDが削除されたことを確認できます
2845 2.セットIDが分からない時は、セットID一覧取得(get_setid_list)で確認できます
2846
2847 """
2848 import DeleteSetEx
2849 serv = DeleteSetEx.DeleteSetEx()
2850 serv.TableName = table_name
2851 serv.SetID = setid
2852 serv.execDataService()
2853 self.LastMessage = serv.ResultMessage
2854 return serv.ResultCode
2855
2856 def __set_fatalerror(self, is_fatal_error):
2857 """
2858 実行不能エラー発生時の制御フラグ設定
2859
2860 Parameters
2861 ----------
2862 is_fatal_error :
2863 制御フラグ
2864 """
2865 import DataServiceCtl2
2866 serv = DataServiceCtl2.DataServiceCtl2()
2867 serv.IsFatalError = is_fatal_error
2868 serv.execDataService()
2869
2870 def __set_macrostop(self, is_macro_stop):
2871 """
2872 実行不能エラー発生時のマクロ実行抑止フラグ設定
2873
2874 Parameters
2875 ----------
2876 isMacroStop :
2877 制御フラグ
2878 """
2879 import DataServiceCtl
2880 serv = DataServiceCtl.DataServiceCtl()
2881 serv.IsMacroStop = is_macro_stop
2882 serv.execDataService()
2883
2884 def setnot(self, table_name, setid):
2885 """
2886 サブテーブル(セット)のNOT抽出
2887
2888 Parameters
2889 ----------
2890 table_name : str
2891 テーブル名
2892 setid : int
2893 セットID
2894
2895 Returns
2896 -------
2897 ResultCode : int
2898 結果コード(正:生成されたセットID、負:エラーコード)
2899
2900 Examples
2901 --------
2902 テーブルpractice1のサブテーブル、検索リスト(項目1=”あ”)でないものをルートセットから抽出する
2903
2904 ==============================================================================================================
2905 >>> dsx.get_tuple("practice1",1,20,1)
2906 [['SeqNo', 'RecNo', '項目1', '項目2'], ['1', '1', 'あ', 'か'], ['2', '2', 'い', 'き'], ['3', '3', 'う', 'く']]
2907 >>> dsx.search_values("practice1","項目1",1,["あ"])
2908 2
2909 >>> dsx.get_setid_list("practice1")
2910 [[1, ''], [2, 'Search Set:1 [項目1] = 値リスト']]
2911 >>> dsx.setnot("practice1",2)
2912 4
2913 >>> dsx.get_tuple("practice3",1,20,4)
2914 [['SeqNo', 'RecNo', '項目1', '項目2'], ['1', '2', 'い', 'き'], ['2', '3', 'う', 'く']]
2915 ===============================================================================================================
2916
2917 See Also
2918 --------
2919 1.テーブルデータ取得で、抽出結果確認できます
2920 2.セットIDが分からない時は、セットID一覧取得(get_setid_list)で確認できます
2921 3.NOT抽出とSUB抽出の違いについては、クッキングマニュアルのp.63をご参照ください
2922
2923 """
2924 import SetNotEx
2925 serv = SetNotEx.SetNotEx()
2926 serv.TableName = table_name
2927 serv.SetID = setid
2928 serv.execDataService()
2929 self.LastMessage = serv.ResultMessage
2930 return serv.ResultCode
2931
2932 def setor(self, table_name, src_setid, dst_setid):
2933 """
2934 2つのサブテーブル(セット)のOR抽出
2935
2936 Parameters
2937 ----------
2938 table_name : str
2939 テーブル名
2940 src_setid : int
2941 対象セットID
2942 dst_setid : int
2943 ターゲットセットID
2944
2945 Returns
2946 -------
2947 ResultCode : int
2948 結果コード(正:生成されたセットID、負:エラーコード)
2949
2950 Examples
2951 --------
2952 テーブルpractice1の2つのサブテーブル、検索リスト(項目1=”あ”)または検索リスト(項目2=”き”)を抽出する
2953
2954 ==============================================================================================================
2955 >>>dsx.get_tuple("practice1",1,20,1)
2956 [['SeqNo', 'RecNo', '項目1', '項目2'], ['1', '1', 'あ', 'か'], ['2', '2', 'い', 'き'], ['3', '3', 'う', 'く']]
2957 >>>dsx.search_values("practice1","項目1",1,["あ"])
2958 2
2959 >>>dsx.search_values("practice1","項目2",1,["き"])
2960 3
2961 >>>dsx.get_setid_list("practice1")
2962 [[1, ''], [2, 'Search Set:1 [項目1] = 値リスト']] , [3, 'Search Set:1 [項目2] = 値リスト']]
2963 >>> dsx.setor("practice1",2,3)
2964 4
2965 >>> dsx.get_tuple("practice1",1,20,4)
2966 [['SeqNo', 'RecNo', '項目1', '項目2'], ['1', '1', 'あ', 'か'], ['2', '2', 'い', 'き']]
2967 ==============================================================================================================
2968
2969 See Also
2970 --------
2971 1.テーブルデータ取得(get_tuple)で、抽出結果を確認できます
2972 2.セットIDが分からない時は、セットID一覧取得(get_setid_list)で確認できます
2973
2974 """
2975 import SetOrEx
2976 serv = SetOrEx.SetOrEx()
2977 serv.TableName = table_name
2978 serv.SrcsetID = src_setid
2979 serv.DestsetID = dst_setid
2980 serv.execDataService()
2981 self.LastMessage = serv.ResultMessage
2982 return serv.ResultCode
2983
2984 def set_license(self, license_key):
2985 """
2986 ライセンスキーの設定
2987
2988 Parameters
2989 ----------
2990 license_key : str
2991 ライセンスキー
2992
2993 Returns
2994 -------
2995 ResultCode : int
2996 結果コード(0:成功、負:エラーコード)
2997
2998 Examples
2999 --------
3000 ライセンスキーの設定をする
3001
3002 =====================================
3003 >>> dsx.set_license("ライセンスキー")
3004 0
3005 =====================================
3006
3007 """
3008 import SetLicenseEx
3009 serv = SetLicenseEx.SetLicenseEx()
3010 serv.LicenseKey = license_key
3011 serv.execDataService()
3012 self.LastMessage = serv.ResultMessage
3013 return serv.ResultCode
3014
3015 def setsub(self, table_name, src_setid, dst_setid):
3016 """
3017 2つのサブテーブル(セット)のSUB抽出
3018
3019 Parameters
3020 ----------
3021 table_name : str
3022 テーブル名
3023 src_setid : int
3024 対象セットID
3025 dst_setid : int
3026 ターゲットセットID
3027
3028 Returns
3029 -------
3030 ResultCode : int
3031 結果コード(正:生成されたセットID、負:エラーコード)
3032
3033 Examples
3034 --------
3035 テーブルpractice1の2つのサブテーブル、検索リスト(項目1=”あ”)を除いたテーブルから、 検索リスト(項目1=”い”)を除いたものを抽出する
3036
3037 ==============================================================================================================
3038 >>>dsx.get_tuple("practice1",1,20,1)
3039 [['SeqNo', 'RecNo', '項目1', '項目2'], ['1', '1', 'あ', 'か'], ['2', '2', 'い', 'き'], ['3', '3', 'う', 'く']]
3040 >>>dsx.search_values("practice1","項目1",1,["あ"])
3041 2
3042 >>> dsx.setnot("practice1",2)
3043 3
3044 >>> dsx.get_tuple("practice3",1,20, 3)
3045 [['SeqNo', 'RecNo', '項目1', '項目2'], ['1', '2', 'い', 'き'], ['2', '3', 'う', 'く']]
3046 >>>dsx.search_values("practice1","項目1",1,["い"])
3047 4
3048 >>> dsx.setsub("practice1",3,4)
3049 7
3050 >>> dsx.get_tuple("practice1",1,20,7)
3051 [['SeqNo', 'RecNo', '項目1', '項目2'], ['1', '1', 'う', 'く']]
3052 ===============================================================================================================
3053
3054 See Also
3055 --------
3056 1.テーブルデータ取得(get_tuple)で、抽出結果を確認できます
3057 2.セットIDが分からない時は、セットID一覧取得(get_setid_list)で確認できます
3058 3.NOT抽出とSUB抽出の違いについては、クッキングマニュアルのp.63をご参照ください
3059
3060 """
3061 import SetSubEx
3062 serv = SetSubEx.SetSubEx()
3063 serv.TableName = table_name
3064 serv.SrcsetID = src_setid
3065 serv.DestsetID = dst_setid
3066 serv.execDataService()
3067 self.LastMessage = serv.ResultMessage
3068 return serv.ResultCode
3069
3070 def sort(self, table_name, item_name, setid, sort_type = 'ASC'):
3071 """
3072 データのソート
3073
3074 Parameters
3075 ----------
3076 table_name : str
3077 テーブル名
3078 item_name : str
3079 項目名
3080 setid : int
3081 セットID
3082 sort_type : str, default 'ASC'
3083 並び順(ASC:昇順、DSC:降順)
3084
3085 Returns
3086 -------
3087 ResultCode : int
3088 結果コード(正:生成されたセットID、負:エラーコード)
3089
3090 Examples
3091 --------
3092 項目1の値を昇順にする
3093
3094 ===============================================
3095 >>> dsx.get_cell(“practice1”,”項目1”,1,5,1)
3096 [‘2’,’3’,’4’,’5’,’1’]
3097 >>> dsx.sort(“practice1”,”項目1”,1,”ASC”)
3098 2
3099 >>> dsx.get_cell(“practice1”,”項目1”,1,5,2)
3100 [‘1’,’2’,’3’,’4’,’5’]
3101 ===============================================
3102
3103 Notes
3104 -----
3105 ソートした際に生成されたセットIDが2なので、ソート結果確認のセルの値取得では引数(セットID)が2となります
3106
3107 See Also
3108 --------
3109 1.セルの値取得(get_cell)で、ソート結果を確認できます
3110 2.セットIDが分からない時は、セットID一覧取得(get_setid_list)で確認できます
3111
3112 """
3113 import SortEx
3114 serv = SortEx.SortEx()
3115 serv.TableName = table_name
3116 serv.FilterName = item_name
3117 serv.SetID = setid
3118 serv.SortType = sort_type
3119 serv.execDataService()
3120 self.LastMessage = serv.ResultMessage
3121 return serv.ResultCode
3122
3123 def 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'):
3124 """
3125 データのエクスポート
3126
3127 Parameters
3128 ----------
3129 table_name : str
3130 テーブル名
3131 file_name : str
3132 エクスポート先のファイル名
3133 setid : int
3134 セットID
3135 delimiter : str, default 'CSV'
3136 区切り文字(CSV/TAB)
3137 write_top : int, default 1
3138 開始行(先頭行は1)
3139 write_bottom : int, default -1
3140 終了行(マイナス値は最終行)
3141 write_left : int, default 1
3142 開始列(先頭列は1、RecNoは指定不可)
3143 write_right : int, default -1
3144 終了列(マイナス値は最終列)
3145 is_header : str, default 'Yes'
3146 Yes:項目ヘッダー出力あり、No:項目ヘッダー出力なし
3147
3148 Returns
3149 -------
3150 ResultCode : int
3151 結果コード(正:出力行数、負:エラーコード)
3152
3153 Examples
3154 --------
3155 テーブルpractice1の全ての値をカンマ区切りのCSVファイルにエクスポートする
3156
3157 =================================================================================================
3158 >>> dsx.write_csv(“practice1”,”フォルダ\\フォルダ\\practice.csv”,1,”CSV”,1,-1,1,-1,”Yes”)
3159 10
3160 =================================================================================================
3161
3162 See Also
3163 --------
3164 セットIDが分からない時は、セットID一覧取得(get_setid_list)で確認できます
3165
3166 """
3167 import WriteCsvEx
3168 serv = WriteCsvEx.WriteCsvEx()
3169 serv.TableName = table_name
3170 serv.Delimiter = delimiter
3171 serv.FileName = file_name
3172 serv.WriteTop = write_top
3173 serv.WriteBottom = write_bottom
3174 serv.WriteLeft = write_left
3175 serv.WriteRight = write_right
3176 serv.Header = is_header
3177 serv.SetID = setid
3178 serv.TargetOut = None # ログ・レシピ出力抑止(None:通常モード、"SELF":出力抑止)
3179 serv.execDataService()
3180 self.LastMessage = serv.ResultMessage
3181 return serv.ResultCode
3182
3183 def write_csv_selectitem(self, table_name, file_name, setid, delimiter = 'CSV', write_top = 1, write_bottom = -1, item_name_list = '*', is_header = 'Yes'):
3184 """
3185 項目名指定でデータのエクスポート
3186
3187 Parameters
3188 ----------
3189 table_name : str
3190 テーブル名
3191 file_name : str
3192 エクスポート先のファイル名
3193 setid : int
3194 セットID
3195 delimiter : str
3196 区切り文字(CSV/TAB)
3197 write_top : int, default 1
3198 開始行(先頭行は1)
3199 write_bottom : int, default -1
3200 終了行(マイナス値は最終行)
3201 item_name_list : list, default '*'
3202 抽出項目名リスト("*"は全項目が対象)
3203 is_header : str, default 'Yes'
3204 Yes:項目ヘッダー出力あり、No:項目ヘッダー出力なし
3205
3206 Returns
3207 -------
3208 ResultCode : int
3209 結果コード(正:出力行数、負:エラーコード)
3210
3211 Examples
3212 --------
3213 テーブルpractice1の項目1のみをカンマ区切りのCSVファイルにエクスポートする
3214
3215 ==========================================================================================================
3216 >>>dsx.write_csv_selectitem("practice1”,”フォルダ\\フォルダ\\practice.csv",1,"CSV",1,-1,["項目1"],"Yes")
3217 10
3218 ==========================================================================================================
3219
3220 See Also
3221 --------
3222 セットIDが分からない時は、セットID一覧取得(get_setid_list)で確認できます
3223
3224 """
3225 import WriteCsvSelectItemEx
3226 serv = WriteCsvSelectItemEx.WriteCsvSelectItemEx()
3227 serv.TableName = table_name
3228 serv.Delimiter = delimiter
3229 serv.FileName = file_name
3230 serv.WriteTop = write_top
3231 serv.WriteBottom = write_bottom
3232 serv.FilterNameList = item_name_list
3233 serv.Header = is_header
3234 serv.SetID = setid
3235 serv.TargetOut = None # ログ・レシピ出力抑止(None:通常モード、"SELF":出力抑止)
3236 serv.execDataService()
3237 self.LastMessage = serv.ResultMessage
3238 return serv.ResultCode
3239
3240 def convert_type(self, table_name, item_name, data_type):
3241 """
3242 項目の型変換複製
3243
3244 Parameters
3245 ----------
3246 table_name : str
3247 テーブル名
3248 item_name : str
3249 項目名
3250 data_type : str
3251 変換するデータ型(String:文字列、Integer:整数、Double:浮動小数、Time:時刻、Date:日付、DateTime:日付時刻)
3252
3253 Returns
3254 -------
3255 ResultCode : int
3256 結果コード(正:生成された項目ID、負:エラーコード)
3257
3258 Examples
3259 --------
3260 項目1のデータ型を整数から浮動小数に変換する
3261
3262 ========================================================
3263 >>>dsx.get_itemlist(“practice1”)
3264 [‘項目1’]
3265 >>>dsx.get_cell(“practice1”,”項目1”,1,3,1)
3266 [‘1’,’2’,’3’]
3267 >>>dsx.convert_type(“practice1”,”項目1”,”Double”)
3268 24
3269 >>>dsx.get_itemlist(“practice1”)
3270 [‘項目1’,’項目1_#1’]
3271 >>>dsx.get_cell(“practice1”,”項目1”,1,3,1)
3272 [‘1.0’,’2.0’,’3.0’]
3273 ========================================================
3274
3275 See Also
3276 --------
3277 1.項目一覧取得(get_itemlist)で、項目が追加されたことを確認できます
3278 2.セルの値取得(get_cell)で、値が型変換されたことを確認できます
3279
3280 """
3281 import ConvertTypeEx
3282 serv = ConvertTypeEx.ConvertTypeEx()
3283 serv.TableName = table_name
3284 serv.FilterName = item_name
3285 serv.FilterType = data_type
3286 serv.execDataService()
3287 self.LastMessage = serv.ResultMessage
3288 return serv.ResultCode
3289
3290 def __convert_type_numeric(self, table_name, item_name, num_scale, num_mode):
3291 """
3292 項目のNUMERIC型変換複製(サポートなし)
3293
3294 Parameters
3295 ----------
3296 table_name : str
3297 テーブル名
3298 item_name : str
3299 項目名
3300 num_scale : int
3301 スケール(0~38)
3302 num_mode : str
3303 丸めモード(ROUND_UP、ROUND_DOWN、ROUND_CEILING、ROUND_FLOOR、ROUND_HALF_UP、ROUND_HALF_DOWN、ROUND_HALF_EVEN)
3304
3305 Returns
3306 -------
3307 ResultCode : int
3308 結果コード(正:生成された項目ID、負:エラーコード)
3309 """
3310 import ConvertTypeNumericEx
3311 serv = ConvertTypeNumericEx.ConvertTypeNumericEx()
3312 serv.TableName = table_name
3313 serv.FilterName = item_name
3314 serv.NumScale = num_scale
3315 serv.NumMode = num_mode
3316 serv.execDataService()
3317 self.LastMessage = serv.ResultMessage
3318 return serv.ResultCode
3319
3320 def 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'):
3321 """
3322 ユニオン(テーブルの縦結合)
3323
3324 Parameters
3325 ----------
3326 table_name : str
3327 縦結合テーブル名
3328 master_table_name : str
3329 マスターテーブル名
3330 slave_table_name : str
3331 スレーブテーブル名
3332 master_setid : int
3333 マスターテーブルのセットID
3334 slave_setid : int
3335 スレーブテーブルのセットID
3336 master_union_key : str
3337 マスターテーブルの結合キーリスト
3338 slave_union_key : str
3339 スレーブテーブルの結合キーリスト
3340 is_master_tableid : str
3341 Yes:マスターテーブルのIDを使用する、No:使用しない
3342 is_slave_rec_number : str
3343 Yes:スレーブテーブルのRecNoを出力する、No:出力しない
3344 is_delete_table : str
3345 Yes:元テーブルを削除する、No:削除しない
3346
3347 Returns
3348 -------
3349 ResultCode : int
3350 結果コード(正:生成されたテーブルID、負:エラーコード)
3351
3352 Examples
3353 --------
3354 テーブルpractice1とpractice2の項目1を結合する
3355
3356 ==================================================================================================
3357 >>> dsx.get_tablelist()
3358 ['practice1', 'practice2']
3359 >>> dsx.union("union1","practice1","practice2",1,1,["項目1"],["項目1"],"No","No","No")
3360 4
3361 >>> dsx.get_tablelist()
3362 ['practice1, 'practice2','union1']
3363 >>> dsx.get_tuple("union1",1,50,1)
3364 [['SeqNo', 'RecNo', '項目1'], ['1', '1', 'あ'], ['2', '2', 'い']['3', '3', 'ア'], ['4', '4', 'イ']]
3365 ===================================================================================================
3366
3367 See Also
3368 --------
3369 1.テーブル一覧取得(get_tablelist)で、UNIONテーブルが追加されたことを確認できます
3370 2.テーブルデータ取得(get_tuple)で、結合結果を確認できます
3371 3.セットIDが分からない時は、セットID一覧取得(get_setid_list)で確認できます
3372
3373 """
3374 import UnionEx
3375 serv = UnionEx.UnionEx()
3376 serv.UtableName = table_name
3377 serv.MtableName = master_table_name
3378 serv.StableName = slave_table_name
3379 serv.MsetID = master_setid
3380 serv.SsetID = slave_setid
3381 serv.MUnionKey = master_union_key
3382 serv.SUnionKey = slave_union_key
3383 serv.MtableID = is_master_tableid
3384 serv.RecNo = is_slave_rec_number
3385 serv.DelTable = is_delete_table
3386 serv.execDataService()
3387 self.LastMessage = serv.ResultMessage
3388 return serv.ResultCode
3389
3390 def visible_item(self, table_name, item_name, is_visibility = 'Yes'):
3391 """
3392 項目の表示/非表示
3393
3394 Parameters
3395 ----------
3396 table_name : str
3397 テーブル名
3398 item_name : str
3399 項目名
3400 is_visibility : str, default 'Yes'
3401 表示/非表示(Yes/No)
3402
3403 Returns
3404 -------
3405 ResultCode : int
3406 結果コード(0:成功、負:エラーコード)
3407 """
3408 import VisibleItemEx
3409 serv = VisibleItemEx.VisibleItemEx()
3410 serv.TableName = table_name
3411 serv.FilterName = item_name
3412 serv.Visibility = is_visibility
3413 serv.execDataService()
3414 self.LastMessage = serv.ResultMessage
3415 return serv.ResultCode
3416
3417 def xsum(self, table_name, setid, dimension_item_list, measure_item_list):
3418 """
3419 データの集計
3420
3421 Parameters
3422 ----------
3423 table_name : str
3424 テーブル名
3425 setid : int
3426 セットID
3427 dimension_item_list : list
3428 次元の項目名リスト(最大32項目)
3429 measure_item_list : list
3430 測度の項目リスト {項目名,件数,最大値,最小値,合計値,平均値}(最大32項目)
3431 件数 (Yes:集計する、No:集計しない)
3432 最大値(Yes:集計する、No:集計しない)
3433 最小値(Yes:集計する、No:集計しない)
3434 合計値(Yes:集計する、No:集計しない)
3435 平均値(Yes:集計する、No:集計しない)
3436
3437 Returns
3438 -------
3439 ResultCode : int
3440 結果コード(正:生成された集計テーブルID、負:エラーコード)
3441
3442 Examples
3443 --------
3444 項目1の件数、最大値、最小値、合計値、平均値を集計する
3445
3446 ====================================================================================================================================================
3447 >>> dsx.xsum("practice1",1,["項目1"],[["項目1","Yes","Yes","Yes","Yes","Yes"]])
3448 5
3449 >>> dsx.get_tablelist()
3450 ['practice1', 'XTBL_practice1']
3451 >>> dsx.get_tuple("XTBL_practice1",1,20,1)
3452 [['SeqNo', 'RecNo', '項目1', 'N<項目1>', 'MAX<項目1>', 'MIN<項目1>', 'SUM<項目1>', 'AVG<項 目1>'], ['1', '1', '1', '1', '1', '1', '1.000', '1.000']]
3453 ====================================================================================================================================================
3454
3455 Notes
3456 -----
3457 引数の、測度の項目リストの角カッコ[ ]は二重である点に注意してください
3458
3459 See Also
3460 --------
3461 1.テーブル一覧取得(get_tablelist)で、集計テーブルが追加されたことを確認できます
3462 2.テーブルデータ取得(get_tuple)で、集計結果を確認できます
3463 3.セットIDが分からない時は、セットID一覧取得(get_setid_list)で確認できます
3464
3465 """
3466 import XSumEx
3467 serv = XSumEx.XSumEx()
3468 serv.TableName = table_name
3469 serv.SetID = setid
3470 serv.DItemList = dimension_item_list
3471 outlist = []
3472 for inlist in measure_item_list:
3473 outlist.append(inlist)
3474 serv.NItemList = outlist
3475 serv.execDataService()
3476 self.LastMessage = serv.ResultMessage
3477 return serv.ResultCode
3478
3479 def load_arrow(self, table, columns = None):
3480 """
3481 Apache Arrow(インメモリ)形式のテーブルを読み込む
3482
3483 ※ pyarrow(Python Lib.)のインストールが必要です。
3484
3485 Parameters
3486 ----------
3487 table : pyarrow.Table
3488 Apache Arrow Tableオブジェクト
3489 columns : list, default None
3490 抽出カラム名リスト(省略時は全カラムが対象)
3491
3492 Returns
3493 -------
3494 ResultCode : str
3495 テーブル名、None:エラー
3496 """
3497 import LoadArrow
3498 try:
3499 serv = LoadArrow.LoadArrow()
3500 serv.Table = table
3501 serv.Columns = columns
3502 serv.execDataService()
3503 self.LastMessage = serv.ResultMessage
3504 return serv.ResultStr
3505 except Exception as e:
3506 raise Exception("pyarrowException " + str(e))
3507
3508 def save_arrow(self, table_name, setid = -1, columns = None):
3509 """
3510 テーブルをApache Arrow(インメモリ)形式で書き出す
3511
3512 ※ pyarrow(Python Lib.)のインストールが必要です。
3513
3514 Parameters
3515 ----------
3516 table_name : str
3517 テーブル名
3518 setid : int, default -1
3519 セットID(省略した場合はカレントセット)
3520 columns : list, default None
3521 抽出項目名リスト(省略時は全項目が対象)
3522
3523 Returns
3524 -------
3525 ResultCode : pyarrow.Table
3526 arrow.Tableオブジェクト、None:エラー
3527 """
3528 import SaveArrow
3529 try:
3530 serv = SaveArrow.SaveArrow()
3531 serv.TableName = table_name
3532 serv.SetID = setid
3533 serv.Columns = columns
3534 serv.execDataService()
3535 self.LastMessage = serv.ResultMessage
3536 return serv.ArrowTable
3537 except Exception as e:
3538 raise Exception("pyarrowException " + str(e))
3539
3540 def read_parquet(self, table_name, file_name, columns = None):
3541 """
3542 Parquetファイルのインポート
3543
3544 ※ pyarrow(Python Lib.)のインストールが必要です。
3545
3546 Parameters
3547 ----------
3548 table_name : str
3549 テーブル名を定義
3550 file_name : str
3551 インポートファイル名(拡張子付き)
3552 columns : list, default None
3553 抽出カラム名リスト(省略時は全カラムが対象)
3554
3555 Returns
3556 -------
3557 ResultCode : int
3558 結果コード(正:テーブルID、負:エラーコード)
3559 """
3560 import ReadParquet
3561 try:
3562 serv = ReadParquet.ReadParquet()
3563 serv.TableName = table_name
3564 serv.FileName = file_name
3565 serv.Columns = columns
3566 serv.execDataService()
3567 self.LastMessage = serv.ResultMessage
3568 return serv.ResultCode
3569 except Exception as e:
3570 raise Exception("pyarrowException " + str(e))
3571
3572 def write_parquet(self, table_name, file_name, setid = -1, columns = None):
3573 """
3574 テーブルをParquet形式でエクスポート
3575
3576 ※ pyarrow(Python Lib.)のインストールが必要です。
3577
3578 Parameters
3579 ----------
3580 table_name : str
3581 テーブル名
3582 file_name : str
3583 エクスポート先のファイル名
3584 setid : int, default -1
3585 セットID(省略した場合はカレントセット)
3586 columns : list, default None
3587 抽出項目名リスト(省略時は全項目が対象)
3588
3589 Returns
3590 -------
3591 ResultCode : int
3592 結果コード(正:出力行数、負:エラーコード)
3593 """
3594 import WriteParquet
3595 try:
3596 serv = WriteParquet.WriteParquet()
3597 serv.TableName = table_name
3598 serv.FileName = file_name
3599 serv.SetID = setid
3600 serv.Columns = columns
3601 serv.execDataService()
3602 self.LastMessage = serv.ResultMessage
3603 return serv.ResultCode
3604 except Exception as e:
3605 raise Exception("pyarrowException " + str(e))
3606
3607 def start_sdc3(self):
3608 """
3609 Jupyterから「SDC V3」を起動(限定公開機能)
3610 JupyterとSDC V3でデータ処理エンジンを共用(お互いが処理したテーブルを参照・更新できる)
3611
3612
3613 デスクトップタイプのみ動作可能(Jupyter notebook/labのセル中で使用すること)
3614 PYTHONPATHでserverへのパス指定が必須です。
3615
3616 Jupyter lab 起動例
3617 cd ESPERiCフォルダーのパス
3618 export PYTHONPATH=$(cd "./server/dataService" && pwd):$PYTHONPATH
3619 export PYTHONPATH=$(cd "./server" && pwd):$PYTHONPATH
3620 export DYLD_LIBRARY_PATH=$(cd "./server/di5engine/mac" && pwd) ←←← macOSの場合のみ 必須
3621 Jupyter Lab
3622
3623 使用上の注意
3624 1. Jupyter側で作成したテーブル/セットをSDC V3側のワークスペース表示に反映させるには、SDC V3側でワークスペースの変更を伴う操作が必要です。
3625 2. SDC V3側でログアウトするとJupyter側のPythonjカーネルが停止して、以後、操作できなくなります。
3626 3. SDC V3側で参照しているテーブルをJupyter側で削除/変更すると、SDC V3側で予期せぬエラーが発生することがあります。
3627
3628
3629 Parameters
3630 ----------
3631 None
3632
3633 Returns
3634 -------
3635 None
3636 """
3637 import StartSDC3
3638 sdc = StartSDC3.startSDC3()
3639 sdc.start()
3640 return
3641
3642 def get_data_type(self, table_name, item_name):
3643 """
3644 項目のデータ型
3645
3646 # 整数 :2
3647 # 浮動小数 :3
3648 # 日付 :4
3649 # 時刻 :5
3650 # 文字列 :6
3651 # 日付時刻 :7
3652 # NUMERIC :8
3653
3654
3655 Parameters
3656 ----------
3657 table_name : str
3658 テーブル名
3659 item_name : str
3660 項目名
3661
3662 Returns
3663 -------
3664 ResultCode : int
3665 結果コード(2 ~ 8:成功、負:エラーコード)
3666 """
3667 import GetDataTypeEx
3668 serv = GetDataTypeEx.GetDataTypeEx()
3669 serv.TableName = table_name
3670 serv.FilterName = item_name
3671 serv.execDataService()
3672 self.LastMessage = serv.ResultMessage
3673 return serv.ResultCode
def duplicate_item(self, table_name, item_name)
def setsub(self, table_name, src_setid, dst_setid)
def comment(self, comment)
def get_tablelist(self)
def 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')
def get_itemlist(self, table_name)
def output_log(self, is_content='No', is_result='Yes', is_recipe='No', is_document='No')
def get_tuple(self, table_name, start_row=1, fetch_size=128, setid=-1)
def db_save(self, file_name)
def 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')
def calc(self, table_name, item_name, calc_string, row_count=-1, start_row=1, setid=-1)
def get_valuelist(self, table_name, setid, item_name)
def overwrite_batch(self, table_name, start_row, row_count, fill_string_list, setid=-1)
def db_codeset(self, db_codeset)
def sort_item(self, table_name, sort_key)
def add_realitem(self, table_name, add_position, new_item_name, item_type, file_name)
def delete_allset(self, table_name)
def compression(self, table_name)
def read_csv(self, table_name, file_name)
def save_arrow(self, table_name, setid=-1, columns=None)
def set_comment(self, table_name, setid, comment_string)
def set_license(self, license_key)
def get_setid_list(self, table_name)
def delete_resultset(self, table_name, setid)
def read_parquet(self, table_name, file_name, columns=None)
def append_row(self, table_name, row_count, start_row=1)
def get_tablename(self, tableid)
def visible_item(self, table_name, item_name, is_visibility='Yes')
def sort(self, table_name, item_name, setid, sort_type='ASC')
def search_values_bycsv(self, table_name, item_name, setid, file_name)
def get_limit_memory(self)
def 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')
def get_cell(self, table_name, item_name, start_row=1, row_count=1, setid=-1)
def rename_item(self, table_name, item_name, new_item_name)
def get_memory(self, table_name)
def get_limit_cpu(self)
def overwrite(self, table_name, item_name, start_row, row_count, fill_string_list, is_ex_space='No', setid=-1)
def get_data_type(self, table_name, item_name)
def edit_comma(self, table_name, item_name, is_edit='Yes')
def search(self, table_name, item_name, setid, search_string)
def extract_unique(self, table_name, setid, item_name_list=' *', is_keep_order='Yes')
def categorize(self, table_name, item_name, category_table_name)
def delete_table(self, table_name)
def search_values_bytable(self, table_name, item_name, setid, list_table_name, list_item_name, list_setid)
def load(self, file_name)
def get_rowcount(self, table_name, setid=-1)
def write_parquet(self, table_name, file_name, setid=-1, columns=None)
def fill_cell(self, table_name, item_name, set_string, start_row=1, row_count=-1, setid=-1)
def set_cell(self, table_name, item_name, start_row, row_count, fill_string_list, setid=-1)
def delete_row(self, table_name, start_row, row_count, setid=-1)
def move_currentset(self, table_name, setid)
def extract_set(self, table_name, setid, is_view_table_id='Yes', is_record_number='Yes', item_name_list=' *', new_table_name=None)
def setor(self, table_name, src_setid, dst_setid)
def duplicate_table(self, table_name)
def setand(self, table_name, src_setid, dst_setid)
def join_inout(self, table_name, is_slave, is_in_out)
def get_tuple_asjson(self, table_name, start_row=1, fetch_size=128, setid=-1)
def rename_table(self, table_name, new_table_name)
def float_format(self, table_name, item_name, digit)
def search_string(self, table_name, setid, expression)
def insert_row(self, table_name, row_count, start_row=1)
def convert_type(self, table_name, item_name, data_type)
def catalog(self, table_name, file_name, catalog_name, mode=None)
def setnot(self, table_name, setid)
def __init__(self, is_macro_stop=False, is_language="ja-JP")
def db_load(self, file_name)
def get_limit_row(self)
def create_table(self, row_count, table_name)
def save(self, file_name)
def write_csv_selectitem(self, table_name, file_name, setid, delimiter='CSV', write_top=1, write_bottom=-1, item_name_list=' *', is_header='Yes')
def search_values(self, table_name, item_name, setid, search_string_list)
def delete_set(self, table_name, setid)
def delete_item(self, table_name, item_name)
def join_realize(self, join_table_name, real_table_name, setid, master_rec_number='Yes', slave_rec_number='Yes', item_name_list=' *')
def transfer_item(self, table_name, item_name)
def move_item(self, table_name, item_name_list, item_name)
def load_arrow(self, table, columns=None)
def get_license_expiration(self)
def xsum(self, table_name, setid, dimension_item_list, measure_item_list)