프로젝트

일반

사용자정보

개정판 0ff2a9f1

ID0ff2a9f16a0753eb8411edcf802da83ddf36ac38
상위 85bf7f6c
하위 6a4791aa, 3b9e8b5a

이지연이(가) 약 3년 전에 추가함

issue #000: 매뉴얼추가, DB에 필요 컬럼 없을 시 생성하는 Script 추가, ID2에서 선택한 DB 서버에 PSN 데이터 저장하도록 수정

Change-Id: I7f280b1c4f4221aaab2fb034f437d971bd3db873

차이점 보기:

DTI_PID/ID2PSN/AbstractDatabase.cs
296 296
        #endregion
297 297

  
298 298
        public abstract List<string> GetTableNames();
299

  
300
        public abstract List<string> GetColumnNames(string TableName);
299 301
    }
300 302
}
DTI_PID/ID2PSN/AppMSSqlDatabase.cs
103 103
            return res;
104 104
        }
105 105

  
106
        public override List<string> GetColumnNames(string TableName)
107
        {
108
            List<string> res = new List<string> { };
109
            {
110
                string query = "SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = '" + TableName + "'";
111
                using (var ds = ExecuteDataSet(GetSqlStringCommand(query)))
112
                {
113
                    foreach (DataRow dr in ds.Tables[0].Rows)
114
                    {
115
                        res.Add(dr["COLUMN_NAME"].ToString());
116
                    }
117
                }
118
            }
119

  
120
            return res;
121
        }
122

  
106 123
        /// <summary>
107 124
        /// get column list of table
108 125
        /// </summary>
DTI_PID/ID2PSN/AppSQLiteDatabase.cs
48 48

  
49 49
            return res;
50 50
        }
51

  
52
        public override List<string> GetColumnNames(string TableName)
53
        {
54
            List<string> res = new List<string> { };
55
            {
56
                var query = "PRAGMA table_info('" + TableName + "')";
57
                using (var ds = ExecuteDataSet(GetSqlStringCommand(query)))
58
                {
59
                    foreach (DataRow dr in ds.Tables[0].Rows)
60
                    {
61
                        res.Add(dr["NAME"].ToString());
62
                    }
63
                }
64
            }
65

  
66
            return res;
67
        }
51 68
    }
52 69
}
DTI_PID/ID2PSN/DB.cs
80 80
            bool result = false;
81 81
            ID2Info id2Info = ID2Info.GetInstance();
82 82

  
83
            using (IAbstractDatabase connection = id2Info.CreateConnection(ID2DB_Type.SQLite))
83
            using (IAbstractDatabase connection = id2Info.CreateConnection())
84 84
            {
85 85
                try
86 86
                {
87 87
                    var names = connection.GetTableNames();
88 88
                    var matched = names.FirstOrDefault(param => param == PSN_HEADER_SETTING);
89
                    Dictionary<string, string> dicColCheck = new Dictionary<string, string>();
90
                    dicColCheck.Add("GROUP_ID", "TEXT");
91
                    dicColCheck.Add("DESCRIPTION", "TEXT");
92
                    dicColCheck.Add("INDEX", "INTEGER");
93
                    dicColCheck.Add("NAME", "TEXT");
94

  
89 95
                    if (matched == null)
90 96
                    {
91 97
                        var query = $"CREATE TABLE {PSN_HEADER_SETTING} (GROUP_ID TEXT, DESCRIPTION TEXT, [INDEX] INTEGER, NAME TEXT)";
......
94 100
                            cmd.ExecuteNonQuery();
95 101
                        }
96 102
                    }
103
                    else
104
                    {
105
                        AddColumn(PSN_HEADER_SETTING, dicColCheck);
106
                    }
97 107

  
98 108
                    matched = names.FirstOrDefault(param => param == PSN_VENTDRAIN_SETTING);
109
                    dicColCheck.Clear();
110
                    dicColCheck.Add("GROUP_ID", "TEXT");
111
                    dicColCheck.Add("DESCRIPTION", "TEXT");
112
                    dicColCheck.Add("INDEX", "INTEGER");
113
                    dicColCheck.Add("NAME", "TEXT");
99 114
                    if (matched == null)
100 115
                    {
101 116
                        var query = $"CREATE TABLE {PSN_VENTDRAIN_SETTING} (GROUP_ID TEXT, DESCRIPTION TEXT, [INDEX] INTEGER, NAME TEXT)";
......
104 119
                            cmd.ExecuteNonQuery();
105 120
                        }
106 121
                    }
122
                    else
123
                    {
124
                        AddColumn(PSN_VENTDRAIN_SETTING, dicColCheck);
125
                    }
107 126

  
108 127
                    matched = names.FirstOrDefault(param => param == PSN_TOPOLOGY_RULE);
128
                    dicColCheck.Clear();
129
                    dicColCheck.Add("UID", "TEXT");
109 130
                    if (matched == null)
110 131
                    {
111 132
                        var query = $"CREATE TABLE {PSN_TOPOLOGY_RULE} (UID TEXT)";
......
125 146

  
126 147
                        SaveTopologyRule(topologyRule);
127 148
                    }
128

  
149
                    //else
150
                    //{
151
                    //    AddColumn(PSN_TOPOLOGY_RULE, dicColCheck);
152
                    //}
129 153

  
130 154
                    matched = names.FirstOrDefault(param => param == PSN_PIPESYSTEMNETWORK);
155
                    dicColCheck.Clear();
156
                    dicColCheck.Add("OID",                      "NVARCHAR(255)");
157
                    dicColCheck.Add("Type",                     "NVARCHAR(255)");
158
                    dicColCheck.Add("OrderNumber",              "NVARCHAR(255)");
