Upgrade Servoy 3 to 6 dataprovider now has Underscore

We are working on an upgrade drom 3 to 6

In one of our Tables, the “length” column is now displayed as _length, so elements using that dataprovider show up as errors

The Sybase table column really is “length” ( which may be a reserved word )

How can I make Servoy accept this column name ? ( and clear up all the warnings )

greg

Hi Greg.

So you are saying that Servoy actually changed the column name inside the database?
How did you convert the solution ? I.e. with what options did you import the solution into developer/server?

no, the Sybase database is the same, and was never changed. No underscore

on import, I am not sure if there was an option to allow reserved words

how can I make Servoy 6 update it’s internal idea of this table, and allow “length” ?

greg

So you are saying that Servoy actually changed the column name inside the database?
How did you convert the solution ? I.e. with what options did you import the solution into developer/server?

You can change by hand using the navigator view and opening the dbi file in text editor. You will probably have to add the navigator view to your perspective (Window > Show view); then deselect working set (small down triangle top right of the navigator view); dig inside the resources project for the dbi files you want to modify; right click on a file and choose open with text editor.

[attachment=0]Screen shot 2013-02-19 at 2.48.25 PM.png[/attachment]

Thanks. I’ll try it, but editing by hand is a bit nuts

I was hoping for something a bit more automatic

It’s also odd that Servoy would add an underscore to the reserved word, then flag it as an error on every form ( since that column doesn’t exist ), rather than just generate ONE data source error e.g. “Length is a Reserved Word”

greg

You can change by hand using the navigator view and opening the dbi file in text editor.

gdurniak:
Thanks. I’ll try it, but editing by hand is a bit nuts

I was hoping for something a bit more automatic

Jumping directly from v3 to v6 (how many years apart?) is bound to have a few quirks I would guess. The fact that it even works impresses me…

ok, I edited the dbi file, but the form error is still there

and when I select “Disply DataProviderID”, I now see that the Name is length, but the DataproviderID is _length ( with underscore )

if I try to edit the DataproviderID, I get an error, since length is a Reserved Word ( I was hoping there was a way to allow reserved words )

I decided to change it in Sybase, to avoid the reserved word, and edit the form to match

greg

PS
QUESTION: if my forms are using the DataProviderID, why are Name and DataProviderID not displayed all the time ? and if not in the dbi, where is DataProviderID hidden ?

This seems like a bug, please open a case for it https://support.servoy.com .

I actually see this as a bunch of Feature Requests

  • always warn me, before Servoy renames any columns

  • always show both column Name, AND DataproviderID when a Table is open for editing

  • offer to “Allow Reserved Words” when editing a Table, as you offer when importing a solution

Note: I don’t remember if I selected “allow reserved words” when I first imported the solution, but I know I did NOT allow source Tables to be edited. Perhaps this confused Servoy, as it did rename the column, but was prevented from editing the source

greg

we shouldn’t allow reserved words, because many of them really can’t be directly used inside scripting because they are really reserved javascript keywords.
So those columns should be renamed, thats why we have a sql name (length, private, protected) and a dataprovider name (_length,_private, _protected) so that they can be used throughout the complete solution.