public static void Main(string[] args) { string envdir = parseArguments(args); try { // Open an environment and manager using(Manager mgr = CreateManager(envdir)) { // Open a transactional container ContainerConfig containerconfig = new ContainerConfig(); containerconfig.Transactional = true; using(Container container = mgr.OpenContainer(null, theContainer, containerconfig)) { // Start a transaction using(Transaction txn = mgr.CreateTransaction()) { // Replace the index on the "product" node. replaceIndex(mgr, container, "", "product", "node-attribute-substring-string node-element-equality-string", txn); // Commit the index replacement txn.Commit(); } } } } catch(DbXmlException e) { System.Console.WriteLine("Error replacing index for container " + theContainer); System.Console.WriteLine(e.ToString()); } }
public static void Main(string[] args) { string envdir = parseArguments(args); try { // Open an environment and manager using(Manager mgr = CreateManager(envdir)) { // Open a transactional container ContainerConfig containerconfig = new ContainerConfig(); containerconfig.Transactional = true; using(Container container = mgr.OpenContainer(null, theContainer, containerconfig)) { // Start a transaction using(Transaction txn = mgr.CreateTransaction()) { // Create a context and declare the namespaces using(QueryContext context = mgr.CreateQueryContext()) { context.SetNamespace("fruits", "http://groceryItem.dbxml/fruits"); context.SetNamespace("vegetables", "http://groceryItem.dbxml/vegetables"); context.SetNamespace("desserts", "http://groceryItem.dbxml/desserts"); // Modify the document that describes "Zapote Blanco" (a fruit) string query = "collection(\"" + theContainer + "\")/fruits:item/product[. = 'Zapote Blanco']"; doModify(mgr, container, context, query, txn); System.Console.WriteLine("If committed, this program will add a new element each time it is run."); System.Console.WriteLine("Press 'c' to commit this change:"); int c = System.Console.Read(); if (c == (int)'c' || c == (int)'C') txn.Commit(); else txn.Abort(); } } } } } catch(DbXmlException e) { System.Console.WriteLine("Error performing document modification against " + theContainer); System.Console.WriteLine(e.ToString()); } }
public static void Main(string[] args) { string envdir = parseArguments(args); try { // Open an environment and manager using(Manager mgr = CreateManager(envdir)) { // Open a transactional container ContainerConfig containerconfig = new ContainerConfig(); containerconfig.Transactional = true; using(Container container = mgr.OpenContainer(null, theContainer, containerconfig)) { // Create a context and declare the namespaces using(QueryContext context = mgr.CreateQueryContext()) { context.SetNamespace("fruits", "http://groceryItem.dbxml/fruits"); context.SetNamespace("vegetables", "http://groceryItem.dbxml/vegetables"); context.SetNamespace("desserts", "http://groceryItem.dbxml/desserts"); // Query for documents using their document names. // The name is stored as meta data on the document, using the // namespace "http://www.sleepycat.com/2002/dbxml" and the name // "name". // Notice that you do NOT have to declare the dbxml namespace in // the QueryContext used for this query. Also, each document name // was set by exampleLoadContainer when the document was loaded into // the Container. doContextQuery(mgr, "collection(\"" + theContainer + "\")[dbxml:metadata('dbxml:name')='ZuluNut.xml']", context); doContextQuery(mgr, "collection(\"" + theContainer + "\")[dbxml:metadata('dbxml:name')='TrifleOrange.xml']", context); doContextQuery(mgr, "collection(\"" + theContainer + "\")[dbxml:metadata('dbxml:name')='TriCountyProduce.xml']", context); doContextQuery(mgr, "collection(\"" + theContainer + "\")[/fruits:item/product=\"Zulu Nut\"]", context); } } } } catch(DbXmlException e) { System.Console.WriteLine("Error performing query against " + theContainer); System.Console.WriteLine(e.ToString()); } }
public static void Main(string[] args) { string envdir = parseArguments(args); try { // Open an environment and manager using(Manager mgr = CreateManager(envdir)) { // Open a transactional container ContainerConfig containerconfig = new ContainerConfig(); containerconfig.Transactional = true; using(Container container = mgr.OpenContainer(null, theContainer, containerconfig)) { // Start a transaction using(Transaction txn = mgr.CreateTransaction()) { // Create an update context using(UpdateContext uc = mgr.CreateUpdateContext()) { // Create string contents for documents. string document1 = "<aDoc><title>doc1</title><color>green</color></aDoc>"; string document2 = "<aDoc><title>doc2</title><color>yellow</color></aDoc>"; // Put the document, asking DB XML to generate a name DocumentConfig docconfig = new DocumentConfig(); docconfig.GenerateName = true; container.PutDocument(txn, "", document1, uc, docconfig); // Do it again for the second document container.PutDocument(txn, "", document2, uc, docconfig); // Commit the writes. This causes the container write operations // to be saved to the container. txn.Commit(); } } } } } catch(DbXmlException e) { System.Console.WriteLine("Error performing document add against " + theContainer); System.Console.WriteLine(e.ToString()); } }
public static void Main(string[] args) { string envdir = parseArguments(args); try { // Open an environment and manager using(Manager mgr = CreateManager(envdir)) { // Open a transactional container ContainerConfig containerconfig = new ContainerConfig(); containerconfig.Transactional = true; using(Container container = mgr.OpenContainer(null, theContainer, containerconfig)) { // Start a transaction using(Transaction txn = mgr.CreateTransaction()) { // Create a context and declare the namespaces using(QueryContext context = mgr.CreateQueryContext()) { context.SetNamespace("fruits", "http://groceryItem.dbxml/fruits"); context.SetNamespace("vegetables", "http://groceryItem.dbxml/vegetables"); context.SetNamespace("desserts", "http://groceryItem.dbxml/desserts"); // Delete the document that describes Mabolo (a fruit) string query = "collection(\"" + theContainer + "\")/fruits:item[product = 'Mabolo']"; // If doDeleteDocument throws an exception then the using block // will call Dispose() on the Transaction, which will cause it // to abort itself. doDeleteDocument(mgr, container, query, context, txn); txn.Commit(); confirmDelete(mgr, query, context); } } } } } catch(DbXmlException e) { System.Console.WriteLine("Error performing document delete against " + theContainer); System.Console.WriteLine(e.ToString()); } }
public static void Main(string[] args) { string envdir = parseArguments(args); try { // Open an environment and manager using(Manager mgr = CreateManager(envdir)) { // Open a transactional container ContainerConfig containerconfig = new ContainerConfig(); containerconfig.Transactional = true; using(Container container = mgr.OpenContainer(null, theContainer, containerconfig)) { // Start a transaction using(Transaction txn = mgr.CreateTransaction()) { // Delete an string equality index for the "product" element node. deleteIndex(mgr, container, "", "product", "node-element-equality-string", txn); // Commit the index delete txn.Commit(); } // Perform the deletes in two different transactions for // no particular reason using(Transaction txn = mgr.CreateTransaction()) { // Delete an edge presence index for the product node deleteIndex(mgr, container, "", "product", "edge-element-presence-none", txn); // Commit the index delete txn.Commit(); } } } } catch(DbXmlException e) { System.Console.WriteLine("Error deleting indexes from container " + theContainer); System.Console.WriteLine(e.ToString()); } }
public static void Main(string[] args) { string envdir = parseArguments(args); try { // Open an environment and manager using(Manager mgr = CreateManager(envdir)) { // Open a transactional container ContainerConfig containerconfig = new ContainerConfig(); containerconfig.Transactional = true; using(Container container = mgr.OpenContainer(null, theContainer, containerconfig)) { // Start a transaction using(Transaction txn = mgr.CreateTransaction()) { // Create a context and declare the namespaces using(QueryContext context = mgr.CreateQueryContext()) { context.SetNamespace("fruits", "http://groceryItem.dbxml/fruits"); context.SetNamespace("vegetables", "http://groceryItem.dbxml/vegetables"); context.SetNamespace("desserts", "http://groceryItem.dbxml/desserts"); // update the document that describes Zapote Blanco (a fruit) string query = "collection(\"" + theContainer + "\")/fruits:item/product[text() = 'Zapote Blanco']"; doUpdateDocument(mgr, container, query, context, txn); // Commit the writes. This causes the container write operations // to be saved to the container. txn.Commit(); } } } } } catch(DbXmlException e) { System.Console.WriteLine("Error performing document update against " + theContainer); System.Console.WriteLine(e.ToString()); } }
public static void LoadFiles(Manager mgr, string containerName, FileInfo[] files) { // Open a transactional container ContainerConfig containerconfig = new ContainerConfig(); containerconfig.Create = true; containerconfig.Transactional = true; using(Container container = mgr.OpenContainer(null, containerName, containerconfig)) { // Create an update context using(UpdateContext uc = mgr.CreateUpdateContext()) { // Start a transaction using(Transaction txn = mgr.CreateTransaction()) { DocumentConfig docconfig = new DocumentConfig(); foreach(FileInfo file in files) { using(FileStream stream = file.OpenRead()) { // Create a document using(Document doc = mgr.CreateDocument()) { doc.Name = file.Name; doc.StreamContent = mgr.CreateInputStream(stream); doc.SetMetaData(new MetaData("http://dbxmlExamples/timestamp", "timeStamp", new Value(System.DateTime.Now))); container.PutDocument(txn, doc, uc, docconfig); System.Console.WriteLine("Added " + file.Name + " to container " + containerName); } } } // Commit the index adds txn.Commit(); } } } }
public static void Main(string[] args) { string envdir = parseArguments(args); try { // Open an environment and manager using(Manager mgr = CreateManager(envdir)) { // Open a transactional container ContainerConfig containerconfig = new ContainerConfig(); containerconfig.Transactional = true; using(Container container = mgr.OpenContainer(null, theContainer, containerconfig)) { // Start a transaction using(Transaction txn = mgr.CreateTransaction()) { // Create an update context using(UpdateContext uc = mgr.CreateUpdateContext()) { // Add an string equality index for the "product" element node. addIndex(container, "", "product", "node-element-equality-string", txn, uc); // Add an edge presence index for the product node addIndex(container, "", "product", "edge-element-presence", txn, uc); // Commit the index adds txn.Commit(); } } } } } catch(DbXmlException e) { System.Console.WriteLine("Error adding index to container " + theContainer); System.Console.WriteLine(e.ToString()); } }
public static void Main(string[] args) { string envdir = parseArguments(args); try { // Open an environment and manager using(Manager mgr = CreateManager(envdir)) { // Open a transactional container ContainerConfig containerconfig = new ContainerConfig(); containerconfig.Transactional = true; using(Container container = mgr.OpenContainer(null, theContainer, containerconfig)) { // Create a context and declare the namespaces using(QueryContext context = mgr.CreateQueryContext()) { context.SetNamespace("fruits", "http://groceryItem.dbxml/fruits"); context.SetNamespace("vegetables", "http://groceryItem.dbxml/vegetables"); context.SetNamespace("desserts", "http://groceryItem.dbxml/desserts"); // Get details on Zulu Nuts getDetails(mgr, "collection(\"" + theContainer + "\")/fruits:item/product[text() = 'Zulu Nut']", context); // Get details on all vegetables that start with 'A' getDetails(mgr, "collection(\"" + theContainer + "\")/vegetables:item/product[starts-with(text(),'A')]", context); } } } } catch(DbXmlException e) { System.Console.WriteLine("Error performing query against " + theContainer); System.Console.WriteLine(e.ToString()); } }
public static void Main(string[] args) { string envdir = parseArguments(args); try { // Open an environment and manager using(Manager mgr = CreateManager(envdir)) { // Open a transactional container ContainerConfig containerconfig = new ContainerConfig(); containerconfig.Transactional = true; using(Container container = mgr.OpenContainer(null, theContainer, containerconfig)) { // Create a context and declare the namespaces using(QueryContext context = mgr.CreateQueryContext()) { context.SetNamespace("fruits", "http://groceryItem.dbxml/fruits"); context.SetNamespace("vegetables", "http://groceryItem.dbxml/vegetables"); context.SetNamespace("desserts", "http://groceryItem.dbxml/desserts"); // Set a variable context.SetVariableValue("aDessert", new Value("Blueberry Boy Bait")); // Perform the queries // Find all the Vendor documents in the database. Vendor documents do // not use namespaces, so this query returns documents. doContextQuery(mgr, "collection(\"" + theContainer + "\")/vendor", context); // Find the product document for "Lemon Grass". // This query returns no documents // because a namespace prefix is not identified for the 'item' node. doContextQuery(mgr, "collection(\"" + theContainer + "\")/item/product[.=\"Lemon Grass\"]", context); // Find the product document for "Lemon Grass" using the namespace // prefix 'fruits'. This query successfully returns a document. doContextQuery(mgr, "collection(\"" + theContainer + "\")/fruits:item/product[.=\"Lemon Grass\"]", context); // Find all the vegetables doContextQuery(mgr, "collection(\"" + theContainer + "\")/vegetables:item", context); // Find the dessert called Blueberry Boy Bait. // Note the use of a variable. doContextQuery(mgr, "collection(\"" + theContainer + "\")/desserts:item/product[.=$aDessert]", context); } } } } catch(DbXmlException e) { System.Console.WriteLine("Error performing query against " + theContainer); System.Console.WriteLine(e.ToString()); } }
public Container OpenContainer(Transaction txn, string name, ContainerConfig config) { return Container.Create(this.mgr_.openContainer(Transaction.ToInternal(txn), name, config.Flags)); }
public Container CreateContainer(Transaction txn, string name, ContainerConfig config) { return Container.Create(this.mgr_.createContainer(Transaction.ToInternal(txn), name, config.Flags, config.RawType, config.Mode)); }
public Container CreateContainer(Transaction txn, string name, ContainerConfig config) { return(Container.Create(this.mgr_.createContainer(Transaction.ToInternal(txn), name, config.Flags, config.RawType, config.Mode))); }
public Container OpenContainer(Transaction txn, string name, ContainerConfig config) { return(Container.Create(this.mgr_.openContainer(Transaction.ToInternal(txn), name, config.Flags))); }