159
                    dicColCheck.Add("Pipeline_OID",             "NVARCHAR(255)");
160
                    dicColCheck.Add("From_Data",                "NVARCHAR(255)");
161
                    dicColCheck.Add("To_Data", "NVARCHAR(255)");
162
                    dicColCheck.Add("TopologySet_OID_Key", "NVARCHAR(125)");
163
                    dicColCheck.Add("PSNRevisionNumber", "NVARCHAR(255)");
164
                    dicColCheck.Add("IsValid", "INT");
165
                    dicColCheck.Add("Status", "NVARCHAR(255)");
166
                    dicColCheck.Add("PBS", "NVARCHAR(255)");
167
                    dicColCheck.Add("Drawings", "NVARCHAR(255)");
168
                    dicColCheck.Add("IncludingVirtualData", "NVARCHAR(10)");
169
                    dicColCheck.Add("PSNAccuracy", "REAL"); 
170

  
131 171
                    if (matched == null)
132 172
                    {
133 173
                        var query = $"CREATE TABLE {PSN_PIPESYSTEMNETWORK} (OID NVARCHAR(255), Type NVARCHAR(255), OrderNumber NVARCHAR(255), Pipeline_OID NVARCHAR(255), From_Data NVARCHAR(255), " +
......
138 178
                            cmd.ExecuteNonQuery();
139 179
                        }
140 180
                    }
181
                    else
182
                    {
183
                        AddColumn(PSN_PIPESYSTEMNETWORK, dicColCheck);
184
                    }
141 185

  
142 186
                    matched = names.FirstOrDefault(param => param == PSN_EQUIPMENT);
187
                    dicColCheck.Clear();
188
                    dicColCheck.Add("OID", "NVARCHAR(255)");
189
                    dicColCheck.Add("ItemTag", "NVARCHAR(255)");
190
                    dicColCheck.Add("Xcoords", "REAL");
191
                    dicColCheck.Add("Ycoords", "REAL");
143 192
                    if (matched == null)
144 193
                    {
145 194
                        var query = $"CREATE TABLE {PSN_EQUIPMENT} (OID NVARCHAR(255), ItemTag NVARCHAR(255), Xcoords REAL, Ycoords REAL)";
......
148 197
                            cmd.ExecuteNonQuery();
149 198
                        }
150 199
                    }
200
                    else
201
                    {
202
                        AddColumn(PSN_EQUIPMENT, dicColCheck);
203
                    }
204

  
205
                    dicColCheck.Clear();
206
                    dicColCheck.Add("OID", "NVARCHAR(255)");
207
                    dicColCheck.Add("ItemTag", "NVARCHAR(255)");
208
                    dicColCheck.Add("Xcoords", "REAL");
209
                    dicColCheck.Add("Ycoords", "REAL");
210
                    dicColCheck.Add("Equipment_OID", "NVARCHAR(255)");
211
                    dicColCheck.Add("Fluid", "NVARCHAR(255)");
212
                    dicColCheck.Add("NPD", "NVARCHAR(255)");
213
                    dicColCheck.Add("PMC", "NVARCHAR(255)");
214
                    dicColCheck.Add("Rotation", "REAL");
215
                    dicColCheck.Add("FlowDirection", "NVARCHAR(255)");
151 216

  
152 217
                    matched = names.FirstOrDefault(param => param == PSN_NOZZLE);
153 218
                    if (matched == null)
......
159 224
                            cmd.ExecuteNonQuery();
160 225
                        }
161 226
                    }
227
                    else
228
                    {
229
                        AddColumn(PSN_NOZZLE, dicColCheck);
230
                    }
162 231

  
163 232
                    matched = names.FirstOrDefault(param => param == PSN_FLUIDCODE);
233
                    dicColCheck.Clear();
234
                    dicColCheck.Add("UID", "NVARCHAR(50)");
235
                    dicColCheck.Add("Code", "NVARCHAR(255)");
236
                    dicColCheck.Add("Description", "NVARCHAR(255)");
237
                    dicColCheck.Add("Condition", "NVARCHAR(255)");
238
                    dicColCheck.Add("Remarks", "NVARCHAR(255)");
239
                    dicColCheck.Add("GroundLevel", "NVARCHAR(20)");
164 240
                    if (matched == null)
165 241
                    {
166 242
                        var query = $"CREATE TABLE {PSN_FLUIDCODE} (UID NVARCHAR(50), Code NVARCHAR(255), Description NVARCHAR(255), Condition NVARCHAR(255), Remarks NVARCHAR(255), GroundLevel NVARCHAR(20))";
......
169 245
                            cmd.ExecuteNonQuery();
170 246
                        }
171 247
                    }
172

  
248
                    else
249
                    {
250
                        AddColumn(PSN_FLUIDCODE, dicColCheck);
251
                    }
173 252

  
174 253
                    matched = names.FirstOrDefault(param => param == PSN_PIPINGMATLCLASS);
254
                    dicColCheck.Clear();
255
                    dicColCheck.Add("UID", "NVARCHAR(50)");
256
                    dicColCheck.Add("Priority", "INTEGER");
257
                    dicColCheck.Add("Code", "NVARCHAR(255)");
258
                    dicColCheck.Add("Description", "NVARCHAR(255)");
259
                    dicColCheck.Add("Condition", "NVARCHAR(255)");
260
                    dicColCheck.Add("Remarks", "NVARCHAR(255)");
261
                    dicColCheck.Add("GroundLevel", "NVARCHAR(20)");
175 262
                    if (matched == null)
176 263
                    {
177 264
                        var query = $"CREATE TABLE {PSN_PIPINGMATLCLASS} (UID NVARCHAR(50), Priority INTEGER, Code NVARCHAR(255), Description NVARCHAR(255), Condition NVARCHAR(255), Remarks NVARCHAR(255), GroundLevel NVARCHAR(20))";
......
180 267
                            cmd.ExecuteNonQuery();
181 268
                        }
