structure of database of Ms project server 2010 - ms-project

I am working on a project of interaction between Ms project server 2010 And Google aps
what i had to do is :
every time you add a task on Ms project server and you assign to someone ( by adding his resource to the task) ... the task should appear his Google agenda
what i need to do is read some specific attribute from database of Ms project server 2010 ( such as name of task,when it starts , name of project ..) ,
but when i open the database using sql server i found that it contains lot of tables ,
i want to know if there s any documents that explain the whole structure (MCD) and data dictionary .
and thank you

You can use Draft, Published and Reporting databases. But only Reporting is documented and recommended by Microsoft for direct access. You can find its schema in Project 2010 SDK: http://www.microsoft.com/en-us/download/details.aspx?id=15511
Other option is using Project Server event handlers and PSI.

I don't have a document for you... but I do have some code you may find helpful:
MPXJ provides a database reader which will read project data from MS Project MPD databases, and Project Server SQL Server databases (they share a very similar structure). You can either use MPXJ itself abstract the mechanics of reading the data from the database, or you can dive in to the source to see how the tables and columns work, then produce your own queries.
If you want to take the latter approach, you'll find the select statements from the various tables live in the MPD9DatabaseReader class. The result sets are processed in the MPDAbstractReader class.

Related

Copy some entries from one server database to other server database using asp.net mvc

We are doing some CRUD operation in DEV environment and data is saved in database. For other environments(like Staging/Prod) we want to copy those records from DEV database and paste to Staging/Prod when required using asp.net MVC. Is it possible? Could you please suggest some pathway in order to accomplish this?
You can accomplish this using a linked server:
https://learn.microsoft.com/en-us/sql/relational-databases/linked-servers/create-linked-servers-sql-server-database-engine?view=sql-server-ver15
This involves creating a link between one database server and another (they must be able to see each other on the network). You can then reference the linked server like this:
INSERT INTO [LinkedServerName].[Database].[dbo].[Table] (......
Alternatively you could use a paid for tool like SSMS tools which can generate insert statements on a per table basis: https://www.ssmstoolspack.com/

Is it possible to store a pseudo SQL Server database for my ASP .NET project?

My ASP.NET project is using SQL Server as the database. I am wondering if it is possible to store a temporary instance of my database so that I would only need to query once to work with the data that I need. For example, I will query the 2 tables, Person and Students with a common id. I want to be able to join the tables and use the information.
I think there are some solutions:
Store the tables in the front end and use ajax javascript to manipulate the tables information.
Store in a txt file or similar file on to the project folder as a pseudo database.
Would love to hear any ideas!
You could do worse than consider SQL Server Compact edition:
https://www.microsoft.com/en-za/download/details.aspx?id=17876
Which has a small footprint and supports private deployment of its binaries within the application folder
EDIT:
It seems CE is deprecated since last I used it. and MS now recommend SQL Server Express Local DB
https://learn.microsoft.com/en-gb/sql/database-engine/configure-windows/sql-server-express-localdb?view=sql-server-2017
And there is also SQLLite: https://www.supinfo.com/articles/single/6941-an-aspnet-core-mvc-app-with-sqlite-and-entity-framework

Copying company data from one server to another, Ax 2009

We will soon be migrating company data from our pre-production server to production with Microsoft Ax 2009. I believe that there are two ways to do this and would like to know of any issues that might arise with the second. This is migrating data across servers and not a simple case of duplicating company data on the same Ax 2009 service.
Use the Import / Export functionality. Administration -> Periodic -> Data Export/Import, create a new definition group and then export it. Recreate the same definition group on the second server then import. Here's an example how to do it for Ax 2012.
Export/Backup the SQL Server database from the first server and restore it over the second. We then would merely be eliminating our test and template company data from the second server. The Ax servers need to have the same patches and development layers installed first. I note that we would need to edit the ServerID value within SysServerConfig table afterwards.
Thanks
The Backup/Restore way to do it is at least 10 times faster.
There are some issues to be aware of though:
Ensure that references to the file systems are correct (e.g. Document parameters)
Server configuration setup
UAC cache file issue described here
Update 1:
For AX 2012 you will also need to have the same model store on the production server as well, this can be accompliced by using database backup/restore or using export/import of the object store as described here.
Update 2:
Update 1 is partly rubbish, both data and model store are copied in the SQL backup/restore. No need to synchronize the database afterwards! But it may come as a surprise.
What about this solution? How To Copy AOS instance from Server to another

Updating SQL Server database with SQL scripts

I have a number of manually written scripts (.sql) for tables, views and stored procedures that are used from an ASP.NET application. These scripts drop the object and recreates them. I need a way to update the database when the scripts change without deleting the object. For example, when a column is added to an existing table that has rows in it, I would need to update this table with this extra column without losing the rows.
I need a way to "update" the database on a single click (I can hook up the changes using a batch file). Does Visual Studio support this kind of functionality?
If you get Visual Studio Team System - Database Edition 2008 - which is now bundled with "Developer Edition" for free - it handles that. Visual Studio database projects without that edition really just store the static SQL that you want to track. The Database Edition is capable of determining the 'deltas' between your SQL and what's in a target database, generating that script, and executing against your database. You do get the option of reviewing that generated SQL, but by default it is very safe [it won't run if it thinks that there will be any data lost].
Yes - it's called Database Projects.
You can define a Visual Studio Database Projects, have create and change SQL scripts inside it, and then execute those against a database connection of your choice when you need to.
See this blog post here for a great explanation, or read the whole series that the 4 guys from Rolla wrote.

ASP/ASP.net: Web-based JET database management tool?

I need to manipulate some tables in a JET database housed on a web-server:
check existing indexes
change table cluster/primary key
see what tables exist
rename tables
add tables
drop tables
browse data
etc
I don't have the option of installing PlaneDisaster or Access (even if i had it) on the local machine.
I've already written a generic web-based query tool. I'd rather not have to get into writing a whole web-based database maintenance GUI. Someone must have done this already, and probably many times over.
A partial answer might be Compare'Em
http://home.gci.net/~mike-noel/CompareEM-LITE/CompareEMscreens/CompareEM-About.htm The Pro version allows you to create SQL statements to update the Access database file. This will allow you to generate the differences between one version and a newer version.
His website isn't very clear but as I recall the price for the Pro version was $10.
As you say you have already done a generic web based query tool. The problem with JET is that you cannot connect with it as database server like you can do with one SQL server in order to process changes to tables and other maintenance procedures. Jet is is not a client/server RDBMS. You need to have an application in the server to do that for you as you already have done with your generic web based tool, or download the database to your machine. That's why you have done some procedures and locate them in the server as asp pages.
Anyway you can use JetSQLConsole, if you don't want to use Planedisaster or Access, but remember that you need always an application on the server to to the job for you
You can also use access "in your machine" and connect to a database located in a URL (http://myserver/mydatabase.mdb) but remember when you are doing this you are downloading all the database and when you save it you are uploading it again.

Resources