I have found what my problem is. It is to do with my servlet and NOT Xindice.
I call the method which adds the record to the database TWICE. So basically 
there are two records stored in the database.

Is there a way in which Xindice reports an exception if the same records is 
being added twice; i.e. primary key in relational databases?

Thanks for your help
Gul



Quoting Gul Akbar <[EMAIL PROTECTED]>:

> Todd,
> 
> I actually use a Java servlet to access the database. The code below is
> what I 
> used (I found this code on the website):
> 
> -----------------------------------
> Collection col = null;
> 
> try {
>  String driver = "org.apache.xindice.client.xmldb.DatabaseImpl";
>  Class c = Class.forName(driver);
> 
>  Database database = (Database) c.newInstance();
>  DatabaseManager.registerDatabase(database);
>  col = DatabaseManager.getCollection("xmldb:xindice:///db/phonebook");
> 
>  String xpath = "//phonebook[name='Tom' and number='07989270142']";
> 
> 
>  XPathQueryService service = (XPathQueryService) col.getService
> ("XPathQueryService", "1.0");
>  ResourceSet resultSet = service.query(xpath);
>  ResourceIterator results = resultSet.getIterator();
> 
>  while (results.hasMoreResources()) {
>    Resource res = results.nextResource();
>    String outcome = (String) res.getContent();
>    System.out.println(outcome)
>    }//while
> 
> }//try
> catch (XMLDBException e) {
>  System.err.println("XML:DB Exception occured " + e.getMessage());
>  }//catch
> catch (Exception ie) {
>  System.err.println("XML:DB Exception occured " + ie.getMessage());
>  }//catch
> 
> -----------------------------------
> 
> I use this in a class which my servlet calls. It works fine in some
> respect. I 
> can search for everything in the database, and it returns null if no
> records 
> have been found. However, using the OR operator, it returns the same
> record 
> twice.
> Can you see what the problem might be?
> 
> 
> Thanks
> Gul
> 
> 
> 
> 
> Quoting Todd Byrne <[EMAIL PROTECTED]>:
> 
> > Hi Gul,
> > 
> > I ran your query from the command line on your sample document in a
> > test
> > database and it only returned one record like I expected.  Are you
> > sure
> > this record isn't in more then one document or repeated in your
> > document?
> > 
> > here is the command I ran: xindice xpath -c /db/test -q
> > "//phonebook[name='Tom' or number='07989270142']"
> > 
> > and my output:
> > <?xml version="1.0"?>
> > <phonebook xmlns:src="http://xml.apache.org/xindice/Query";
> > src:col="/db/test" src:key="test">
> > <name>Tom</name>
> > <number>07989270142</number>
> > </phonebook>
> > 
> > I am using version 1.0 still.  
> > 
> > Maybe you can discribe your problem in a tad more depth and I would
> be
> > glad to continue to help.
> > 
> > Todd Byrne
> > 
> > On Thu, 2002-12-05 at 09:58, Gul Akbar wrote:
> > > Hello,
> > > 
> > > I have this problem with my XPath Query.
> > > 
> > > //phonebook[ name='Tom' or number='07989270142' ]
> > > 
> > > This returns the same record twice, and I know that there is only
> one
> > of those 
> > > records. The XML that is stored:
> > > 
> > > <phonebook>
> > > <name>Tom</name>
> > > <number>07989270142</number>
> > > </phonebook>
> > > 
> > > Can anyone please tell me why this record is being returned twice
> when
> > I use 
> > > the boolean operator "OR" (shown in the XPATH above).
> > > 
> > > Thanking you in advance
> > > Gul
> > > 
> > > -------------------------------------------------
> > > This mail sent through IMP: webmail.brad.ac.uk
> > 
> > 
> 
> 
> 
> 
> 
> 
> -------------------------------------------------
> This mail sent through IMP: webmail.brad.ac.uk
> 






-------------------------------------------------
This mail sent through IMP: webmail.brad.ac.uk

Reply via email to