Esempio n. 1
0
    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());
        }
    }
Esempio n. 2
0
    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();
                }
            }
        }
    }
Esempio n. 3
0
 public Results Query(Transaction txn, string query, QueryContext context, DocumentConfig config)
 {
     return Results.Create(this.mgr_.query(Transaction.ToInternal(txn), query, QueryContext.ToInternal(context), config.Flags));
 }
Esempio n. 4
0
 public string PutDocument(Transaction txn, string name, string contents, UpdateContext context, DocumentConfig config)
 {
     return this.cont_.putDocument(Transaction.ToInternal(txn), name, contents, UpdateContext.ToInternal(context), config.Flags);
 }
Esempio n. 5
0
 public void PutDocument(Transaction txn, Document document, UpdateContext context, DocumentConfig config)
 {
     this.cont_.putDocument(Transaction.ToInternal(txn), Document.ToInternal(document), UpdateContext.ToInternal(context), config.Flags);
 }
Esempio n. 6
0
 public string PutDocument(Transaction txn, string name, InputStream input, UpdateContext context, DocumentConfig config)
 {
     using (input)
     {
         input.Internal.disownCPtr();
         return this.cont_.putDocument(Transaction.ToInternal(txn), name, input.Internal, UpdateContext.ToInternal(context), config.Flags);
     }
 }
Esempio n. 7
0
 public Results LookupIndex(Transaction txn, QueryContext context, IndexSpecification.Entry entry, string parent_uri, string parent_name, Value value, DocumentConfig config)
 {
     return Results.Create(this.cont_.lookupIndex(Transaction.ToInternal(txn), QueryContext.ToInternal(context), entry.URI, entry.Name, parent_uri, parent_name, entry.Index, Value.ToInternal(value), config.Flags));
 }
Esempio n. 8
0
 public Document GetDocument(Transaction txn, string name, DocumentConfig config)
 {
     return Document.Create(this.cont_.getDocument(Transaction.ToInternal(txn), name, config.Flags));
 }
Esempio n. 9
0
 public Results GetAllDocuments(Transaction txn, DocumentConfig config)
 {
     return Results.Create(this.cont_.getAllDocuments(Transaction.ToInternal(txn), config.Flags));
 }
Esempio n. 10
0
 public Results Execute(Transaction txn, Value contextItem, QueryContext context, DocumentConfig config)
 {
     return(Results.Create(this.qe_.execute(Transaction.ToInternal(txn), Value.ToInternal(contextItem), QueryContext.ToInternal(context), config.Flags)));
 }
Esempio n. 11
0
 public Results Execute(Transaction txn, Value contextItem, QueryContext context, DocumentConfig config)
 {
     return Results.Create(this.qe_.execute(Transaction.ToInternal(txn), Value.ToInternal(contextItem), QueryContext.ToInternal(context), config.Flags));
 }