Recently Viewed...
DNN Modules
SnowCovered Top Sellers

Ultra Media Gallery 5.3
Ultra Media Gallery is the most popular photo gallery and media gallery module for DotNetNuke, the major purpose of this module is to allow you create unlimited pictures and medias to your gallery and organize them by albums, your albums and medias are browsed in flash interface.

Flex By DrNuke
The Flex skins are professionally designed, coded and packaged by a team of DotNetNuke experts. Available in 8 great colours, each with 15 banner images, 2 menu types and a choice of 3 background styles. The entire pack features a total of 2448 skins!

Ultra Video Gallery 2.3
Ultra Video Gallery is a brother product of Ultra Media Gallery, The major purpose of this product is to provide an easy way to add videos in various formats to your website by and play them in a unique flash gallery.

Open-DocumentLibrary v3.0
Powerful, Ajax Enabled, Easy to Use. Document Management has never been better. Open-DocumentLibrary allows DotNetNuke users to share and manage documents in a flexible, intelligent way, offering granular control over Folder and Document access.

Engage: Publish 5.1
Content Workflow + Versioning + Categorization + Multiple Display Options = Truly Advanced DotNetNuke Content Management (Requires DNN 4.5.1 or later)

XMod 5.1
Version 5 of the perennial best-selling tool for creating data-based solutions in DNN without custom programming. This version focuses on greater flexibility, expandability, and ease-of-use.

Events Calendar and Registration 2.1.8 for DNN4.xx
One stop solution for events calendar and events registration! Demo site available for free trial.

Form Master 1.6 For DNN 4
Form Master 1.6 improves on the success of version 1.5 with new features in Function, and Presentation, while maintaining the Intuitive User Interface. Form Master 1.6 delivers visual form design where input fields can easily be created, modified, and moved.

DNNMasters SEO Suite Enterprise w/Source
If you want better Search Engine ranking you need KeepAlive, URL Rewrite, Custom 404 error, Custom Redirect, Friendly URL's, Sitemap, Google Sitemap.DNNMasters SEO Suite delivers all of it and more!

CATALooK.netStore Pro & Booking Tools w/source DNN4
Powerful multilingual, search engine optimized ecommerce store and renting/letting system including a concept utilizing many business models in one application integrates:Catalog,Media gallery,Configurator,Packages,Data entry forms,Subscriptions,Recurring billing,40+ CC Gateways,UPS and USPS support
    |   Register   |   Saturday, August 30, 2008   
Data Springs Product Forums...
Subject: Major search bug
Prev Next
You are not authorized to post a reply.

Author Messages
Kerry
Posts:17
wading in the water
wading in the water

01/29/2008 7:40 AM  

Hello

 

I only bought this product today and have discovered a critical bug that makes it practically unuseable.

 

The problem is the way you handle your search criteria, in that you force the criteria to be included even if the user enters no search value for that criteria line. Eg. [LastName] like 'Reid' and [HomeAddress] like '%%' - I only entered a value of Reid for lastname, nothing in HomeAddress.

 

If you create a custom field and the user does not fill in that field, DNN does not create an entry in the UserProfile table for that property.

 

By forcing your search criteria to include all fields, you are forcing the query to look for a value of [HomeAddress] like '%%' and because the property doesn't exist at all on some records they are not returned, even when [LastName] like 'Reid' is true.

 

My suggestion is to simply not apply the criteria line to the query if it has not be populated with a search value.

 

Hope all that makes sense!

 

Moving on though, could you please give me an idea of how long this will take to fix, because I am going live in a week and whilst I think this product is great it is unuseable in it's current form and I will need to consider other options and a refund if you are unable to rectify the problem in time.

 

Thanks for your time.

 

Regards

 

Kerry Reid

Jan Alwin
Posts:18
wading in the water
wading in the water

01/29/2008 8:44 AM  
This seems to be the same bug I found

See: http://www.datasprings.com/Products/ProductForums/tabid/727/forumid/15/postid/2963/view/topic/language/en-US/Default.aspx

Not applying the criterea line to the query if it's empty won't solve the problem if you search for field x doesn't contain y. Now you want to find users who haven't filled in the profile field y. Which again doesn't exist in the database

