 |
|
 |
my app uses SQLServer 2000,2005 or 2008R2 depending on the client.
At the start the app checks the table structure StoredProcedures etc.
The description has been stored in XML.
All checks are designed for 2000. Few things have been changed to support 2005 etc.
Now I want to take advantage of more recent stuff like VarChar(max) instead of TEXT.
What is the best way to do this?
Easy maintainable and still keep support for the different versions (90% of our clients still use SQLServer 2000).
Any tools, tips, tricks in SQLServer or external?
Regards .... OttO
|
|
|
|
 |
|
 |
Depends on your app and how you access data.
I suspect that in some situations that if you change the structure of a database then you will need to change the app to correctly access it.
If you don't need to do that then no problem. If you do then either you don't make such changes or you will need to provide a value that lets your app know how to vary depending on the structure of your database.
It might be relevant also to keep in mind that someone might upgrade their database server but not update the database structure. Also what do you think will be in the impact of incremental upgrades over time if you keep adding flags to the app?
|
|
|
|
 |
|
 |
The apps (it is a conglomerate of multiple exes in various versions) accesses the DB via ODBC.
The db structure is upgraded for higher versions of the app via an 'upgrade' tool. The tool is kept up to date and recognizes the current version of each apps own tables. It knows to what version the upgrade must be done per app, and knows the steps. It can change the structure, update the content etc.
The column type, size, default value, 'null allowed' is checked by the apps at startup. same goes for StoredProcedures, functions and nessecary views.
Upgrading SQLServer version hasn't been a major issue in the past. Only some minor differences have been adressed like the change in 'default value'.
Users etc are allowed to add indexes, views etc, but they arent allowed to change the apps tables by adding or changing types of columns.
Our clients can get twice a year a major build upgrade and in between sometimes a update if nessecary. No client follows the upgrades close by, only on a 'need' basis. Clients use at the moment ca 6 minor/major versions.
I get a feeling that not many applications check at startup the structure of the database they use. Is that correct?
Regards ... OttO
|
|
|
|
 |
|
 |
OChristiaanse wrote: I get a feeling that not many applications check at startup the structure of the
database they use
The structure itself? No.
I suspect the majority don't do any validation at all. The app assumes the structure is correct.
Myself I version the database via data to allow runtime checks. But I wouldn't check the schema.
|
|
|
|
 |
|
 |
You never got problems that a client updated the software (adding columns and tables) and after a crash restored a database from before the update?
How would you prevent this, other than checking the structure?
Regards ... OttO
|
|
|
|
 |
|
 |
OChristiaanse wrote: You never got problems that a client updated the software (adding columns and
tables)
Normally the systems I work on do not allow that. Not sure I have worked on any that did that.
OChristiaanse wrote: and after a crash restored a database from before the update?
If they added them and failed to restore them then that would be their problem.
OChristiaanse wrote: How would you prevent this, other than checking the structure?
I would start by not allowing that in the first place.
The first possible solution to allow for user defined data is to provide a meta data structure in the database, via appropriate tables, rather than allowing users to add their own.
Other than that how do you prevent them from adding something you don't know about? If you don't know about it no solution you come up with will allow you to detect if it is missing.
|
|
|
|
 |
|
 |
databinding between WPF and sqlserver 2008 express
|
|
|
|
 |
|
 |
Is this a question? If so it is rather meaningless, please try explaining what your problem is.
Unrequited desire is character building. OriginalGriff
I'm sitting here giving you a standing ovation - Len Goodman
|
|
|
|
 |
|
 |
What about it? Rephrase the question if you have one and maybe people can help you.
"The clue train passed his station without stopping." - John Simmons / outlaw programmer
"Real programmers just throw a bunch of 1s and 0s at the computer to see what sticks" - Pete O'Hanlon
"Not only do you continue to babble nonsense, you can't even correctly remember the nonsense you babbled just minutes ago." - Rob Graham
|
|
|
|
 |
|
 |
Your question is not clear. Maybe you should check on msdn.
|
|
|
|
 |
|
 |
During the period of developing new changes request for our application, some of significant experience and mistakes are found which is necessary to make a conclusion in order to enhance team’s work in future.
1.Granularity of items in Solution &Design document.All detail changes in business, logic, UI and DB changes should be described in this document. We are supposed to make any developer get all details from this document.
2.Before talking about CR and drafting this document, it is very important to go through the related exist code of application, which will help to clear the relationship among the business objects and confirm CRs’ feasibility.
When we made an investigation for the relationship between business log and Machine and made a mistake that one log contains multi Machines.
Actually only one Machine in this log. So when we are coding, we found this problem and then we have to update our Solution &Design document again. Certainly it’s disappointing.
3.As to any one item, its corresponding priority (market/user level) and access permission should be taken into consideration as well.
welcome your input for this.
|
|
|
|
 |