182 269
                    }
270
                    else
271
                    {
272
                        AddColumn(PSN_PIPINGMATLCLASS, dicColCheck);
273
                    }
183 274

  
184 275
                    matched = names.FirstOrDefault(param => param == PSN_SEQUENCEDATA);
276
                    dicColCheck.Clear();
277
                    dicColCheck.Add("OID", "NVARCHAR(255)");
278
                    dicColCheck.Add("SERIALNUMBER", "NVARCHAR(255)");
279
                    dicColCheck.Add("PathItem_OID", "NVARCHAR(255)");
280
                    dicColCheck.Add("TopologySet_OID_Key", "NVARCHAR(255)");
185 281
                    if (matched == null)
186 282
                    {
187 283
                        var query = $"CREATE TABLE {PSN_SEQUENCEDATA} (OID NVARCHAR(255), SERIALNUMBER NVARCHAR(255), PathItem_OID NVARCHAR(255), TopologySet_OID_Key NVARCHAR(255))";
......
190 286
                            cmd.ExecuteNonQuery();
191 287
                        }
192 288
                    }
289
                    else
290
                    {
291
                        AddColumn(PSN_SEQUENCEDATA, dicColCheck);
292
                    }
193 293

  
194 294
                    matched = names.FirstOrDefault(param => param == PSN_PATHITEMS);
295
                    dicColCheck.Clear();
296
                    dicColCheck.Add("OID", "NVARCHAR(255)");
297
                    dicColCheck.Add("SequenceData_OID", "NVARCHAR(255)");
298
                    dicColCheck.Add("TopologySet_OID", "NVARCHAR(255)");
299
                    dicColCheck.Add("BranchTopologySet_OID", "NVARCHAR(255)");
300
                    dicColCheck.Add("PipeLine_OID", "NVARCHAR(255)");
301
                    dicColCheck.Add("ItemName", "NVARCHAR(255)");
302
                    dicColCheck.Add("ItemTag", "NVARCHAR(255)");
303
                    dicColCheck.Add("DESCRIPTION", "NVARCHAR(255)");
304
                    dicColCheck.Add("CLASS", "NVARCHAR(255)");
305
                    dicColCheck.Add("SUBCLASS", "NVARCHAR(255)");
306
                    dicColCheck.Add("TYPE", "NVARCHAR(255)");
307
                    dicColCheck.Add("PIDNAME", "NVARCHAR(255)");
308
                    dicColCheck.Add("Equipment_OID", "NVARCHAR(255)");
309
                    dicColCheck.Add("NPD", "NVARCHAR(255)");
310
                    dicColCheck.Add("PipeSystemNetwork_OID", "NVARCHAR(255)");
311
                    dicColCheck.Add("PipeRun_OID", "NVARCHAR(255)");
312
                    dicColCheck.Add("ViewPipeSystemNetwork_OID", "NVARCHAR(255)");
195 313
                    if (matched == null)
196 314
                    {
197 315
                        var query = $"CREATE TABLE {PSN_PATHITEMS} (OID NVARCHAR(255), SequenceData_OID NVARCHAR(255), " +
......
203 321
                            cmd.ExecuteNonQuery();
204 322
                        }
205 323
                    }
206
                    
324
                    else
325
                    {
326
                        AddColumn(PSN_PATHITEMS, dicColCheck);
327
                    }
328

  
207 329
                    matched = names.FirstOrDefault(param => param == PSN_VIEW);
330
                    dicColCheck.Clear();
331
                    dicColCheck.Add("OID", "TEXT");
208 332
                    if (matched == null)
209 333
                    {
210 334
                        var query = $"CREATE TABLE {PSN_VIEW} (OID TEXT)";
......
215 339
                    }
216 340

  
217 341
                    matched = names.FirstOrDefault(param => param == PSN_TOPOLOGYSET);
342
                    dicColCheck.Clear();
343
                    dicColCheck.Add("OID", "NVARCHAR(255)");
344
                    dicColCheck.Add("Type", "NVARCHAR(255)");
345
                    dicColCheck.Add("SubType", "NVARCHAR(255)");
346
                    dicColCheck.Add("HeadItemTag", "NVARCHAR(255)");
347
                    dicColCheck.Add("TailItemTag", "NVARCHAR(255)");
348
                    dicColCheck.Add("HeadItemSPID", "NVARCHAR(255)");
349
                    dicColCheck.Add("TailItemSPID", "NVARCHAR(255)");
350

  
218 351
                    if (matched == null)
219 352
                    {
220 353
                        var query = $"CREATE TABLE { PSN_TOPOLOGYSET} (OID NVARCHAR(255), Type NVARCHAR(255), SubType NVARCHAR(255), HeadItemTag NVARCHAR(255), TailItemTag NVARCHAR(255), HeadItemSPID NVARCHAR(255), TailItemSPID NVARCHAR(255))";
......
223 356
                            cmd.ExecuteNonQuery();
224 357
                        }
225 358
                    }
226
                   
359
                    else
360
                    {
361
                        AddColumn(PSN_TOPOLOGYSET, dicColCheck);
362
                    }
363

  
227 364
                    matched = names.FirstOrDefault(param => param == PSN_TRANSFORMKEYWORD_SETTING);
365
                    dicColCheck.Clear();
366
                    dicColCheck.Add("[INDEX]", "INTEGER");
367
                    dicColCheck.Add("[NAME]", "TEXT");
368
                    dicColCheck.Add("[KEYWORD]", "TEXT");
228 369
                    if (matched == null)