I think the problem can be solved by building a temporary table with all the properties in it. If a property for a user is missing an empty field must be created.

It's difficult to explain....


Regards,


Jan Alwin






Kerry
Posts:17
wading in the water
wading in the water

01/29/2008 11:54 AM  

Yes it would solve the problem, I think the only other thing you would have to change is the "is empty" operator.

 

You have to make the "is empty" operator search for field = "%%" and IsNull(Field) .

 

The fact is that in it's current presentation, unless you use only one search field or you make your profile data entry and all custom fields in it mandatory, the search results returned will be wrong and not include all the correct records.

 

Edit: Just reread your reply, your 1st example was Field Does not Contain "Y", would work because if the field record does not exist it can't possibly contain "Y", your 2nd example was what I was referring to above about the " is empty" operator.

 

Edit2: hehe, I should read everything before I answer, what you are talking about with your temporary table, is called a left outer join in a db query, where it creates null records in the right hand table corresponding to entries in the left hand table. There is more to it that that though, look online for a better explanation.

Chad
Posts:1863
river guide
river guide

01/30/2008 12:13 AM  
Hi guys...

Well we are actually changing the way this is coded in the next version (this is after the patch for the location on field criteria though which is a seperate issue). Even with the updates though I will still need to review this to see if its going to fix the problem with the filter. We will be creating a view/stored procedure similar to the same right outer joins are we are using in the recent Dynamic Forms query that we recently posted. This will also speed up the process for larger implementations as well as improve searching...

On this issue though...

In your example I am assuming 'HomeAddress' is a search field setup correct? So the search field is setup but the user does not enter anything. Because of this it should return (unless I am wrong) the results for 'Reid' as the other search term but its causing a problem because the user never entered a home address and therefore its null? Hmmm.... was the HomeAddress field added after Reid updated their profile? I am wondering if a simple work around would be to update the database one time if a new field is added, otherwise you might end up getting results you wouldn't want if we changed this. Or... If nothing is entered possibly skip the search but if we implemented this it should be an option because not all users would want this (some users might want it to just be contains?).

