private void Initialize() { if (!_odb.IndexManagerFor <Recipe>().ExistIndex("nameIndex")) { _odb.IndexManagerFor <Recipe>().AddUniqueIndexOn("nameIndex", new[] { "Name" }); } }
public void CopyRegions(IOdb odb, NorthwindDataSet dataSet) { //Processing Regions LogMessage("Reading Regions...", false); var adapter1 = new RegionTableAdapter(); var table1 = adapter1.GetData(); LogMessage("processing " + table1.Count.ToString() + " rows", true); foreach (var row in table1) { LogMessage("Regions: " + row.RegionID.ToString() + " ...", false); var r = new Region {RegionID = row.RegionID, RegionDescription = row.RegionDescription}; odb.Store(r); LogMessage("saved", true); } odb.Commit(); LogMessage("Commit done, starting create index ...", false); odb.IndexManagerFor<Region>().AddUniqueIndexOn("Region_RegionID_PK_index", Domain.Region.PK); odb.Commit(); LogMessage(" index created.", true); long objectCount = NDbUtil.GetAllInstances<Region>(odb).Count; if (table1.Count == objectCount) LogMessage(table1.Count + " objects saved", true); else LogMessage("Error: " + table1.Count + " rows retrieved but " + objectCount + " objects were saved", true); LogMessage("Done with Regions" + Environment.NewLine, true); }
private void CopySuppliers(IOdb odb) { //Processing Suppliers LogMessage("Reading Suppliers...", false); var adapter1 = new SuppliersTableAdapter(); var table1 = adapter1.GetData(); LogMessage("processing " + table1.Count.ToString() + " rows", true); foreach (var row in table1) { LogMessage("Supplier: " + row.SupplierID.ToString() + " ...", false); var s = new Supplier { SupplierID = row.SupplierID, CompanyName = row.CompanyName, ContactName = row.IsContactNameNull() ? null : row.ContactName, ContactTitle = row.IsContactTitleNull() ? null : row.ContactTitle, Address = row.IsAddressNull() ? null : row.Address, City = row.IsCityNull() ? null : row.City, Region = row.IsRegionNull() ? null : row.Region, PostalCode = row.IsPostalCodeNull() ? null : row.PostalCode, Country = row.IsCountryNull() ? null : row.Country, Phone = row.IsPhoneNull() ? null : row.Phone, Fax = row.IsFaxNull() ? null : row.Fax, HomePage = row.IsHomePageNull() ? null : row.HomePage }; odb.Store(s); LogMessage("saved", true); } odb.Commit(); LogMessage("Commit done, starting create index ...", false); odb.IndexManagerFor <Supplier>().AddUniqueIndexOn("Supplier_SupplierID_PK_index", Supplier.PK); odb.Commit(); LogMessage(" index created.", true); long objectCount = NDbUtil.GetAllInstances <Supplier>(odb).Count; if (table1.Count == objectCount) { LogMessage(table1.Count + " objects saved", true); } else { LogMessage("Error: " + table1.Count + " rows retrieved but " + objectCount + " objects were saved", true); } LogMessage("Done with Suppliers" + Environment.NewLine, true); }
public virtual void Test1000Objects() { var OdbFileName = "index2.test1.odb"; IOdb odb = null; var size = 1000; var start = OdbTime.GetCurrentTimeInMs(); try { DeleteBase(OdbFileName); odb = Open(OdbFileName); for (var i = 0; i < size; i++) { var io = new IndexedObject("name" + i, i, new DateTime()); odb.Store(io); } odb.Close(); Println("\n\n END OF INSERT \n\n"); odb = Open(OdbFileName); var names = new[] { "name" }; odb.IndexManagerFor <IndexedObject>().AddUniqueIndexOn("index1", names); Println("\n\n after create index\n\n"); var query = odb.Query <IndexedObject>(); query.Descend("name").Constrain((object)"name0").Equal(); var objects = query.Execute <IndexedObject>(true); Println("\n\nafter get Objects\n\n"); AssertEquals(1, objects.Count); var query2 = odb.Query <IndexedObject>(); query2.Descend("duration").Constrain((object)9).Equal(); objects = query2.Execute <IndexedObject>(true); AssertEquals(1, objects.Count); objects = odb.Query <IndexedObject>().Execute <IndexedObject>(true); AssertEquals(size, objects.Count); } finally { var end = OdbTime.GetCurrentTimeInMs(); Println((end - start) + "ms"); odb.Close(); } }
private void CopyCategories(IOdb odb) { //Processing Categories LogMessage("Reading Categories...", false); var adapter1 = new CategoriesTableAdapter(); var table1 = adapter1.GetData(); LogMessage("processing " + table1.Count.ToString() + " rows", true); foreach (var row in table1) { LogMessage("Categories: " + row.CategoryID.ToString() + " ...", false); var c = new Category { CategoryID = row.CategoryID, CategoryName = row.CategoryName, Description = row.IsDescriptionNull() ? null : row.Description, Picture = row.IsPictureNull() ? null : row.Picture }; odb.Store(c); LogMessage("saved", true); } odb.Commit(); LogMessage("Commit done, starting create index ...", false); odb.IndexManagerFor <Category>().AddUniqueIndexOn("Category_CategoryID_PK_index", Category.PK); odb.Commit(); LogMessage(" index created.", true); long objectCount = NDbUtil.GetAllInstances <Category>(odb).Count; if (table1.Count == objectCount) { LogMessage(table1.Count + " objects saved", true); } else { LogMessage("Error: " + table1.Count + " rows retrieved but " + objectCount + " objects were saved", true); } LogMessage("Done with Categories" + Environment.NewLine, true); }
private void CopyTerritories(IOdb odb) { //Processing Territories LogMessage("Reading Territories...", false); var adapter1 = new TerritoriesTableAdapter(); var table1 = adapter1.GetData(); LogMessage("processing " + table1.Count.ToString() + " rows", true); foreach (var row in table1) { LogMessage("Territories: " + row.TerritoryID + " ...", false); var t = new Territory { TerritoryID = row.TerritoryID, TerritoryDescription = row.TerritoryDescription }; LogMessage("linking member...", false); t.Region = NDbUtil.GetByNumericalID <Region>(odb, Domain.Region.PK, row.RegionID); odb.Store(t); LogMessage("saved (" + t.TerritoryID + ")", true); } odb.Commit(); LogMessage("Commit done, starting create index ...", false); odb.IndexManagerFor <Territory>().AddUniqueIndexOn("Territory_TerritoryID_PK_index", Territory.PK); odb.Commit(); LogMessage(" index created.", true); long objectCount = NDbUtil.GetAllInstances <Territory>(odb).Count; if (table1.Count == objectCount) { LogMessage(table1.Count + " objects saved", true); } else { LogMessage("Error: " + table1.Count + " rows retrieved but " + objectCount + " objects were saved", true); } LogMessage("Done with Territories" + Environment.NewLine, true); }
private void CopyCustomerDemographics(IOdb odb) { //Processing CustomerDemographics LogMessage("Reading CustomerDemographics...", false); var adapter1 = new CustomerDemographicsTableAdapter(); var table1 = adapter1.GetData(); LogMessage("processing " + table1.Count.ToString() + " rows", true); foreach (var row in table1) { LogMessage("CustomerDemographics: " + row.CustomerTypeID + " ...", false); var cd = new CustomerDemographics { CustomerTypeID = row.CustomerTypeID, CustomerDesc = row.IsCustomerDescNull() ? null : row.CustomerDesc }; odb.Store(cd); LogMessage("saved", true); } odb.Commit(); LogMessage("Commit done, starting create index ...", false); odb.IndexManagerFor <CustomerDemographics>().AddUniqueIndexOn( "CustomerDemographics_CustomerTypeID_PK_index", CustomerDemographics.PK); odb.Commit(); LogMessage(" index created.", true); long objectCount = NDbUtil.GetAllInstances <CustomerDemographics>(odb).Count; if (table1.Count == objectCount) { LogMessage(table1.Count + " objects saved", true); } else { LogMessage("Error: " + table1.Count + " rows retrieved but " + objectCount + " objects were saved", true); } LogMessage("Done with CustomerDemographics" + Environment.NewLine, true); }
private void CopyShippers(IOdb odb) { //Processing Shippers LogMessage("Reading Shippers...", false); var adapter1 = new ShippersTableAdapter(); var table1 = adapter1.GetData(); LogMessage("processing " + table1.Count.ToString() + " rows", true); foreach (var row in table1) { LogMessage("Shippers: " + row.ShipperID.ToString() + " ...", false); var s = new Shipper { ShipperID = row.ShipperID, CompanyName = row.CompanyName, Phone = row.IsPhoneNull() ? null : row.Phone }; odb.Store(s); LogMessage("saved", true); } odb.Commit(); LogMessage("Commit done, starting create index ...", false); odb.IndexManagerFor <Shipper>().AddUniqueIndexOn("Shipper_ShipperID_PK_index", Shipper.PK); odb.Commit(); LogMessage(" index created.", true); long objectCount = NDbUtil.GetAllInstances <Shipper>(odb).Count; if (table1.Count == objectCount) { LogMessage(table1.Count + " objects saved", true); } else { LogMessage("Error: " + table1.Count + " rows retrieved but " + objectCount + " objects were saved", true); } LogMessage("Done with Shippers" + Environment.NewLine, true); }
public void CopyRegions(IOdb odb, NorthwindDataSet dataSet) { //Processing Regions LogMessage("Reading Regions...", false); var adapter1 = new RegionTableAdapter(); var table1 = adapter1.GetData(); LogMessage("processing " + table1.Count.ToString() + " rows", true); foreach (var row in table1) { LogMessage("Regions: " + row.RegionID.ToString() + " ...", false); var r = new Region { RegionID = row.RegionID, RegionDescription = row.RegionDescription }; odb.Store(r); LogMessage("saved", true); } odb.Commit(); LogMessage("Commit done, starting create index ...", false); odb.IndexManagerFor <Region>().AddUniqueIndexOn("Region_RegionID_PK_index", Domain.Region.PK); odb.Commit(); LogMessage(" index created.", true); long objectCount = NDbUtil.GetAllInstances <Region>(odb).Count; if (table1.Count == objectCount) { LogMessage(table1.Count + " objects saved", true); } else { LogMessage("Error: " + table1.Count + " rows retrieved but " + objectCount + " objects were saved", true); } LogMessage("Done with Regions" + Environment.NewLine, true); }
public virtual void Test3_BadAttributeInIndex() { var baseName = GetBaseName(); IOdb odb = null; var fieldName = "fkjdsfkjdhfjkdhjkdsh"; try { odb = Open(baseName); var fields = new[] { fieldName }; odb.IndexManagerFor <IndexedObject2>().AddUniqueIndexOn("index1", fields); Fail("Should have thrown an exception because the field " + fieldName + " does not exist"); } catch (Exception) { } finally { // normal odb.Close(); DeleteBase(baseName); } }
private void CopyEmployees(IOdb odb) { var employees = new List<Employee>(); var reportingEmployees = new Hashtable(); //Processing Employees LogMessage("Reading Employees...", false); var adapter1 = new EmployeesTableAdapter(); var table1 = adapter1.GetData(); LogMessage("processing " + table1.Count.ToString() + " rows", true); foreach (var row in table1) { var e = new Employee { EmployeeID = row.EmployeeID, FirstName = row.FirstName, LastName = row.LastName, Title = row.IsTitleNull() ? null : row.Title, TitleOfCourtesy = row.IsTitleOfCourtesyNull() ? null : row.TitleOfCourtesy, Address = row.IsAddressNull() ? null : row.Address, City = row.IsCityNull() ? null : row.City, Region = row.IsRegionNull() ? null : row.Region, PostalCode = row.IsPostalCodeNull() ? null : row.PostalCode, Country = row.IsCountryNull() ? null : row.Country, HomePhone = row.IsHomePhoneNull() ? null : row.HomePhone, Extension = row.IsExtensionNull() ? null : row.Extension, Notes = row.IsNotesNull() ? null : row.Notes, Photo = row.IsPhotoNull() ? null : row.Photo, PhotoPath = row.IsPhotoPathNull() ? null : row.PhotoPath }; if (!row.IsBirthDateNull()) e.BirthDate = row.BirthDate; if (!row.IsHireDateNull()) e.HireDate = row.HireDate; if (!row.IsReportsToNull()) reportingEmployees.Add(e.EmployeeID, row.ReportsTo); employees.Add(e); } foreach (var e in employees) { LogMessage("Employee: " + e.EmployeeID.ToString() + " ...", false); if (reportingEmployees.ContainsKey(e.EmployeeID)) { LogMessage("linking member...", false); var reportsToID = Convert.ToInt64(reportingEmployees[e.EmployeeID]); var found = employees.Find(p => p.EmployeeID == reportsToID); e.ReportsTo = found; } odb.Store(e); LogMessage("saved (" + e.EmployeeID.ToString() + ")", true); } odb.Commit(); LogMessage("Commit done, starting create index ...", false); odb.IndexManagerFor<Employee>().AddUniqueIndexOn("Employee_EmployeeID_PK_index", Employee.PK); odb.Commit(); LogMessage(" index created.", true); long objectCount = NDbUtil.GetAllInstances<Employee>(odb).Count; if (table1.Count == objectCount) LogMessage(table1.Count + " objects saved", true); else LogMessage("Error: " + table1.Count + " rows retrieved but " + objectCount + " objects were saved", true); LogMessage("Done with Employees" + Environment.NewLine, true); }
private void CopyProducts(IOdb odb) { var products = new List <Product>(); var suppliers = new Hashtable(); var categories = new Hashtable(); //Processing Products LogMessage("Reading Products...", false); var adapter1 = new ProductsTableAdapter(); var table1 = adapter1.GetData(); LogMessage("processing " + table1.Count.ToString() + " rows", true); foreach (var row in table1) { var p = new Product { ProductID = row.ProductID, ProductName = row.ProductName, QuantityPerUnit = row.IsQuantityPerUnitNull() ? null : row.QuantityPerUnit, UnitPrice = row.IsUnitPriceNull() ? 0 : Convert.ToDouble(row.UnitPrice), UnitsInStock = row.IsUnitsInStockNull() ? 0 : row.UnitsInStock, UnitsOnOrder = row.IsUnitsOnOrderNull() ? 0 : row.UnitsOnOrder, ReorderLevel = row.IsReorderLevelNull() ? 0 : row.ReorderLevel, Discontinued = row.Discontinued }; if (!row.IsSupplierIDNull()) { suppliers.Add(p.ProductID, row.SupplierID); } if (!row.IsCategoryIDNull()) { categories.Add(p.ProductID, row.CategoryID); } products.Add(p); } foreach (var p in products) { LogMessage("Product: " + p.ProductID.ToString() + " ...", false); if (suppliers.ContainsKey(p.ProductID)) { LogMessage("linking member...", false); var supplierID = Convert.ToInt64(suppliers[p.ProductID]); var found = NDbUtil.GetByNumericalID <Supplier>(odb, Supplier.PK, supplierID); p.Supplier = found; } if (categories.ContainsKey(p.ProductID)) { LogMessage("linking member...", false); var categoryID = Convert.ToInt64(categories[p.ProductID]); var found = NDbUtil.GetByNumericalID <Category>(odb, Category.PK, categoryID); p.Category = found; } odb.Store(p); LogMessage("saved (" + p.ProductID.ToString() + ")", true); } odb.Commit(); LogMessage("Commit done, starting create index ...", false); odb.IndexManagerFor <Product>().AddUniqueIndexOn("Product_ProductID_PK_index", Product.PK); odb.Commit(); LogMessage(" index created.", true); long objectCount = NDbUtil.GetAllInstances <Product>(odb).Count; if (table1.Count == objectCount) { LogMessage(table1.Count + " objects saved", true); } else { LogMessage("Error: " + table1.Count + " rows retrieved but " + objectCount + " objects were saved", true); } LogMessage("Done with Products" + Environment.NewLine, true); }
private void CopyEmployees(IOdb odb) { var employees = new List <Employee>(); var reportingEmployees = new Hashtable(); //Processing Employees LogMessage("Reading Employees...", false); var adapter1 = new EmployeesTableAdapter(); var table1 = adapter1.GetData(); LogMessage("processing " + table1.Count.ToString() + " rows", true); foreach (var row in table1) { var e = new Employee { EmployeeID = row.EmployeeID, FirstName = row.FirstName, LastName = row.LastName, Title = row.IsTitleNull() ? null : row.Title, TitleOfCourtesy = row.IsTitleOfCourtesyNull() ? null : row.TitleOfCourtesy, Address = row.IsAddressNull() ? null : row.Address, City = row.IsCityNull() ? null : row.City, Region = row.IsRegionNull() ? null : row.Region, PostalCode = row.IsPostalCodeNull() ? null : row.PostalCode, Country = row.IsCountryNull() ? null : row.Country, HomePhone = row.IsHomePhoneNull() ? null : row.HomePhone, Extension = row.IsExtensionNull() ? null : row.Extension, Notes = row.IsNotesNull() ? null : row.Notes, Photo = row.IsPhotoNull() ? null : row.Photo, PhotoPath = row.IsPhotoPathNull() ? null : row.PhotoPath }; if (!row.IsBirthDateNull()) { e.BirthDate = row.BirthDate; } if (!row.IsHireDateNull()) { e.HireDate = row.HireDate; } if (!row.IsReportsToNull()) { reportingEmployees.Add(e.EmployeeID, row.ReportsTo); } employees.Add(e); } foreach (var e in employees) { LogMessage("Employee: " + e.EmployeeID.ToString() + " ...", false); if (reportingEmployees.ContainsKey(e.EmployeeID)) { LogMessage("linking member...", false); var reportsToID = Convert.ToInt64(reportingEmployees[e.EmployeeID]); var found = employees.Find(p => p.EmployeeID == reportsToID); e.ReportsTo = found; } odb.Store(e); LogMessage("saved (" + e.EmployeeID.ToString() + ")", true); } odb.Commit(); LogMessage("Commit done, starting create index ...", false); odb.IndexManagerFor <Employee>().AddUniqueIndexOn("Employee_EmployeeID_PK_index", Employee.PK); odb.Commit(); LogMessage(" index created.", true); long objectCount = NDbUtil.GetAllInstances <Employee>(odb).Count; if (table1.Count == objectCount) { LogMessage(table1.Count + " objects saved", true); } else { LogMessage("Error: " + table1.Count + " rows retrieved but " + objectCount + " objects were saved", true); } LogMessage("Done with Employees" + Environment.NewLine, true); }
private void CopyTerritories(IOdb odb) { //Processing Territories LogMessage("Reading Territories...", false); var adapter1 = new TerritoriesTableAdapter(); var table1 = adapter1.GetData(); LogMessage("processing " + table1.Count.ToString() + " rows", true); foreach (var row in table1) { LogMessage("Territories: " + row.TerritoryID + " ...", false); var t = new Territory {TerritoryID = row.TerritoryID, TerritoryDescription = row.TerritoryDescription}; LogMessage("linking member...", false); t.Region = NDbUtil.GetByNumericalID<Region>(odb, Domain.Region.PK, row.RegionID); odb.Store(t); LogMessage("saved (" + t.TerritoryID + ")", true); } odb.Commit(); LogMessage("Commit done, starting create index ...", false); odb.IndexManagerFor<Territory>().AddUniqueIndexOn("Territory_TerritoryID_PK_index", Territory.PK); odb.Commit(); LogMessage(" index created.", true); long objectCount = NDbUtil.GetAllInstances<Territory>(odb).Count; if (table1.Count == objectCount) LogMessage(table1.Count + " objects saved", true); else LogMessage("Error: " + table1.Count + " rows retrieved but " + objectCount + " objects were saved", true); LogMessage("Done with Territories" + Environment.NewLine, true); }
private void CopyCategories(IOdb odb) { //Processing Categories LogMessage("Reading Categories...", false); var adapter1 = new CategoriesTableAdapter(); var table1 = adapter1.GetData(); LogMessage("processing " + table1.Count.ToString() + " rows", true); foreach (var row in table1) { LogMessage("Categories: " + row.CategoryID.ToString() + " ...", false); var c = new Category { CategoryID = row.CategoryID, CategoryName = row.CategoryName, Description = row.IsDescriptionNull() ? null : row.Description, Picture = row.IsPictureNull() ? null : row.Picture }; odb.Store(c); LogMessage("saved", true); } odb.Commit(); LogMessage("Commit done, starting create index ...", false); odb.IndexManagerFor<Category>().AddUniqueIndexOn("Category_CategoryID_PK_index", Category.PK); odb.Commit(); LogMessage(" index created.", true); long objectCount = NDbUtil.GetAllInstances<Category>(odb).Count; if (table1.Count == objectCount) LogMessage(table1.Count + " objects saved", true); else LogMessage("Error: " + table1.Count + " rows retrieved but " + objectCount + " objects were saved", true); LogMessage("Done with Categories" + Environment.NewLine, true); }
private void CopyShippers(IOdb odb) { //Processing Shippers LogMessage("Reading Shippers...", false); var adapter1 = new ShippersTableAdapter(); var table1 = adapter1.GetData(); LogMessage("processing " + table1.Count.ToString() + " rows", true); foreach (var row in table1) { LogMessage("Shippers: " + row.ShipperID.ToString() + " ...", false); var s = new Shipper { ShipperID = row.ShipperID, CompanyName = row.CompanyName, Phone = row.IsPhoneNull() ? null : row.Phone }; odb.Store(s); LogMessage("saved", true); } odb.Commit(); LogMessage("Commit done, starting create index ...", false); odb.IndexManagerFor<Shipper>().AddUniqueIndexOn("Shipper_ShipperID_PK_index", Shipper.PK); odb.Commit(); LogMessage(" index created.", true); long objectCount = NDbUtil.GetAllInstances<Shipper>(odb).Count; if (table1.Count == objectCount) LogMessage(table1.Count + " objects saved", true); else LogMessage("Error: " + table1.Count + " rows retrieved but " + objectCount + " objects were saved", true); LogMessage("Done with Shippers" + Environment.NewLine, true); }
private void CopySuppliers(IOdb odb) { //Processing Suppliers LogMessage("Reading Suppliers...", false); var adapter1 = new SuppliersTableAdapter(); var table1 = adapter1.GetData(); LogMessage("processing " + table1.Count.ToString() + " rows", true); foreach (var row in table1) { LogMessage("Supplier: " + row.SupplierID.ToString() + " ...", false); var s = new Supplier { SupplierID = row.SupplierID, CompanyName = row.CompanyName, ContactName = row.IsContactNameNull() ? null : row.ContactName, ContactTitle = row.IsContactTitleNull() ? null : row.ContactTitle, Address = row.IsAddressNull() ? null : row.Address, City = row.IsCityNull() ? null : row.City, Region = row.IsRegionNull() ? null : row.Region, PostalCode = row.IsPostalCodeNull() ? null : row.PostalCode, Country = row.IsCountryNull() ? null : row.Country, Phone = row.IsPhoneNull() ? null : row.Phone, Fax = row.IsFaxNull() ? null : row.Fax, HomePage = row.IsHomePageNull() ? null : row.HomePage }; odb.Store(s); LogMessage("saved", true); } odb.Commit(); LogMessage("Commit done, starting create index ...", false); odb.IndexManagerFor<Supplier>().AddUniqueIndexOn("Supplier_SupplierID_PK_index", Supplier.PK); odb.Commit(); LogMessage(" index created.", true); long objectCount = NDbUtil.GetAllInstances<Supplier>(odb).Count; if (table1.Count == objectCount) LogMessage(table1.Count + " objects saved", true); else LogMessage("Error: " + table1.Count + " rows retrieved but " + objectCount + " objects were saved", true); LogMessage("Done with Suppliers" + Environment.NewLine, true); }
private void CopyProducts(IOdb odb) { var products = new List<Product>(); var suppliers = new Hashtable(); var categories = new Hashtable(); //Processing Products LogMessage("Reading Products...", false); var adapter1 = new ProductsTableAdapter(); var table1 = adapter1.GetData(); LogMessage("processing " + table1.Count.ToString() + " rows", true); foreach (var row in table1) { var p = new Product { ProductID = row.ProductID, ProductName = row.ProductName, QuantityPerUnit = row.IsQuantityPerUnitNull() ? null : row.QuantityPerUnit, UnitPrice = row.IsUnitPriceNull() ? 0 : Convert.ToDouble(row.UnitPrice), UnitsInStock = row.IsUnitsInStockNull() ? 0 : row.UnitsInStock, UnitsOnOrder = row.IsUnitsOnOrderNull() ? 0 : row.UnitsOnOrder, ReorderLevel = row.IsReorderLevelNull() ? 0 : row.ReorderLevel, Discontinued = row.Discontinued }; if (!row.IsSupplierIDNull()) suppliers.Add(p.ProductID, row.SupplierID); if (!row.IsCategoryIDNull()) categories.Add(p.ProductID, row.CategoryID); products.Add(p); } foreach (var p in products) { LogMessage("Product: " + p.ProductID.ToString() + " ...", false); if (suppliers.ContainsKey(p.ProductID)) { LogMessage("linking member...", false); var supplierID = Convert.ToInt64(suppliers[p.ProductID]); var found = NDbUtil.GetByNumericalID<Supplier>(odb, Supplier.PK, supplierID); p.Supplier = found; } if (categories.ContainsKey(p.ProductID)) { LogMessage("linking member...", false); var categoryID = Convert.ToInt64(categories[p.ProductID]); var found = NDbUtil.GetByNumericalID<Category>(odb, Category.PK, categoryID); p.Category = found; } odb.Store(p); LogMessage("saved (" + p.ProductID.ToString() + ")", true); } odb.Commit(); LogMessage("Commit done, starting create index ...", false); odb.IndexManagerFor<Product>().AddUniqueIndexOn("Product_ProductID_PK_index", Product.PK); odb.Commit(); LogMessage(" index created.", true); long objectCount = NDbUtil.GetAllInstances<Product>(odb).Count; if (table1.Count == objectCount) LogMessage(table1.Count + " objects saved", true); else LogMessage("Error: " + table1.Count + " rows retrieved but " + objectCount + " objects were saved", true); LogMessage("Done with Products" + Environment.NewLine, true); }
private void CopyOrders(IOdb odb, ref double progress) { var orders = new List<Order>(); var customers = new Hashtable(); var employees = new Hashtable(); var shippers = new Hashtable(); //Processing Orders LogMessage("Reading Orders...", false); var adapter1 = new OrdersTableAdapter(); var table1 = adapter1.GetData(); LogMessage("processing " + table1.Count.ToString() + " rows", true); foreach (var row in table1) { var o = new Order { OrderID = row.OrderID, Freight = row.IsFreightNull() ? 0 : Convert.ToDouble(row.Freight), ShipName = row.IsShipNameNull() ? null : row.ShipName, ShipAddress = row.IsShipAddressNull() ? null : row.ShipAddress, ShipCity = row.IsShipCityNull() ? null : row.ShipCity, ShipRegion = row.IsShipRegionNull() ? null : row.ShipRegion, ShipPostalCode = row.IsShipPostalCodeNull() ? null : row.ShipPostalCode, ShipCountry = row.IsShipCountryNull() ? null : row.ShipCountry }; if (!row.IsCustomerIDNull()) customers.Add(o.OrderID, row.CustomerID); if (!row.IsEmployeeIDNull()) employees.Add(o.OrderID, row.EmployeeID); if (!row.IsShipViaNull()) shippers.Add(o.OrderID, row.ShipVia); if (!row.IsOrderDateNull()) o.OrderDate = row.OrderDate; if (!row.IsRequiredDateNull()) o.RequiredDate = row.RequiredDate; if (!row.IsShippedDateNull()) o.ShippedDate = row.ShippedDate; orders.Add(o); } foreach (var o in orders) { LogMessage("Order: " + o.OrderID.ToString() + " ...", false); if (customers.ContainsKey(o.OrderID)) { LogMessage("linking member...", false); var customerID = Convert.ToString(customers[o.OrderID]); var found = NDbUtil.GetByStringID<Customer>(odb, Customer.PK, customerID); o.Customer = found; } if (employees.ContainsKey(o.OrderID)) { LogMessage("linking member...", false); var employeeID = Convert.ToInt64(employees[o.OrderID]); var found = NDbUtil.GetByNumericalID<Employee>(odb, Employee.PK, employeeID); o.Employee = found; } if (shippers.ContainsKey(o.OrderID)) { LogMessage("linking member...", false); var shipperID = Convert.ToInt64(shippers[o.OrderID]); var found = NDbUtil.GetByNumericalID<Shipper>(odb, Shipper.PK, shipperID); o.ShipVia = found; } odb.Store(o); StepFinished(progress += 0.029); LogMessage("saved (" + o.OrderID.ToString() + ")", true); } odb.Commit(); LogMessage("Commit done, starting create index ...", false); odb.IndexManagerFor<Order>().AddUniqueIndexOn("Order_OrderID_PK_index", Order.PK); odb.Commit(); LogMessage(" index created.", true); long objectCount = NDbUtil.GetAllInstances<Order>(odb).Count; if (table1.Count == objectCount) LogMessage(table1.Count + " objects saved", true); else LogMessage("Error: " + table1.Count + " rows retrieved but " + objectCount + " objects were saved", true); LogMessage("Done with Orders" + Environment.NewLine, true); }
private void CopyOrders(IOdb odb, ref double progress) { var orders = new List <Order>(); var customers = new Hashtable(); var employees = new Hashtable(); var shippers = new Hashtable(); //Processing Orders LogMessage("Reading Orders...", false); var adapter1 = new OrdersTableAdapter(); var table1 = adapter1.GetData(); LogMessage("processing " + table1.Count.ToString() + " rows", true); foreach (var row in table1) { var o = new Order { OrderID = row.OrderID, Freight = row.IsFreightNull() ? 0 : Convert.ToDouble(row.Freight), ShipName = row.IsShipNameNull() ? null : row.ShipName, ShipAddress = row.IsShipAddressNull() ? null : row.ShipAddress, ShipCity = row.IsShipCityNull() ? null : row.ShipCity, ShipRegion = row.IsShipRegionNull() ? null : row.ShipRegion, ShipPostalCode = row.IsShipPostalCodeNull() ? null : row.ShipPostalCode, ShipCountry = row.IsShipCountryNull() ? null : row.ShipCountry }; if (!row.IsCustomerIDNull()) { customers.Add(o.OrderID, row.CustomerID); } if (!row.IsEmployeeIDNull()) { employees.Add(o.OrderID, row.EmployeeID); } if (!row.IsShipViaNull()) { shippers.Add(o.OrderID, row.ShipVia); } if (!row.IsOrderDateNull()) { o.OrderDate = row.OrderDate; } if (!row.IsRequiredDateNull()) { o.RequiredDate = row.RequiredDate; } if (!row.IsShippedDateNull()) { o.ShippedDate = row.ShippedDate; } orders.Add(o); } foreach (var o in orders) { LogMessage("Order: " + o.OrderID.ToString() + " ...", false); if (customers.ContainsKey(o.OrderID)) { LogMessage("linking member...", false); var customerID = Convert.ToString(customers[o.OrderID]); var found = NDbUtil.GetByStringID <Customer>(odb, Customer.PK, customerID); o.Customer = found; } if (employees.ContainsKey(o.OrderID)) { LogMessage("linking member...", false); var employeeID = Convert.ToInt64(employees[o.OrderID]); var found = NDbUtil.GetByNumericalID <Employee>(odb, Employee.PK, employeeID); o.Employee = found; } if (shippers.ContainsKey(o.OrderID)) { LogMessage("linking member...", false); var shipperID = Convert.ToInt64(shippers[o.OrderID]); var found = NDbUtil.GetByNumericalID <Shipper>(odb, Shipper.PK, shipperID); o.ShipVia = found; } odb.Store(o); StepFinished(progress += 0.029); LogMessage("saved (" + o.OrderID.ToString() + ")", true); } odb.Commit(); LogMessage("Commit done, starting create index ...", false); odb.IndexManagerFor <Order>().AddUniqueIndexOn("Order_OrderID_PK_index", Order.PK); odb.Commit(); LogMessage(" index created.", true); long objectCount = NDbUtil.GetAllInstances <Order>(odb).Count; if (table1.Count == objectCount) { LogMessage(table1.Count + " objects saved", true); } else { LogMessage("Error: " + table1.Count + " rows retrieved but " + objectCount + " objects were saved", true); } LogMessage("Done with Orders" + Environment.NewLine, true); }
public virtual void T1estInsertSimpleObjectODB(int size) { OdbFileName = "perf-" + size + ".ndb"; TestSize = size; var doUpdate = true; var doDelete = true; var inMemory = true; // Deletes the database file DeleteBase(OdbFileName); long t1 = 0; long t2 = 0; long t3 = 0; long t4 = 0; long t5 = 0; long t6 = 0; long t7 = 0; long t77 = 0; long t8 = 0; IOdb odb = null; IObjectSet <SimpleObject> l = null; SimpleObject so = null; // Insert TEST_SIZE objects Println("Inserting " + TestSize + " objects"); t1 = OdbTime.GetCurrentTimeInMs(); odb = Open(OdbFileName); var fields = new[] { "name" }; odb.IndexManagerFor <SimpleObject>().AddUniqueIndexOn("index1", fields); for (var i = 0; i < TestSize; i++) { object o = GetSimpleObjectInstance(i); odb.Store(o); } // println("Cache="+Dummy.getEngine(odb).getSession().getCache().toString()); t2 = OdbTime.GetCurrentTimeInMs(); // Closes the database odb.Close(); // if(true)return; t3 = OdbTime.GetCurrentTimeInMs(); Println("Retrieving " + TestSize + " objects"); // Reopen the database odb = Open(OdbFileName); // Gets the TEST_SIZE objects t4 = OdbTime.GetCurrentTimeInMs(); IQuery q = null; for (var j = 0; j < TestSize; j++) { // println("Bonjour, comment allez vous?" + j); q = odb.Query <SimpleObject>(); q.Descend("name").Constrain((object)("Bonjour, comment allez vous?" + j)).Equal(); var objects = q.Execute <SimpleObject>(); so = objects.GetFirst(); if (!so.GetName().Equals("Bonjour, comment allez vous?" + j)) { throw new Exception("error while getting object : expected = " + "Bonjour, comment allez vous?" + j + " / actual = " + so.GetName()); } if (j % 1000 == 0) { Println("got " + j + " objects"); } } t5 = OdbTime.GetCurrentTimeInMs(); odb.Close(); odb = Open(OdbFileName); if (doUpdate) { Println("Updating " + TestSize + " objects"); so = null; var query = odb.Query <SimpleObject>(); l = query.Execute <SimpleObject>(inMemory); while (l.HasNext()) { so = l.Next(); so.SetName(so.GetName().ToUpper()); odb.Store(so); } } t6 = OdbTime.GetCurrentTimeInMs(); odb.Close(); // if(true)return; t7 = OdbTime.GetCurrentTimeInMs(); if (doDelete) { Println("Deleting " + TestSize + " objects"); odb = Open(OdbFileName); Println("After open - before delete"); var query = odb.Query <SimpleObject>(); l = query.Execute <SimpleObject>(inMemory); t77 = OdbTime.GetCurrentTimeInMs(); Println("After getting objects - before delete"); var i = 0; while (l.HasNext()) { so = l.Next(); if (!so.GetName().StartsWith("BONJOUR")) { throw new Exception("Update not ok for " + so.GetName()); } odb.Delete(so); if (i % 10000 == 0) { Println("s=" + i); } // println("Cache="+Dummy.getEngine(odb).getSession().getCache().toString()); i++; } odb.Close(); } t8 = OdbTime.GetCurrentTimeInMs(); // t4 2 times DisplayResult("ODB " + TestSize + " SimpleObject objects ", t1, t2, t4, t4, t5, t6, t7, t77, t8); }
private void CopyCustomerDemographics(IOdb odb) { //Processing CustomerDemographics LogMessage("Reading CustomerDemographics...", false); var adapter1 = new CustomerDemographicsTableAdapter(); var table1 = adapter1.GetData(); LogMessage("processing " + table1.Count.ToString() + " rows", true); foreach (var row in table1) { LogMessage("CustomerDemographics: " + row.CustomerTypeID + " ...", false); var cd = new CustomerDemographics { CustomerTypeID = row.CustomerTypeID, CustomerDesc = row.IsCustomerDescNull() ? null : row.CustomerDesc }; odb.Store(cd); LogMessage("saved", true); } odb.Commit(); LogMessage("Commit done, starting create index ...", false); odb.IndexManagerFor<CustomerDemographics>().AddUniqueIndexOn( "CustomerDemographics_CustomerTypeID_PK_index", CustomerDemographics.PK); odb.Commit(); LogMessage(" index created.", true); long objectCount = NDbUtil.GetAllInstances<CustomerDemographics>(odb).Count; if (table1.Count == objectCount) LogMessage(table1.Count + " objects saved", true); else LogMessage("Error: " + table1.Count + " rows retrieved but " + objectCount + " objects were saved", true); LogMessage("Done with CustomerDemographics" + Environment.NewLine, true); }