229 370
                    {
230 371
                        var query = $"CREATE TABLE {PSN_TRANSFORMKEYWORD_SETTING} ([INDEX] INTEGER, [NAME] TEXT, [KEYWORD] TEXT)";
......
233 374
                            cmd.ExecuteNonQuery();
234 375
                        }
235 376
                    }
377
                    else
378
                    {
379
                        AddColumn(PSN_TRANSFORMKEYWORD_SETTING, dicColCheck);
380
                    }
236 381

  
237 382
                    matched = names.FirstOrDefault(param => param == PSN_PIPELINE);
383
                    dicColCheck.Clear();
384
                    dicColCheck.Add("OID", "NVARCHAR(255)");
385
                    dicColCheck.Add("PipeSystem_OID", "NVARCHAR(255)");
386
                    dicColCheck.Add("FLUID", "NVARCHAR(255)");
387
                    dicColCheck.Add("PMC", "NVARCHAR(255)");
388
                    dicColCheck.Add("SEQNUMBER", "NVARCHAR(255)");
389
                    dicColCheck.Add("INSULATION", "NVARCHAR(255)");
390
                    dicColCheck.Add("FROM_DATA", "NVARCHAR(255)");
391
                    dicColCheck.Add("TO_DATA", "NVARCHAR(255)");
392
                    dicColCheck.Add("Unit", "NVARCHAR(100)");
238 393
                    if (matched == null)
239 394
                    {
240 395
                        var query = $"CREATE TABLE {PSN_PIPELINE} (OID NVARCHAR(255), PipeSystem_OID NVARCHAR(255), FLUID NVARCHAR(255), PMC NVARCHAR(255), SEQNUMBER NVARCHAR(255), INSULATION NVARCHAR(255), " +
......
244 399
                            cmd.ExecuteNonQuery();
245 400
                        }
246 401
                    }
402
                    else
403
                    {
404
                        AddColumn(PSN_PIPELINE, dicColCheck);
405
                    }
247 406

  
248 407
                    matched = names.FirstOrDefault(param => param == PSN_INSULATIONPURPOSE);
408
                    dicColCheck.Clear();
409
                    dicColCheck.Add("UID", "NVARCHAR(50)");
410
                    dicColCheck.Add("Code", "NVARCHAR(255)");
411
                    dicColCheck.Add("Description", "NVARCHAR(255)");
412
                    dicColCheck.Add("Remarks", "NVARCHAR(255)");
249 413
                    if (matched == null)
250 414
                    {
251 415
                        var query = $"CREATE TABLE {PSN_INSULATIONPURPOSE} (UID NVARCHAR(50), Code NVARCHAR(255), Description NVARCHAR(255), Remarks NVARCHAR(255))";
......
254 418
                            cmd.ExecuteNonQuery();
255 419
                        }
256 420
                    }
421
                    else
422
                    {
423
                        AddColumn(PSN_INSULATIONPURPOSE, dicColCheck);
424
                    }
425

  
426
                    void AddColumn(string TableName, Dictionary<string, string> dicCol)
427
                    {
428
                        var colnames = connection.GetColumnNames(TableName);
429
                        bool check = false;
430
                        if (colnames != null)
431
                        {
432
                            foreach (KeyValuePair<string, string> col in dicCol)
433
                            {
434
                                check = false;
435
                                foreach (string c in colnames)
436
                                {
437
                                    if (col.Key.Contains(c))
438
                                    {
439
                                        check = true;
440
                                        break;
441
                                    }
442
                                }
443

  
444
                                if (!check) //없으면 추가
445
                                {
446
                                    string i = string.Empty;
447
                                    if (col.Value.ToString().ToUpper().Contains("INT") || col.Value.ToString().ToUpper().Contains("REAL"))
448
                                        i = "DEFAULT 0";
449

  
450
                                    var query = $"ALTER TABLE " + TableName + " ADD [" + col.Key + "] " + col.Value + " " + i + ";";
451
                                    using (var cmd = connection.GetSqlStringCommand(query))
452
                                    {
453
                                        cmd.ExecuteNonQuery();
454
                                    }
455
                                }
456
                            }
457
                        }
458
                    }
257 459

  
258 460
                    result = true;
259 461
                }
......
400 602
            DataTable dt = null;
401 603
            ID2Info id2Info = ID2Info.GetInstance();
402 604

  
403
            using (IAbstractDatabase connection = id2Info.CreateConnection(ID2DB_Type.SQLite))
605
            using (IAbstractDatabase connection = id2Info.CreateConnection())
