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(); }
public IndexMaker(ArtifactsVO artifacts, string projectDir) { ConnectorXmlReader connReader = new ConnectorXmlReader(projectDir); this.allArtifacts = artifacts; this.allConnectors = connReader.readConnectorAll(); }
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(); }