(For those not brought up on Clint Eastwood movies, I stole this title from one of his spaghetti westerns).
I am currently evaluating using Servoy for a wholesale lumber yard with very specific and exacting requirements for an online customer service and ordering system.
The GOOD: I probably do not have to mention the good features. The list is very long with some of my favorites, being the speed of development, the rich UI, the novel use of tab controls and portals, the ease of deploying over the web, database loose coupling and of course, the friendly, helpful Servoy community.
The BAD: I am sorry, but by limiting my forms to existing database tables is TOO restrictive. Some of my requirements are a piece of cake to write in SQL
Show a unique list of all items ever ordered (Select Distinct)
Show the result of a query that joins 5-6 tables that takes < 1 second to process via SQL 2Ks query analyzer and take over 30 seconds in Servoy)
Inserting rows into multiple tables depending on the option the user selects.
And there are MANY sophisticated queries (nested queries, etc) that seem to be impossible to display if Servoy.
Yes, I know I about the GetDataSetByQuery and some of the other functions, but they seem like a kludge when working with forms, (especially, a list or table view).
The UGLY: One of my powerbooks takes almost 5 minutes to load the developer. My other powerbook takes about 30 seconds. (I have re-installed Servoy MANY times with no help). Servoy starts very fast on my Thinkpad, but the screen painting is sporadic and changes when I maximize the screen.
I have a couple of other products I am evaluating (ColdFusion, Magic, Intraweb) and looking at the featureset, I really want to like and use Servoy, but while the message of being able to access SQL tables with no SQL knowledge is a powerful message for end users, I am finding it too limiting for those of us who know and use SQL.
blomasky:
The BAD: I am sorry, but by limiting my forms to existing database tables is TOO restrictive. Some of my requirements are a piece of cake to write in SQL
Show a unique list of all items ever ordered (Select Distinct)
Show the result of a query that joins 5-6 tables that takes < 1 second to process via SQL 2Ks query analyzer and take over 30 seconds in Servoy)
Inserting rows into multiple tables depending on the option the user selects.
And there are MANY sophisticated queries (nested queries, etc) that seem to be impossible to display if Servoy.
Yes, I know I about the GetDataSetByQuery and some of the other functions, but they seem like a kludge when working with forms, (especially, a list or table view).
The four points you mention can indeed be achieved with getDataSetByQuery. Additionally we are more than open to make them even easier in Servoy but we need some input on how you would envision that to work, you know quite good how servoy works if I read your post well so perhaps you can enlighten us to how you would like to see these features implemented in Servoy. Having personally built quite a few systems that implement the four above I agree it would be great if Servoy can make it even easier but the question is how do we make that work. What functions would you expect? We do have some ideas that we are experimenting with for a next release but we love to get input from actual users on this.
blomasky:
The UGLY: One of my powerbooks takes almost 5 minutes to load the developer. My other powerbook takes about 30 seconds. (I have re-installed Servoy MANY times with no help). Servoy starts very fast on my Thinkpad, but the screen painting is sporadic and changes when I maximize the screen.
Servoy Developer indeed launches slow on a powerbook, this is due to two problems:
Java is slower on a mac than windows
powerbooks are quite behind on performance, being a daily user of one I once in a while consider throwing it out of the window as I watch Word, dreamweaver or photoshop launch
Can you describe more in detail what you mean by sporadic painting on your thinkpad?
blomasky:
I have a couple of other products I am evaluating (ColdFusion, Magic, Intraweb) and looking at the featureset, I really want to like and use Servoy, but while the message of being able to access SQL tables with no SQL knowledge is a powerful message for end users, I am finding it too limiting for those of us who know and use SQL.
Knowing the alternatives you mention I’m now confident you’ll choose for Servoy, it will save you many headaches, time and money in both development and deployment compared to the products you mention.
You mention that the 4 points I mention can be achieved with getDataSetByQuery. Can you please explain how to use that to create a table or list view please. Also, I did not think you can insert records with the getDataSet method. You asked for suggestions as to how to make life easier and my answer(s) are:
1). First, start with VIEW support. even if it is read only (which many of them are), that will help about 90%
2). in the data providers, there should be an easy way to create a table based on a query, sort of a virtual table
You mention that the powerbook is slower, but I have 2 of them, 1 takes < 1 min, and the other > 4 min (and my faster, newer powerbook with twice the ram is the SLOWER one!)
On my thinkpad, the background is splotchy, if I have a form with a pale yellow background, about 20% will be rendered white, when I maximize then minimize the screen, it usually fixes itself.
While I have you, a few other questions:
1). Can I use a relationship in the AddFoundSetFilterParam?
i.e. (‘source_table_to_child_table.field’,‘=’,‘1’)
2). Is addFoundSet faster than find(); field=val;, search(); ?
3). When I sort in DESCENDING order, and the display is a list view, the cursor is on the BOTTOM record. How can I move it to the 1st Record?
When you start Developer, you also start Servoy Server and Sybase ASA…
You can eliminate some of the delay by starting Servoy Server and the database holding your repository on startup of your machine.
I use the following setup:
Powerbook 1.5Ghz, 1GB Ram. Mac OS 10.4.1.
Repository and data in Postgresql 8.0 locally
Servoy Developer 2.2
Servoy Server and Postgresql start on startup of PowerBook.
Time to open Servoy Developer and display dialog to open project dialog box: 36 seconds.
Opens my project 12 seconds.
Servoy is incredibly flexible: You may also set Servoy up so you connect your Powerbooks to Servoy Server and repository running on your SQL Server box.
blomasky:
You mention that the 4 points I mention can be achieved with getDataSetByQuery. Can you please explain how to use that to create a table or list view please. Also, I did not think you can insert records with the getDataSet method. You asked for suggestions as to how to make life easier and my answer(s) are:
1). First, start with VIEW support. even if it is read only (which many of them are), that will help about 90%
2). in the data providers, there should be an easy way to create a table based on a query, sort of a virtual table
We are investigating both options for the next version of Servoy. The main challenge will then be: how to update.
blomasky:
You mention that the powerbook is slower, but I have 2 of them, 1 takes < 1 min, and the other > 4 min (and my faster, newer powerbook with twice the ram is the SLOWER one!)
Wouldn’t that make you suspect it is a problem that has nothing to do with Servoy? We don’t have a function built in servoy that will perform wait()'s depending on the model of powerbook you run.
blomasky:
On my thinkpad, the background is splotchy, if I have a form with a pale yellow background, about 20% will be rendered white, when I maximize then minimize the screen, it usually fixes itself.
Can you try upgrading to the latest Java and video drivers?
jaleman:
powerbooks are quite behind on performance, being a daily user of one I once in a while consider throwing it out of the window as I watch Word, dreamweaver or photoshop launch
Sounds like a good case of eRage, but not the best:
<<The list of the strangest ways data was lost was compiled by recovery experts Kroll Ontrack.
Taking the number one spot is the US man who was so frustrated with his laptop, he shot it in a fit of e-rage, then realised there were important files he needed.>>
“Wouldn’t that make you suspect it is a problem that has nothing to do with Servoy? We don’t have a function built in servoy that will perform wait()'s depending on the model of powerbook you run.”
Jan, that is NOT very helpful. I was hoping you could tell me what to remove / reinstall / to fix my problem. Everything else on this computer is fast. (btw, it loads WORD as fast on my powerbook as it does on my thinkpad!)
Also, you did not answer my question about how to use a query in a list / table view.
Have you tried running Console (from memory its in Applications/Utilities) whilst Servoy is starting. Comparing the output from the two laptops may point you in the right direction.
Also check if your slow system has more than one servoy.properties file - could be confusing it.
When you mentioned list views of data - did you mean creating a virual view from a SQL join query ?
If so, then one example is as follows:
/here we are running a SQL query/
query = “select category, subcategory from categories order by category, cmainsub, subcategory”
//set the dataset to run the query and return the results
var dataset = databaseManager.getDataSetByQuery(controller.getServerName(), query, null, 1000);
//set the dataprovider named ‘html’ to how you want it, plus the retrieved data
html = ‘’+
‘’+
‘’+
‘.normal’+
‘{’+
’ font-family: Arial, Helvetica, sans-serif;‘+
’ font-size: 11pt;’+
‘}’+
‘’+
‘’+
‘
’+dataset.getAsHTML()+‘
’;
//make sure your dataprovider is set to Display type HTML_AREA
You know that Servoy does not currently support views and the query used above is straightforward.
However you can still query and return your join based data and display it inside a text field which has been formatted as type ‘HTML_AREA’ and will render it as such.
With a little work the html that you produce can be made very flexible and can be made clickable etc where necessary by adding further tags to it.
Using the above as a base just try it in basic form first and then make your queries a little more complex and see if it can work for you.
There is also a tutorial on the Servoy website which Bob Cusick has done about SQL queries in two parts which may take you a lot further forward in a shorter time frame
Uninstalled , removed all copies of servoy.properties, rebooted, re-installed, when I run Servoy and look at console I see the following:
Starting Servoy from /Applications/Servoy
Servoy R2 2.2 build-328 on Mac OS X using Java 1.4.2_07
Looking for servoy.properties on /Users/bruce/servoy.properties
Loading servoy.properties from /Applications/Servoy/servoy.properties
Loading - Done
Jun 24, 2005 3:11:34 PM net.sf.hibernate.dialect.Dialect
INFO: Using dialect: net.sf.hibernate.dialect.SybaseAnywhereDialect
Using RMI registry on port 1099
2005-06-24 15:12:27.952 SyncServer[1330] A Sync Server is already running on this computer, exiting process.
Jun 24, 2005 3:12:53 PM net.sf.hibernate.dialect.Dialect
INFO: Using dialect: net.sf.hibernate.dialect.SybaseAnywhereDialect
Starting service Tomcat-Standalone
Apache Tomcat/4.0.1
Jun 24, 2005 3:13:38 PM net.sf.hibernate.dialect.Dialect
INFO: Using dialect: net.sf.hibernate.dialect.SybaseAnywhereDialect
Starting service Tomcat-Apache
Apache Tomcat/4.0.1
Starting Servoy from /Applications/Servoy
Servoy R2 2.2 build-328 on Mac OS X using Java 1.4.2_07
Looking for servoy.properties on /Users/bruce/servoy.properties
Loading servoy.properties from /Applications/Servoy/servoy.properties
Loading - Done
Jun 24 15:17:23 BigMac SQLAnywhere(servoy_repository): A database server with that name has already started
Using RMI registry on port 1099
file not found:java.io.FileNotFoundException: /Library/Java/Extensions/._.DS_Store (Permission denied)
Starting service Tomcat-Standalone
Apache Tomcat/4.0.1
Starting service Tomcat-Apache
Apache Tomcat/4.0.1
How does that console log compare with your fast loading Powerbook ???
For comparison I rebooted my Powerbook G4/867 and after clicking the Servoy icon saw the splash screen in 38secs and Select Module in 1m20secs. Servoy Developer R2 2.2 build 328 - Java 1.4.1._01-24 Mac OSX 10.2.8
Console log was:
Starting Servoy from /Applications/Servoy
Servoy R2 2.2 build-328 on Mac OS X using Java 1.4.1_01
Looking for servoy.properties on /Users/grahamg/servoy.properties
Loading servoy.properties from /Applications/Servoy/servoy.properties
Loading - Done
Using RMI registry on port 1099
Starting service Tomcat-Standalone
Apache Tomcat/4.0.1
Starting service Tomcat-Apache
Apache Tomcat/4.0.1
You seem to be loading Servoy twice & have net.sf.hibernate.dialect.Dialect and SyncServer[1330 loading in addition to the items on my list.
Starting Servoy from /Applications/Servoy
Servoy R2 2.2 build-328 on Mac OS X using Java 1.4.2_07
Looking for servoy.properties on /Users/harrycat/servoy.properties
Loading servoy.properties from /Applications/Servoy/servoy.properties
Loading - Done
Using RMI registry on port 1099
Starting service Tomcat-Standalone
Apache Tomcat/4.0.1
Starting service Tomcat-Apache
Apache Tomcat/4.0.1