404 606
            {
405 607
                try
406 608
                {
......
448 650
            DataTable dt = null;
449 651
            ID2Info id2Info = ID2Info.GetInstance();
450 652

  
451
            using (IAbstractDatabase connection = id2Info.CreateConnection(ID2DB_Type.SQLite))
653
            using (IAbstractDatabase connection = id2Info.CreateConnection())
452 654
            {
453 655
                try
454 656
                {
......
636 838

  
637 839
                            foreach (string value in values)
638 840
                            {
639
                                query = $"INSERT INTO {PSN_VIEW} VALUES (@OID)";
841
                                query = $"INSERT INTO {PSN_VIEW} (OID) VALUES (@OID)";
640 842
                                var cmd = connection.GetSqlStringCommand(query);
641 843
                                AddWithValue(cmd, "@OID", value);
642 844
                                connection.ExecuteNonQuery(cmd, txn);
......
700 902
            DataTable dt = null;
701 903
            ID2Info id2Info = ID2Info.GetInstance();
702 904

  
703
            using (IAbstractDatabase connection = id2Info.CreateConnection(ID2DB_Type.SQLite))
905
            using (IAbstractDatabase connection = id2Info.CreateConnection())
704 906
            {
705 907
                try
706 908
                {
......
724 926
            DataTable dt = null;
725 927
            ID2Info id2Info = ID2Info.GetInstance();
726 928

  
727
            using (IAbstractDatabase connection = id2Info.CreateConnection(ID2DB_Type.SQLite))
929
            using (IAbstractDatabase connection = id2Info.CreateConnection())
728 930
            {
729 931
                try
730 932
                {
......
748 950
            DataTable dt = null;
749 951
            ID2Info id2Info = ID2Info.GetInstance();
750 952

  
751
            using (IAbstractDatabase connection = id2Info.CreateConnection(ID2DB_Type.SQLite))
953
            using (IAbstractDatabase connection = id2Info.CreateConnection())
752 954
            {
753 955
                try
754 956
                {
......
770 972
        public static bool SaveHeaderSetting(List<HeaderInfo> headerInfos)
771 973
        {
772 974
            ID2Info id2Info = ID2Info.GetInstance();
773
            using (IAbstractDatabase connection = id2Info.CreateConnection(ID2DB_Type.SQLite))
975
            using (IAbstractDatabase connection = id2Info.CreateConnection())
774 976
            {
775 977
                try
776 978
                {
......
783 985
                        {
784 986
                            foreach (HeaderItem item in headerInfo.HeaderItems)
785 987
                            {
786
                                query = $"INSERT INTO {PSN_HEADER_SETTING} VALUES (@GROUP_ID, @DESCRIPTION, @INDEX, @NAME)";
988
                                query = $"INSERT INTO {PSN_HEADER_SETTING} (GROUP_ID, DESCRIPTION, [INDEX], NAME) VALUES (@GROUP_ID, @DESCRIPTION, @INDEX, @NAME)";
787 989
                                var cmd = connection.GetSqlStringCommand(query);
788 990
                                AddWithValue(cmd, "@GROUP_ID", headerInfo.UID);
789 991
                                AddWithValue(cmd, "@DESCRIPTION", headerInfo.Description);
......
808 1010
        public static bool SaveVentDrainSetting(List<VentDrainInfo> ventDrainInfos)
809 1011
        {
810 1012
            ID2Info id2Info = ID2Info.GetInstance();
811
            using (IAbstractDatabase connection = id2Info.CreateConnection(ID2DB_Type.SQLite))
1013
            using (IAbstractDatabase connection = id2Info.CreateConnection())
812 1014
            {
813 1015
                using (var txn = connection.BeginTransaction())
814 1016
                {
......
821 1023
                        {
822 1024
                            foreach (VentDrainItem item in ventDrainInfo.VentDrainItems)
823 1025
                            {
824
                                query = $"INSERT INTO {PSN_VENTDRAIN_SETTING} VALUES (@GROUP_ID, @DESCRIPTION, @INDEX, @NAME)";
1026
                                query = $"INSERT INTO {PSN_VENTDRAIN_SETTING} (GROUP_ID, DESCRIPTION, [INDEX], NAME) VALUES (@GROUP_ID, @DESCRIPTION, @INDEX, @NAME)";
825 1027
                                var cmd = connection.GetSqlStringCommand(query);
826 1028
                                AddWithValue(cmd, "@GROUP_ID", ventDrainInfo.UID);
827 1029
                                AddWithValue(cmd, "@DESCRIPTION", ventDrainInfo.Description);
......
847 1049
        public static bool SaveKeywordsSetting(List<KeywordItem> keywordItems)
848 1050
        {
849 1051
            ID2Info id2Info = ID2Info.GetInstance();
850
            using (IAbstractDatabase connection = id2Info.CreateConnection(ID2DB_Type.SQLite))
1052
            using (IAbstractDatabase connection = id2Info.CreateConnection())
851 1053
            {
852 1054
                using (var txn = connection.BeginTransaction())
853 1055
                {
......
858 1060
                        
859 1061
                        foreach (KeywordItem item in keywordItems)
860 1062
                        {
861
                            query = $"INSERT INTO {PSN_TRANSFORMKEYWORD_SETTING} VALUES (@INDEX, @NAME, @KEYWORD)";
1063
                            query = $"INSERT INTO {PSN_TRANSFORMKEYWORD_SETTING} ([INDEX], NAME, KEYWORD) VALUES (@INDEX, @NAME, @KEYWORD)";
862 1064
                            var cmd = connection.GetSqlStringCommand(query);
863 1065
                            AddWithValue(cmd, "@INDEX", item.Index);
864 1066
                            AddWithValue(cmd, "@NAME", item.Name);
......
882 1084
        public static bool SaveTopologyRule(DataTable dt)
883 1085
        {
884 1086
            ID2Info id2Info = ID2Info.GetInstance();
885
            using (IAbstractDatabase connection = id2Info.CreateConnection(ID2DB_Type.SQLite))
1087
            using (IAbstractDatabase connection = id2Info.CreateConnection())
886 1088
            {
887 1089
                using (var txn = connection.BeginTransaction())
888 1090
                {
......
890 1092
                    {
891 1093
                        var query = $"DELETE FROM {PSN_TOPOLOGY_RULE}";
892 1094
                        var cmd = connection.GetSqlStringCommand(query);
893
                        cmd.ExecuteNonQuery();
1095
                        //connection.ExecuteNonQuery(connection.GetSqlStringCommand(query), txn);
1096
                        connection.ExecuteNonQuery(cmd, txn);
894 1097

  
895 1098
                        foreach (DataRow row in dt.Rows)
896 1099
                        {
897
                            query = $"INSERT INTO {PSN_TOPOLOGY_RULE} VALUES (@UID)";
1100
                            query = $"INSERT INTO {PSN_TOPOLOGY_RULE} (UID) VALUES (@UID)";
898 1101
                            cmd = connection.GetSqlStringCommand(query);
899 1102
                            AddWithValue(cmd, "@UID", row["NAME"].ToString());
900 1103
                            connection.ExecuteNonQuery(cmd, txn);
......
919 1122
            DataTable dt = null;
920 1123

  
921 1124
            ID2Info id2Info = ID2Info.GetInstance();
922
            using (IAbstractDatabase connection = id2Info.CreateConnection(ID2DB_Type.SQLite))
1125
            using (IAbstractDatabase connection = id2Info.CreateConnection())
923 1126
            {
924 1127
                try
925 1128
                {
......
951 1154
            ID2Info id2Info = ID2Info.GetInstance();
952 1155

  
953 1156
            bool result = true;
954
            using (IAbstractDatabase connection = id2Info.CreateConnection(ID2DB_Type.SQLite))
1157
            using (IAbstractDatabase connection = id2Info.CreateConnection())
955 1158
            {
956 1159
                try
957 1160
                {
......
965 1168
                            for (int i = 0; i < item.PathItems.Rows.Count; i++)
966 1169
                            {
967 1170
                                DataRow row = item.PathItems.Rows[i];
968
                                query = $"INSERT INTO {PSN_PATHITEMS} VALUES (@OID, @SequenceData_OID, @TopologySet_OID, @BranchTopologySet_OID, @PipeLine_OID, @ITEMNAME, @ITEMTAG, @DESCRIPTION, @Class, @SubClass, @TYPE, @PIDNAME, @Equipment_OID, @NPD, @PipeSystemNetwork_OID,@PipeRun_OID, @ViewPipeSystemNetwork_OID)";
1171
                                query = $"INSERT INTO {PSN_PATHITEMS} " +
1172
                                    $"(OID, SequenceData_OID, TopologySet_OID, BranchTopologySet_OID, PipeLine_OID, ItemName, ItemTag, DESCRIPTION, CLASS, SUBCLASS, TYPE, " +
1173
                                    $"PIDNAME, Equipment_OID, NPD, PipeSystemNetwork_OID, PipeRun_OID, ViewPipeSystemNetwork_OID) VALUES " +
1174
                                    $"(@OID, @SequenceData_OID, @TopologySet_OID, @BranchTopologySet_OID, @PipeLine_OID, @ITEMNAME, @ITEMTAG, @DESCRIPTION, @Class, @SubClass, @TYPE, @PIDNAME, @Equipment_OID, @NPD, @PipeSystemNetwork_OID,@PipeRun_OID, @ViewPipeSystemNetwork_OID)";
969 1175
                                var cmd = connection.GetSqlStringCommand(query);
970 1176
                                AddWithValue(cmd, "@OID", string.IsNullOrEmpty(row["OID"].ToString()) ? "" : row["OID"].ToString());
971 1177
                                AddWithValue(cmd, "@SequenceData_OID", string.IsNullOrEmpty(row["SequenceData_OID"].ToString()) ? "" : row["SequenceData_OID"].ToString());
......
992 1198
                            connection.ExecuteNonQuery(connection.GetSqlStringCommand(query), txn);
993 1199
                            foreach (DataRow row in item.SequenceData.Rows)
994 1200
                            {
995
                                query = $"INSERT INTO {PSN_SEQUENCEDATA} VALUES (@OID, @SERIALNUMBER, @PathItem_OID, @TopologySet_OID_Key)";
1201
                                query = $"INSERT INTO {PSN_SEQUENCEDATA} (OID, SERIALNUMBER, PathItem_OID, TopologySet_OID_Key) VALUES (@OID, @SERIALNUMBER, @PathItem_OID, @TopologySet_OID_Key)";
996 1202
                                var cmd = connection.GetSqlStringCommand(query);
997 1203
                                AddWithValue(cmd, "@OID", string.IsNullOrEmpty(row["OID"].ToString()) ? "" : row["OID"].ToString());
998 1204
                                AddWithValue(cmd, "@SERIALNUMBER", string.IsNullOrEmpty(row["SERIALNUMBER"].ToString()) ? "" : row["SERIALNUMBER"].ToString());
......
1006 1212
                            connection.ExecuteNonQuery(connection.GetSqlStringCommand(query), txn);
1007 1213
                            foreach (DataRow row in item.Nozzle.Rows)
1008 1214
                            {
1009
                                query = $"INSERT INTO {PSN_NOZZLE} VALUES (@OID, @ITEMTAG, @XCOORDS, @YCOORDS, @Equipment_OID, @FLUID, @NPD, @PMC, @ROTATION, @FlowDirection)";
1215
                                query = $"INSERT INTO {PSN_NOZZLE} (OID, ItemTag, Xcoords, Ycoords, Equipment_OID, Fluid, NPD, PMC, Rotation, FlowDirection) VALUES (@OID, @ITEMTAG, @XCOORDS, @YCOORDS, @Equipment_OID, @FLUID, @NPD, @PMC, @ROTATION, @FlowDirection)";
1010 1216
                                var cmd = connection.GetSqlStringCommand(query);
1011 1217
                                AddWithValue(cmd, "@OID", string.IsNullOrEmpty(row["OID"].ToString()) ? "" : row["OID"].ToString());
1012 1218
                                AddWithValue(cmd, "@ITEMTAG", string.IsNullOrEmpty(row["ITEMTAG"].ToString()) ? "" : row["ITEMTAG"].ToString());
......
1040 1246
                            connection.ExecuteNonQuery(connection.GetSqlStringCommand(query), txn);
1041 1247
                            foreach (DataRow row in item.Equipment.Rows)
1042 1248
                            {
1043
                                query = $"INSERT INTO {PSN_EQUIPMENT} VALUES (@OID, @ITEMTAG, @XCOORDS, @YCOORDS)";
1249
                                query = $"INSERT INTO {PSN_EQUIPMENT} (OID, ItemTag, Xcoords, Ycoords) VALUES (@OID, @ITEMTAG, @XCOORDS, @YCOORDS)";
1044 1250
                                var cmd = connection.GetSqlStringCommand(query);
1045 1251
                                AddWithValue(cmd, "@OID", string.IsNullOrEmpty(row["OID"].ToString()) ? "" : row["OID"].ToString());
1046 1252
                                AddWithValue(cmd, "@ITEMTAG", string.IsNullOrEmpty(row["ITEMTAG"].ToString()) ? "" : row["ITEMTAG"].ToString());
......
1063 1269
                            connection.ExecuteNonQuery(connection.GetSqlStringCommand(query), txn);
1064 1270
                            foreach (DataRow row in item.TopologySet.Rows)
1065 1271
                            {
1066
                                query = $"INSERT INTO {PSN_TOPOLOGYSET} VALUES (@OID, @Type, @SubType, @HeadItemTag, @TailItemTag, @HeadItemSPID, @TailItemSPID)";
1272
                                query = $"INSERT INTO {PSN_TOPOLOGYSET} (OID, Type, SubType, HeadItemTag, TailItemTag, HeadItemSPID, TailItemSPID) VALUES (@OID, @Type, @SubType, @HeadItemTag, @TailItemTag, @HeadItemSPID, @TailItemSPID)";
1067 1273
                                var cmd = connection.GetSqlStringCommand(query);
1068 1274
                                AddWithValue(cmd, "@OID", string.IsNullOrEmpty(row["OID"].ToString()) ? "" : row["OID"].ToString());
1069 1275
                                AddWithValue(cmd, "@Type", string.IsNullOrEmpty(row["Type"].ToString()) ? "" : row["Type"].ToString());
......
1121 1327
                            connection.ExecuteNonQuery(connection.GetSqlStringCommand(query), txn);
1122 1328
                            foreach (DataRow row in item.PipeLine.Rows)
1123 1329
                            {
1124
                                query = $"INSERT INTO {PSN_PIPELINE} VALUES (@OID, @PipeSystem_OID, @FLUID, @PMC, @SEQNUMBER, @INSULATION, @FROM_DATA, @TO_DATA, @Unit)";
1330
                                query = $"INSERT INTO {PSN_PIPELINE} (OID, PipeSystem_OID, FLUID, PMC, SEQNUMBER, INSULATION, FROM_DATA, TO_DATA, Unit) VALUES (@OID, @PipeSystem_OID, @FLUID, @PMC, @SEQNUMBER, @INSULATION, @FROM_DATA, @TO_DATA, @Unit)";
1125 1331
                                var cmd = connection.GetSqlStringCommand(query);
1126 1332
                                AddWithValue(cmd, "@OID", row["OID"].ToString());
1127 1333
                                AddWithValue(cmd, "@PipeSystem_OID", row["PipeSystem_OID"].ToString());
......
1159 1365
            ID2Info id2Info = ID2Info.GetInstance();
1160 1366

  
1161 1367
            bool result = true;
1162
            using (IAbstractDatabase connection = id2Info.CreateConnection(ID2DB_Type.SQLite))
1368
            using (IAbstractDatabase connection = id2Info.CreateConnection())
1163 1369
            {
1164 1370
                try
1165 1371
                {
......
1172 1378

  
1173 1379
                            foreach (DataRow row in dt.Rows)
1174 1380
                            {
1175
                                query = $"INSERT INTO {PSN_FLUIDCODE} VALUES (@UID, @Code, @Description, @Condition, @Remarks, @GroundLevel)";
1381
                                query = $"INSERT INTO {PSN_FLUIDCODE} (UID, Code, Description, Condition, Remarks, GroundLevel) VALUES (@UID, @Code, @Description, @Condition, @Remarks, @GroundLevel)";
1176 1382
                                var cmd = connection.GetSqlStringCommand(query);
1177 1383
                                cmd.Parameters.Clear();
1178 1384

  
......
1244 1450
            DataTable dt = null;
1245 1451
            ID2Info id2Info = ID2Info.GetInstance();
1246 1452

  
1247
            using (IAbstractDatabase connection = id2Info.CreateConnection(ID2DB_Type.SQLite))
1453
            using (IAbstractDatabase connection = id2Info.CreateConnection())
1248 1454
            {
1249 1455
                try
1250 1456
                {
......
1268 1474
            ID2Info id2Info = ID2Info.GetInstance();
1269 1475

  
1270 1476
            bool result = true;
1271
            using (IAbstractDatabase connection = id2Info.CreateConnection(ID2DB_Type.SQLite))
1477
            using (IAbstractDatabase connection = id2Info.CreateConnection())
1272 1478
            {
1273 1479
                try
1274 1480
                {
......
1281 1487

  
1282 1488
                            foreach (DataRow row in dt.Rows)
1283 1489
                            {
1284
                                query = $"INSERT INTO {PSN_PIPINGMATLCLASS} VALUES (@UID, @Priority, @Code, @Description, @Condition, @Remarks, @GroundLevel)";
1490
                                query = $"INSERT INTO {PSN_PIPINGMATLCLASS} ( UID, Priority, Code, Description, Condition, Remarks, GroundLevel) VALUES (@UID, @Priority, @Code, @Description, @Condition, @Remarks, @GroundLevel)";
1285 1491
                                var cmd = connection.GetSqlStringCommand(query);
1286 1492
                                cmd.Parameters.Clear();
1287 1493

  
......
1361 1567
            ID2Info id2Info = ID2Info.GetInstance();
1362 1568

  
1363 1569
            bool result = true;
1364
            using (IAbstractDatabase connection = id2Info.CreateConnection(ID2DB_Type.SQLite))
1570
            using (IAbstractDatabase connection = id2Info.CreateConnection())
1365 1571
            {
1366 1572
                try
1367 1573
                {
......
1374 1580

  
1375 1581
                            foreach (DataRow row in dt.Rows)
1376 1582
                            {
1377
                                query = $"INSERT INTO {PSN_INSULATIONPURPOSE} VALUES (@UID, @Code, @Description, @Remarks)";
1583
                                query = $"INSERT INTO {PSN_INSULATIONPURPOSE} (UID, Code, Description, Remarks) VALUES (@UID, @Code, @Description, @Remarks)";
1378 1584
                                var cmd = connection.GetSqlStringCommand(query);
1379 1585
                                cmd.Parameters.Clear();
1380 1586

  
......
1433 1639
            PSN result = new PSN();
1434 1640
            ID2Info id2Info = ID2Info.GetInstance();
1435 1641

  
1436
            using (IAbstractDatabase connection = id2Info.CreateConnection(ID2DB_Type.SQLite))
1642
            using (IAbstractDatabase connection = id2Info.CreateConnection())
1437 1643
            {
1438 1644
                try
1439 1645
                {
......
1538 1744
            int result = 0;
1539 1745
            ID2Info id2Info = ID2Info.GetInstance();
1540 1746

  
1541
            using (IAbstractDatabase connection = id2Info.CreateConnection(ID2DB_Type.SQLite))
1747
            using (IAbstractDatabase connection = id2Info.CreateConnection())
1542 1748
            {
1543 1749
                try
1544 1750
                {
......
1571 1777
            DataTable dt = null;
1572 1778

  
1573 1779
            ID2Info id2Info = ID2Info.GetInstance();
1574
            using (IAbstractDatabase connection = id2Info.CreateConnection(ID2DB_Type.SQLite))
1780
            using (IAbstractDatabase connection = id2Info.CreateConnection())
1575 1781
            {
1576 1782
                try
1577 1783
                {
......
1595 1801
            DataTable dt = null;
1596 1802

  
1597 1803
            ID2Info id2Info = ID2Info.GetInstance();
1598
            using (IAbstractDatabase connection = id2Info.CreateConnection(ID2DB_Type.SQLite))
1804
            using (IAbstractDatabase connection = id2Info.CreateConnection())
1599 1805
            {
1600 1806
                try
1601 1807
                {
......
1631 1837
            DataTable dt = null;
1632 1838

  
1633 1839
            ID2Info id2Info = ID2Info.GetInstance();
1634
            using (IAbstractDatabase connection = id2Info.CreateConnection(ID2DB_Type.SQLite))
1840
            using (IAbstractDatabase connection = id2Info.CreateConnection())
1635 1841
            {
1636 1842
                try
1637 1843
                {
......
1688 1894
            DataTable dt = null;
1689 1895

  
1690 1896
            ID2Info id2Info = ID2Info.GetInstance();
1691
            using (IAbstractDatabase connection = id2Info.CreateConnection(ID2DB_Type.SQLite))
1897
            using (IAbstractDatabase connection = id2Info.CreateConnection())
1692 1898
            {
1693 1899
                try
1694 1900
                {
DTI_PID/ID2PSN/Form/MainForm.Designer.cs
82 82
            this.layoutControlItem11 = new DevExpress.XtraLayout.LayoutControlItem();
83 83
            this.contextMenuPSN = new System.Windows.Forms.ContextMenuStrip(this.components);
84 84
            this.toolStripMenuItemPathItems = new System.Windows.Forms.ToolStripMenuItem();
85
            this.splashScreenManager1 = new DevExpress.XtraSplashScreen.SplashScreenManager(this, typeof(global::PDF_TO_IMAGE.WaitForm), true, true);
85
            this.splashScreenManager1 = new DevExpress.XtraSplashScreen.SplashScreenManager(this, typeof(global::ID2PSN.WaitForm), true, true);
86 86
            ((System.ComponentModel.ISupportInitialize)(this.ribbonControl)).BeginInit();
87 87
            ((System.ComponentModel.ISupportInitialize)(this.layoutControl1)).BeginInit();
88 88
            this.layoutControl1.SuspendLayout();
DTI_PID/ID2PSN/Form/WaitForm.Designer.cs
1
namespace PDF_TO_IMAGE
1
namespace ID2PSN
2 2
{
3 3
    partial class WaitForm
4 4
    {
DTI_PID/ID2PSN/Form/WaitForm.cs
7 7
using System.Windows.Forms;
8 8
using DevExpress.XtraWaitForm;
9 9

  
10
namespace PDF_TO_IMAGE
10
namespace ID2PSN
11 11
{
12 12
    public partial class WaitForm : DevExpress.XtraWaitForm.WaitForm
13 13
    {
DTI_PID/ID2PSN/IAbstractDatabase.cs
38 38
        DbTransaction BeginTransaction();
39 39

  
40 40
        List<string> GetTableNames();
41

  
42
        List<string> GetColumnNames(string TableName);
41 43
    }
42 44
}
DTI_PID/ID2PSN/PSN.cs
205 205

  
206 206
        public void SetPSNData()
207 207
        {
208
            
208 209
            // Item들의 속성으로 Topology Data를 생성한다.
209 210
            // Topology Data는 Topology Rule Setting을 기준으로 생성한다. 
211
            
210 212
            SetTopologyData();
211 213
            // ID2의 OPC연결 Data 기반으로 Group(도면단위 PSN)을 연결한다.
212 214
            ConnectByOPC();

내보내기 Unified diff