Beispiel #1
0
        public void writeAllConnector()
        {
            Console.Write("inserting connector table ");

            conn.Open();
            recreateConnectorTable();

            Int32             recCount = 0;
            SQLiteTransaction sqlt     = null;

            ConnectorXmlReader connReader = new ConnectorXmlReader(projectDir);
            List <ConnectorVO> conns      = connReader.readConnectorAll();

            string sql = @"insert into t_connector 
					(connGuid, connName, connType, 
					 srcObjGuid, srcObjName, 
					 destObjGuid, destObjName 
					) values ( 
					 @connGuid, @connName, @connType, 
					 @srcObjGuid, @srcObjName, 
					 @destObjGuid, @destObjName 
					) "                    ;

            foreach (ConnectorVO convo in conns)
            {
                if (recCount % 2000 == 0)
                {
                    sqlt = conn.BeginTransaction();
                }

                using (SQLiteCommand command2 = conn.CreateCommand()) {
                    SQLiteParameter[] parameters = new SQLiteParameter[] {
                        new SQLiteParameter("@connGuid", convo.guid),
                        new SQLiteParameter("@connName", convo.name),
                        new SQLiteParameter("@connType", convo.connectorType),
                        new SQLiteParameter("@srcObjGuid", convo.srcObjGuid),
                        new SQLiteParameter("@srcObjName", convo.srcObjName),
                        new SQLiteParameter("@destObjGuid", convo.destObjGuid),
                        new SQLiteParameter("@destObjName", convo.destObjName)
                    };

                    command2.CommandText = sql;
                    command2.Parameters.AddRange(parameters);
                    command2.ExecuteNonQuery();
                }

                if ((recCount + 1) % 2000 == 0 && recCount > 0)
                {
                    Console.Write(".");
                    sqlt.Commit();
                }

                recCount++;
            }

            sqlt.Commit();
            Console.WriteLine(".  done(" + recCount + "records)");

            conn.Close();
        }
Beispiel #2
0
        public IndexMaker(ArtifactsVO artifacts, string projectDir)
        {
            ConnectorXmlReader connReader = new ConnectorXmlReader(projectDir);

            this.allArtifacts  = artifacts;
            this.allConnectors = connReader.readConnectorAll();
        }
Beispiel #3
0
        public void CloseOnLoadComplete(string projectPath, string dbfile)
        {
            if (!this.loaded)
            {
                Int32 count;
                for (count = 0; count < 1000; count++)
                {
                    if (this.loaded)
                    {
                        break;
                    }
                    else
                    {
                        System.Threading.Thread.Sleep(100);
                    }
                }
            }

            // このプログラム(.exe)が置かれたフォルダを取得
            //string currentDir = System.Windows.Forms.Application.StartupPath ;

            //ファイルを開いて終わるまで待機する
            // Process p = Process.Start( currentDir + "\\ElementIndexer.exe", projectPath + " " + dbfile );
            //					MessageBox.Show("内部データベースを構築します。\n構築処理が完了後、OKボタンを押してください");

            try
            {
                ProjectSetting.load(projectPath + "\\project.bdprj");

                // 全成果物のリストを読み込み
                string            artifactsDir = projectPath + "\\" + ProjectSetting.getVO().artifactsPath;
                List <ArtifactVO> artifacts    = ArtifactsXmlReader.readArtifactList(artifactsDir, ProjectSetting.getVO().artifactsFile);

                // 全成果物リストの内容を成果物XMLファイルで埋める
                ArtifactXmlReader atfReader = new ArtifactXmlReader(artifactsDir);
                foreach (ArtifactVO atf in artifacts)
                {
                    // 成果物別のXMLファイルの内容読み込み
                    atfReader.readArtifactDesc(atf);
                }

                ArtifactsVO allArtifacts = new ArtifactsVO();
                allArtifacts.artifactList = artifacts;

                ConnectorXmlReader connReader    = new ConnectorXmlReader(projectPath);
                List <ConnectorVO> allConnectors = connReader.readConnectorAll();

                IndexDbWriter dbWriter = new IndexDbWriter(projectPath, ProjectSetting.getVO().dbName);

                // 全接続情報をDBに登録
                dbWriter.writeAllConnector(allConnectors);
                // 全要素情報をDBに登録
                dbWriter.writeAllElements(allArtifacts);
                // 全ふるまい情報をDBに登録
                dbWriter.writeAllBehaviors(allArtifacts);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }


            // サブプロセスが終了後、必要なくなったところでCLOSE
//            p.WaitForExit();

            this.Close();
        }