Also, if you are not satisified for any reason (and you didn't purchase a package with source code) we can quickly issue you a refund, just let me know.


-Chad


Kerry
Posts:17
wading in the water
wading in the water

01/30/2008 4:50 AM  

Hi Chad

 

First off, for the moment at least, I don't want a refund, because I do think this is a great product with some nice features. It just needs a quick fix.

 

 

I'll answer your questions first:

 

 

In your example I am assuming 'HomeAddress' is a search field setup correct?  Correct, there are 2 fields set up, surname and homeaddress, surname is a standard field and homeaddress is a custom profile field.

 

 

So the search field is setup but the user does not enter anything. Because of this it should return (unless I am wrong) the results for 'Reid' as the other search term but its causing a problem because the user never entered a home address and therefore its null? Correct, it is null because DNN does not create the field record for an empty field. And you have just answered your own question, the fact that it is null, not empty is the problem.

 

 

Your query that is created is this: Surname = 'Reid' and HomeAddress = '' whereas what should be created is Surname = 'Reid' and (HomeAddress = '' or IsNull(HomeAddress), obviously thats not the full query with left joins but if you are going to include search terms that have no value you should allow for nulls.

 

 

Hmmm.... was the HomeAddress field added after Reid updated their profile? I am wondering if a simple work around would be to update the database one time if a new field is added. No, it is per user, not per field which would mean you would have to run an append query to add null fields as "" to the database whenever a new user is added. Which is also bad because it would waste space in large databases.

 

 

otherwise you might end up getting results you wouldn't want if we changed this. Or... If nothing is entered possibly skip the search but if we implemented this it should be an option because not all users would want this (some users might want it to just be contains?). hehe, I only want to use contains and whilst I used eqauls in my example about I only ever tested with contains, the fact is that even if you say HomeAddress contains '%%' it still won't return records with nulls because a null can't contain %%

Chad
Posts:1863
river guide
river guide

01/30/2008 1:19 PM  
Ok, I am going to do some testing with this. First I just want to make sure its coming in as null if you leave the field blank within the core so that I can confirm this on our installation etc... Second, if this is the case we will research a fix but need to test against several scenerios (this filter and search criteria filter is very touchy so the moment we change this for a certain field type it might not always be happy in other implementations or situation )

So, this would only be added if the user entered nothing right? Because otherwise if they entered "1234 ABC Street" then the filter would look like:

AND (HomeAddress = '1234 ABC Street' or IsNull(HomeAddress)) which would then always return the table row regardless of what the user entered. So this would need to be in place only when the user filled in nothing correct?

Kerry
Posts:17
wading in the water
wading in the water

02/06/2008 2:41 AM  

Hi Chad

 

I was going to give you a whole example to follow but I'm just too busy at the moment, I gather you have the basic idea of what is wrong though from your last post.

 

All I need to know now really is that you agree there is a problem and that you are working on getting it fixed.

 

If you need more info from me then let me know, if I'm honest I would prefer a phone conversation because I can then explain far better than I would on here.

 

Regards

Kerry

Kerry
Posts:17
wading in the water
wading in the water

02/13/2008 2:48 AM  

To add to this, the same problem is affecting the filter rules in the settings, whereby if you set a rule and they entry for that person is null they are left out.

 

Aside from that, has any progress been made on this?

Eric
Posts:10
wading in the water
wading in the water

02/21/2008 11:24 AM  

I have the same problem, if you check the following example:

http://bnimexico-com.web12.winsvr.net/Directorio/tabid/60/Default.aspx

and click the link to search for records without including any values for the search fields, only 3 records appear, when in fact I have 6 records that should meet the criteria, but 3 of these users did not include any values for the field KEYWORDS therefore the field is NULL. The query is asking if the string contains a blank space it should therefore ask "is keyword a blankspace or null" AND the rest of the conditions.

Regards,

Eric

Chad
Posts:1863
river guide
river guide

02/24/2008 7:14 PM  

Hi guys... Ok, I am proud to report that this issue has been fixed. From now on when you search with the contains clause and leave the field blank it will check both for '%%' and also null values. We should have this patch released as version 2.3 within the next week on Snowcovered. Thanks again for bringing this to our attention!

 

Also... We are only about 2 weeks away from the 2.4 release of Dynamic User Directory. This version has already been posted as a beta on Beta Springs and is also demonstrated on Data Springs web site on the main user directory page and also the demonstration pages (example one, example two).

 

The major enhancements include:

 

  • Significant performance improvements related to retrieving the results. We have been running benchmarks between the previous version and are updated scripts for pulling in the data are much faster. Previouslly the data was generated primarily via code and the new method involves very efficient SQL queries, stored procedures, and views. Simply put - its much faster.
  • Ability to allow the user to change the page size; also define initial page size, which page size options are avaliable to the user and if the page size control is aligned to the left or the right of the page
  • New Maximum Number of results to retrieve - another performance option which will only render the first 'x' number of results to the module. This can be useful if you have a large membership database and want to force the user to search to render fewer records.
  • New option to now display the page numbers on the top, bottom, or both the top and the bottom of the results
  • New search localization features to allow the ability to localize search conditions (such as begins with, ends with, etc...)
  • New search localization features to allow the ability to localize search labels and fields
  • Optionally display a results count to the user, showcasing the number of total results displayed along with the listings within that page and current page number etc...

 

 

So... In summary... 2.3 includes all known patches and fixes including the issue brought up in this thread related to null values and the user searching using the 'contains' clause. Version 2.4 will be released within the coming weeks pending more testing and updated documentation.

 

Thanks again guys!

 

-Chad

 

 

 

 

 

Jan Alwin
Posts:18
wading in the water
wading in the water

03/10/2008 7:31 AM  
Have you released 2.3 and/or 2.4 already. it doesn't show up on my patches screen in snowcovered and I can only find 2.2 if I search for dynamic User Directory.

Or do I just have to wait a little longer?

Regards,

Jan Alwin
Chad
Posts:1863
river guide
river guide

03/10/2008 4:21 PM  
Hi. This was released today... If you already purchased the collection you should find it under patches / fixes or if you purchased Dynamic User Directory 2.2 within the last month you should also find it there as well.

You are not authorized to post a reply.



ActiveForums 3.7

Copyright 2005 - 2008 by Data Springs, Inc.
Terms Of Use | Privacy Statement