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