|
 |
When customers / sales people / product managers etc. request a change, they are not at all interested in code. They look at the functionality only. Such requirements often start with a headline only, it is then the duty of requirements engineering / product management to precisely describe the requested functionality, possibly with user stories. When appropriate, the description will show the differences to the present situation. Now you have a functional specification.
Next, development has to scrutinize the requested change, and see how the application has to be designed: which interfaces, classes are needed, how they are distributed between server and client, etc. They have to look at the present code and its re-usability. Now you have a technical specification, and you can estimate the efforts for development.
Of course, the "functional" guys may talk with the "technical" guys when they create their functional specification.
When you eventually develop the functionality, you'll document differences from the original plan.
With "big" projects, you'll start with the main functionality, and while the customers can already use that core functionality, more details will be added as outlined in the steps above.
|
|
|
|
 |
|
 |
aoe.Dylan wrote: Certainly it’s disappointing.
Not sure what the question is.
But I believe you are suggesting that you had a Change Request (CR) and that while analyzing/implementing this you found a bug.
The bug, which significant, had nothing to do with the CR. As such it is nothing more than another CR despite originating from a different CR. You might choose to bundle multiple CRs into a release or not. That decision is based on an independent evaluation of each CR.
|
|
|
|
 |
|
 |
We anylasize the relationship of certain two object and thought it is one-to-many through business logic. We wrote these into our solusion &design document and were waiting for approval from archetect/DBA ext. However these related logic had exist in our application, its implementation logic is according to one-to-one.This kind of implementation can satisfy old logic. So when we develops, we should follow old one-to-one logic. We have to change design in document, but nobody is willing to review and apporve it again(disappointing). Therefore my conclusion is the reason of this mistake is "we didnt go through old code!". Hope you can see my point.
|
|
|
|
 |
|
 |
If I understand that correctly then the incorrect implementation of the design means that you are not going to be able to implement the new Change Request (CR.)
Normally you must build that correction in to the estimate for the CR. It is up to who ever pays if they want the main feature or not.
However your company might have a mitigation policy however that allows another CR to be put into place via some 'good service' policy (whether an explicit or implicit policy.) If that exists then you must put that CR into place and expedite it so it doesn't impact the other CR. Even if the primary CR is not accepted the correction can proceed since it impacts the expected functionality, even if not the actual functionality.
|
|
|
|
 |
|
 |
Not sure if this is the appropriate place to post but I found it odd that none of the top five online education companies offer content for smartphones. Desktop laptop and, of course... the iPad. Its not a form factor or capacity issue. Looking for a credible reason why this might be the case. Guidance sought
|
|
|
|
 |
|
 |
I think it's just because the explosion in popularity is still relatively new. So they're probably playing catchup just like a lot of us. There are plenty of online resources available though, just have to do a little research. The Android community is pretty active posting things in community forums (although the official Android website just points you to StackOverflow, but if you search online you'll find other forums).
Good luck!
|
|
|
|
 |
|
 |
One can only guess of course but some possibilities...
Education normally moves a bit slower than the consumer market place. Not sure how this fits with iPad but maybe because little effort is required.
There can often be beauractric hurdles associated with education.
The market is driven by sales not technology. And for some reason either the companies don't see opportunity or they did investigate it and found it lacking. Perhaps based on per item revenue expectations.
There is a 'toy' perception of phones apps and those companies don't want their apps taken that way. And the first implementer might suffer until acceptance is gained so no one wants to take the plunge.
They are all actively working on it but they haven't released it yet.
|
|
|
|
 |
|
 |
Message Automatically Removed
modified 30 Jan '12.
|
|
|
|
 |
|
 |
This message is spam. If you want to advertise here on Code Project, buy an advert.
|
|
|
|
 |
|
 |
This is not a question. Please don't advertise here.
|
|
|
|
 |
|
 |
Let me correct that one vote.
|
|
|
|
 |
|
 |
Pete O'Hanlon wrote: Let me correct that one vote.
Thank you.
|
|
|
|
 |
|
 |
As the members of CodeProject are not interested in this topic. It may please be deleted
|
|
|
|
 |
|
 |
Its not that we aren't interested in the topic but your message appears to be selling something. If we have this wrong then please create an article and many will read it
Lobster Thermidor aux crevettes with a Mornay sauce, served in a Provençale manner with shallots and aubergines, garnished with truffle pate, brandy and a fried egg on top and Spam - Monty Python Spam Sketch
|
|
|
|
 |