private void readPowierzchniaDataFromDB(ModelPowierzchnia pow) { string query = ""; DBReader dbReader = new DBReader(dbConnection); ModelPunkty points = new ModelPunkty(); query = SqlQueries.getPoints + pow.idPow; points.pointData = dbReader.readFromDBToDataTable(query); pow.points = points; if (saveModelOption == 1) //tj pełne modele, tylko wtedy wczytuję trójkąty { ModelTriangles triangles = new ModelTriangles(); query = SqlQueries.getTriangles + pow.idPow; triangles.triangleData = dbReader.readFromDBToDataTable(query); pow.triangles = triangles; } ModelLinie breaklines = new ModelLinie(); query = SqlQueries.getBreaklines + pow.idPow; breaklines.breaklineData = dbReader.readFromDBToDataTable(query); pow.breaklines = breaklines; ModelGrid grids = new ModelGrid(); query = SqlQueries.getGrids + pow.idPow; grids.gridData = dbReader.readFromDBToDataTable(query); pow.grids = grids; }
private void writePowierzchniaToDB(ModelBundle modelDataBundle) { Model2D model = modelDataBundle.models[0]; //każda paczka zawiera tylko jeden model int newModelId = 0; modelIdsAfterRestoreDict.TryGetValue(model.idModel, out newModelId); model.setNewModelIdInPowierzchnia(newModelId); uint maxPowId = 0; string tableName = dbConnector.getTableNameFromQuery(SqlQueries.getPowierzchnieNoBlob); for (int i = 0; i < model.powierzchnieList.Count; i++) { ModelPowierzchnia pow = model.powierzchnieList[i]; dbWriter.writeBulkDataToDB(pow.powDataTable, tableName); if (i == 0) //analogicznie jak w przypadku wpisywania deklaracji modeli, po dodaniu pierwszej powierzchni odczytuję jej ID z bazy { maxPowId = getMaxPowierzchniaIdFromDB(); } else //kolejne ID tworzę sam { maxPowId++; } //w każdej powierzchni, w danych składowych tj trójkątów, punktów itd zmieniam ID powierzchni na nowy, w nowej bazie danych pow.idPow = maxPowId; //mając id aktualizuję PowObrys dbWriter.executeQuery("Update DefPowierzchni set PowObrys = '" + pow.powObrys + "'" + SqlQueries.getPowierzchnie_byIdPowFilter + pow.idPow); //zapisuję dane szczegółowe każdej powierzchni do bazy, tj. punkty, trójkąty itd //writePowierzchniaDataToDB(pow); } }
private void writePowierzchniaDataToDB(ModelPowierzchnia pow) { string tableName = ""; uint newIdPow = uint.Parse(pow.idPow.ToString()); tableName = dbConnector.getTableNameFromQuery(SqlQueries.getPoints); ModelPunkty points = pow.points; if (points.setNewIdPow(newIdPow)) { dbWriter.writeBulkDataToDB(points.pointData, tableName); } tableName = dbConnector.getTableNameFromQuery(SqlQueries.getTriangles); ModelTriangles triangles = pow.triangles; if (triangles != null) //jest null jeżeli zapisuję same punkty { if (triangles.setNewIdPow(newIdPow)) { dbWriter.writeBulkDataToDB(triangles.triangleData, tableName); } } tableName = dbConnector.getTableNameFromQuery(SqlQueries.getGrids); ModelGrid grids = pow.grids; if (grids.setNewIdPow(newIdPow)) { dbWriter.writeBulkDataToDB(grids.gridData, tableName); } tableName = dbConnector.getTableNameFromQuery(SqlQueries.getBreaklines); ModelLinie breaklines = pow.breaklines; if (breaklines.setNewIdPow(newIdPow)) { dbWriter.writeBulkDataToDB(breaklines.breaklineData, tableName); } }
private void readPowierzchniaFromDB(Model2D model) { DBReader dbReader = new DBReader(dbConnection); //najpierw potrzebuję jedynie utworzyć obiekty ModelPowierzchnia, potrzebuję do tego tylko niektóre dane string query = SqlQueries.getPowierzchnieDeclaration + SqlQueries.getPowierzchnie_byIdModelFilter + model.idModel; QueryData powierzchnieData = dbReader.readFromDB(query); List <string> paramTypes = powierzchnieData.getDataTypes(); for (int i = 0; i < powierzchnieData.getDataRowsNumber(); i++) { ModelPowierzchnia pow = new ModelPowierzchnia(); pow.idPow = powierzchnieData.getQueryData()[i][SqlQueries.getPowierzchnie_idPowIndex]; pow.idModel = powierzchnieData.getQueryData()[i][SqlQueries.getPowierzchnie_idModelIndex]; pow.idModel_dataType = paramTypes[SqlQueries.getPowierzchnie_idModelIndex]; pow.nazwaPow = powierzchnieData.getQueryData()[i][SqlQueries.getPowierzchnie_nazwaPowIndex]; pow.nazwaPow_dataType = paramTypes[SqlQueries.getPowierzchnie_nazwaPowIndex]; pow.powierzchniaData = powierzchnieData.getQueryData()[i]; pow.columnHeaders = powierzchnieData.getHeaders(); pow.columnDataTypes = powierzchnieData.getDataTypes(); //teraz w zależności od opcji czytam pełne dane powierzchni i zapisuję do DataTable if (saveModelOption == 0) { pow.powDataTable = dbReader.readFromDBToDataTable(SqlQueries.getPowierzchnieNoBlob + SqlQueries.getPowierzchnie_byIdPowFilter + pow.idPow); } else { pow.powDataTable = dbReader.readFromDBToDataTable(SqlQueries.getPowierzchnieFull + SqlQueries.getPowierzchnie_byIdPowFilter + pow.idPow); } //readPowierzchniaDataFromDB(pow); pow.powObrys = dbReader.readScalarFromDB("Select PowObrys from DefPowierzchni " + SqlQueries.getPowierzchnie_byIdPowFilter + pow.idPow).ToString(); model.addPowierzchnia(pow); } }
public void addPowierzchnia(ModelPowierzchnia pow) { powierzchnieList.Add(pow); }