Compacting A SQL CE Database Programmatically In A ClickOnce Application

May 12, 2008



I'm trying to compact a SQL CE database programmatically. I've copied the code from MSDN, and it's fine as far as it goes, but there's a problem tying to compact a database in a ClickOnce application because you don't know the path to the database. You have to use the "|DataDirectory|" in your connection string to signify the path to the database. But when I try the file operations to replace the old database with the compacted version, I get an error message that the path "|DataDirectory|" is not valid. Here's the code:


SqlCeEngine engine = new SqlCeEngine("Data Source = " + src + "; Password =" + txtPassword.Text);

try

{


engine.Compact("Data Source = " + dest + "; Password =" + txtPassword.Text);

ShowMsg("Compacting...", MsgType.NoError);

}

catch (Exception ex)

{


MessageBox.Show("There was an error completing the operation: " + ex.Message);

}

engine.Dispose();

File.Delete(src);

File.Move(dest, src);



(dest is = src + ".tmp", i.e., a path to a tmp file to hold the database while compacting).

How do I locate the files to copy if I can't use "|DataDirectory|"?

View 3 Replies


ADVERTISEMENT

SQL Espress 2005 Service Pack1 With ClickOnce Application

Nov 21, 2006

Hi all,

I use SQL Express 2005 with my application that is deployed to the customers with the ClickOnce technology.

Now I want to upgrade automatically the SQL Express to che customers deployed with the Service Pack1.



How can I automated this process?



Thanks,

Bonato Pierantonio

View 1 Replies View Related

Compacting A Database MS SQL

Nov 10, 2006

Hi

for mS SQL 2000-2500

LDF and MDF files can be very very big, if I import the datas into a new database they can become 10 time smaller

is there a way to compact (reduce the MB) of a database ?

thank you

View 4 Replies View Related

ClickOnce For SQL Express Database?

Jul 19, 2006

I'm working on an app in Visual Studio 2005 that needs to have installed locally SQL Express to handle its own data.

This app is in a strong upgrading process. I've been using clickonce to publish the app and let my users upgrade automatically (by the way this works amazing ...).

Yet many times changes to the DB are made. Is there a simple way to upgrade their local SQL Express DB like click once does with the app?

Thanks.

View 6 Replies View Related

How Do I Clean Up Database Deleted By ClickOnce With T-SQL?

May 12, 2006

I posted this in the SQL Server Express forum as well...

My app deployed via ClickOnce. It ships with a database creation script which creates the database in the ClickOnce data directory. Upon uninstall, the entire data folder is deleted successfully. But if you then reinstall the app, SQL Server Express still thinks the database exists. Right now, to get a re-install to work, I have to go into Management Studio Express, click on the db (get an pop-up error as the physical db file is no longer there) and then click delete.

So my question is... what system proc should I execute in the db creation script before I run the CREATE DATABASE command?

View 1 Replies View Related

Deploying SQL Express Database Files With ClickOnce App Using OLE

Jan 18, 2008



I've written a ClickOnce app that deploys a Sql Server Express data file (.mdf) and log file (.ldf) along with the other application files. SQL Express SP2 is a prerequisite for this app. After the applicaiton installs and starts up it copies these files to a specific folder and attaches them by calling the AttachDatabase() method of a Microsoft.SqlServer.Management.Smo.Server object.

This method works fine using Windows XP, however when I run it on Windows Vista I get the following exception:

Microsoft.SqlServer.Management.Smo.FailedOperationException: Attach database failed for Server 'localhostSQLEXPRESS'. ---> Microsoft.SqlServer.Management.Common.ExecutionFailureException: An exception occurred while executing a Transact-SQL statement or batch. ---> System.Data.SqlClient.SqlException: Unable to open the physical file "C:WashMasterDatabasewasshmaster.mdf". Operating system error 5: "5(Access is denied.)".

This exception occurs when I try to programmatically attach the database.

I've searched through the MSDN forums for a solution and I've only found two suggestions:

1.) Create all database connections using a User Instance.
2.) Create the database (using SQL) in the target folder, rather than copying it over from the deployment folder.

I don't like the idea of using User Instances because my entire data access layer is currently written using Ole and I would rather not rewrite it if I don't have to. I cannot find any way to use User Instances with Ole.

I also don't like the idea of creating the database using SQL because it is fairly large.

Here are my questions:

1.) Can User Instances be used with Ole?

2.) Can I somehow programmatically set the permissions of the copied data and log files so that SQL Express can access them without error?

3.) Is there a better method for doing what I'm trying to do or am I destined to have to either rewrite in data access layer so I can use User Instances or create my large database rather than copy it to the target directory?

Thanks.

View 4 Replies View Related

Compacting A Db Via T-SQL

Mar 23, 2004

Hello dbForumers,

I was wondering if there is a way (MUST be) to instruct SQL server to compact a chosen database's files. I have a batch that runs every night who generate a huge amount to log lines that I get rid of with a backup log xxx with truncate_only, but still the logfile is several GB big afterwards with a lotsa empty space... I wanna get a clean small file everyday =)

Thank you!

View 2 Replies View Related

Compacting LOG File

Nov 14, 2006

how can you compact .log file ?
they can be > 20 gigas ! ....
can you delete it ?

View 3 Replies View Related

SQL Server 2014 :: Restoring Database Programmatically But Not Over Existing Live Database

Aug 6, 2015

I want to restore a database (from an encrypted .bak file) - but *not* over the live original if you take my meaning. Encryption is the standard AES-256 that comes with Sql Server 2014 btw. I don't want the original touched/altered in any way. I would like to capture a success message if possible.I can extract the physical device name of the database in question using the following code:

SELECT physical_device_name, *
FROM msdb.dbo.backupmediafamily
WHERE media_set_id =(SELECT TOP 1 media_set_id
FROM msdb.dbo.backupset
WHERE database_name='MyDatabase'
AND type='D'
ORDER BY backup_start_date DESC)

I would like if the newly restored database was rename to something different than 'MyDatabase' (as shown above) and has different logs than the original. If possible, and capture a success message when restored.

View 5 Replies View Related

ClickOnce Please Help

Jun 5, 2007

When having someone run my click once app that is using SQL CE they are getting this message.







The application requires that assembly System.Data.SqlServerCE Version 9.0.242.0 be installed in the global assembly cache (GAC) first

Can someone please let me know what I need to add to prerequisites?

View 3 Replies View Related

Creating A New Database Programmatically

Aug 30, 2006

I've seen several post asking for that possibility, but all 've read, didn't help me.Some sing SQLDMO, other suggest to use SQLSMO, others only explaining to connect to a server and then do "CREATE DATABASE".I will do this within .Net. Connecting to a SQL Server 2005 and execute "CREATE DATABASE" I could realize.But how doing this with SQLExpress? Trying to do  SqlConnection.Open with a non existing DB does not work., says "file not exists".Or do I only have the wrong connection string? Can someone post here an excample connection string, which works with a non existing database?Some hints I've read make me considering to use SQLSMO. But I don't have it on my computer. Where do I get it from? Any links would be nice.

View 6 Replies View Related

How To Programmatically Clone A Database?

Jan 21, 2005

Howdy,

Is the any easy way to clone a database programatically?
I've searched the web but did not come up with anything.

At the moment I create a new blank database (based on the model database)
and create tables, indexes, etc. via asp. (The databases are always exactly
the same)

It seems to me that it would be a better option to
create one database with tables, indexes, etc and copy
it to a new database (on the same server).

One of the options I'm considering would be to create a database,
fill it with tables and indexes, etc. and then detach it.
Whenever I need a new database all I would have to do is use the
file system object to copy and rename the mdf file and then reattach the
new mdf file.

I realise that I could also make the changes to the model
database so that all new databases have the same structure
but that would be my last resort.

Is there any easier way to do this? A stored procedure perhaps?

You're opinions and advice would be welcomed.

View 5 Replies View Related

Programmatically Restore A Database

Apr 5, 2006

I recently had to find ways to programmatically backup and restore anSQL Server Express database.For backup, I found a one-liner stored procedure that does the job(BACKUP DATABASE Toy to disk = 'c:ProjectsToy.bak'.My question is, is there something as simple for a restore operation?Thanks in Advance-Kostas

View 4 Replies View Related

Deploy With Clickonce

Dec 23, 2007

Question about deploying a SQL compact database with Clickonce. Deploying the first time is straightforward and that works OK but I am not so sure about consequent releases, how do I deal with the that?
If I mark the file as dont deploy that will, of course, work fine for those that have installed the first release but not for thoses that havent.
What about if I make a change to the database, adding a table for example. How do I go about that? I obviously dont want to loose any of the existing data?

Thx and Happy Christmas to all

View 1 Replies View Related

Modifying Records In SQL Database Programmatically

Jan 23, 2008

VWD 2005 Express.  Visual Basic.  SQL Server 2005.
I know how to set up SqlDataSources and their insert, delete, update, and select commands.  I also have code for querying a Sql table and populating a dataset and scanning the dataset for values.  However, I do not know how to modify records in a Sql table programmatically.  Here is what I need to do:
I need to open a Sql table.
I need to process record bny record to check a particular field for a particular value.
If the field has the particular value, I need to change it and write the record back to the table with the modification.
The table is named "SystemUser" and the field is call "SystemUserTypeId." 
Can anyone provide me with sample code that would accomplish this?  Thanks for the help.

View 5 Replies View Related

SQL Express On Vista With ClickOnce

Feb 7, 2007

SQL Express CTP 2 provides a checkbox that will enrol the user installing the software as a database administrator. If the user fails to check this box, they run as an ordinary user, and hence are not allowed to perform functions such as create database.

In the process of deploying an application via ClickOnce, if SQL Express is not present it will be installed automatically. Also, in the process of deploying a ClickOnce application, we should usually expect to need to create a new database. Currently, if the user takes the default install of SQL Express they will not be a database administrator and will not be able to create the database. The installation will thus fail.

Is anything being done with SQL Express for ClickOnce applications deploying to Vista that will allow us to automatically enrol the user installing SQL Express as a database administrator?

View 7 Replies View Related

Sql Server Everywhere Db File And Clickonce

Nov 13, 2006

Hi,

I have been using sql server everywhere for some time now in my desktop application. We use clickonce technology to deploy. I find that each time I update using clickonce my empty db file in the server gets updated with the application. Is it possible to do something such that the db file will not get updated with clickonce if it is present .

Thanks and regards

Arnab

View 1 Replies View Related

Problem Creating Sql Express Database Programmatically

Jan 3, 2008

Hi all
this is my code and i find it in microsoft's site
if i run it with sql server connection it works but if i try to use it with sql express it give me this error:
CREATE FILE encountered operating system error 5(access denied) while attempting to open or create the physical file 'c://mydatabase.mdf'
it seems as a permission error but it isn't. I have to set something in sql express while in sql server it is already setted?


static void WriteDB()

{

String str;

//sql server connection

SqlConnection myConn = new SqlConnection("Server=localhost;Integrated security=SSPI;database=master");

//sql express connection
SqlConnection myConn = new SqlConnection("Server=localhost;Integrated security=SSPI;database=master");


str = "CREATE DATABASE MyDatabase ON PRIMARY " +

"(NAME = MyDatabase_Data, " +

"FILENAME = 'C:\MyDatabaseData.mdf', " +

"SIZE = 2MB, MAXSIZE = 10MB, FILEGROWTH = 10%) " +

"LOG ON (NAME = MyDatabase_Log, " +

"FILENAME = 'C:\MyDatabaseLog.ldf', " +

"SIZE = 1MB, " +

"MAXSIZE = 5MB, " +

"FILEGROWTH = 10%)";

SqlCommand myCommand = new SqlCommand(str, myConn);

try

{

myConn.Open();

myCommand.ExecuteNonQuery();

MessageBox.Show("DataBase is Created Successfully", "MyProgram", MessageBoxButtons.OK, MessageBoxIcon.Information);

}

catch (System.Exception ex)

{

MessageBox.Show(ex.ToString(), "MyProgram", MessageBoxButtons.OK, MessageBoxIcon.Information);

}

finally

{

if (myConn.State == ConnectionState.Open)

{

myConn.Close();

}

}

}


thanks
Marco

View 3 Replies View Related

Code To Programmatically Failover A Principal Database.

Mar 12, 2008



Hi Guys,
I was wondering if there is a system procedure / T-SQL code to programmatically Failover a Database from Principal to mirror mode?

also,
We noticed that at times few of all the databases that were kept on 'Principal' mode get randomly 'Failover'. Does anyone have any idea?

If so, pls respond.

Thank you.


View 9 Replies View Related

Programmatically Checking The Database Compatibility Level?

Jun 28, 2006

When my app starts up I want to ensure that the database compatibility level has been set to 90. I know about sp_dbcmptlevel, but that only seems to work in an interactive session; the documentation says it can't be used in a stored procedure, and that appears to be true. Does anyone know how I could read the database compatibility level in a stored proc?

View 3 Replies View Related

ClickOnce Private Installation Issue

May 12, 2007

I'm working on a VB.Net 2005 application that uses SQLCE as a backend database.

Following the instructions on how to do a private installation (http://msdn2.microsoft.com/en-us/library/bb219482.aspx) so that admin rights were not needed, I successfully got it working as a ClickOnce deployment. But today during a demo for a client, they ran into this error while installing the latest version from our publishing URL:

"Unable to install or run the application. Application requires that assembly System.Data.SQLServerCe version 9.0.42 .... must be installed in the Global Assembly Cache."



Basically it's saying the user isn't an admin so they can't install. This is the problem I went to great lengths to try to avoid, and is the reason we are using SQL CE in the first place: admin rights are not required to install our application's database. To our knowledge, SQL CE is the only Microsoft product that fits this scenario.

Now, I haven't changed anything in the publishing of the application to my knowledge, and when I check the project prerequisites, the SQLCE engine still isn't in there (as summarized at the above URL). Again following the instructions at the URL above for private installation, the required assemblies are still part of the project's files.

It must be something I did to cause this, but I have no memory of changing anything in regards to this part of the application. Our deadline is in 4 days and I cannot continue development until I get past this issue.

Where do I look to fix this problem? A little help would be greatly appreciated.

View 1 Replies View Related

Rights For Clickonce Report Builder Access?

Feb 7, 2007

I'm attempting to grant rights to Report Builder as deployed as part of my TFS install. My problem is that I have to add my users to the builtinadmin group in order for them to see the report builder button on the SQL Server Reporting homepage & then have rights to launch the ReportBuilder click once app. I obviously do not want make users admins on the box, but I've tried adding them to all of the other groups having to do with SQLServer to no avail. How can I grant users access to launch the Report Builder app?

View 6 Replies View Related

Setup And Upgrade :: LocalDB - Create And Connect To Database Programmatically

Jul 10, 2012

I need to be able to create & connect to temporary databases programmatically, and NOT using the command-line, within a C# program. How would one go about doing this?

View 7 Replies View Related

SQL Server 2008 :: Database In Single-user Mode / How To Change It Programmatically

Mar 10, 2015

Recently we had multiple production failures because one database was in single-user mode. I am trying to recreate this scenario to write a script that will kick out that connection that was holding database in single-user.In SSMS window 1 I run the following code:

use master
go
alter database test
set single_user
with rollback immediate

[code]....

Yes, it shows one record, but the database name is master, not test. And indeed, I run it from the context of master. Also tried sp_who, sp_who2, sys.dm_exec_requests - nothing works. For dm_exec_requests it shows nothing because it does not run at the current moment.Any other solutions to catch this SPID with a script?

View 5 Replies View Related

ClickOnce Path Names Are Too Long For SQL Server Express Identifiers

May 11, 2006

I'm posting this in the ClickOnce forums as well...

My application doesn't include the .mdf and .ldf files, rather it creates the database the first time the application is run using a script that is included in the build. I want to create the database in the ClickOnce data directory. The problem I'm having is that SQL Server complains when I execute the CREATE DATABASE command as follows:



CREATE DATABASE [C:Documents and SettingsxxxxxLocal SettingsApps2.0DataPQCK6EXN.5KGAW630RPT.VGOifie..tion_014028c05b1d6ec6_0001.0002_0e86966f19503c89DataiFieldMobile.mdf] ON PRIMARY
( NAME = N'myDatabase', FILENAME = N'C:Documents and SettingsxxxxxxLocal SettingsApps2.0DataPQCK6EXN.5KGAW630RPT.VGOifie..tion_014028c05b1d6ec6_0001.0002_0e86966f19503c89DatamyDatabase.mdf' , SIZE = 3136KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB )
LOG ON
( NAME = N'myDatabase_log', FILENAME = N'C:Documents and SettingsxxxxLocal SettingsApps2.0DataPQCK6EXN.5KGAW630RPT.VGOifie..tion_014028c05b1d6ec6_0001.0002_0e86966f19503c89DatamyDatabase_log.ldf' , SIZE = 1024KB , MAXSIZE = 2048GB , FILEGROWTH = 10%)
END

Here's the error:

System.Data.SqlClient.SqlException "The identifier that starts with 'C:Documents and SettingsxxxxxxLocal SettingsApps2.0DataPQCK6EXN.5KGAW630RPT.VGOifie..tion_014028c05b1d6ec6_0001.00' is too long. Maximum length is 128."

View 5 Replies View Related

Help With Connection String After Clickonce Install From Visual Studio 2005

Apr 7, 2008

I have a sql express .mdf that is located in c:appdirectorymydb.mdf whilst developing an application. During development my connection string uses the above path to connect to the db. e.g.

"server = .sqlexpress; Integrated Security=True; database=C:appdirectorymydb.mdf"

I have published the app using click once in visual studio.net which places the db in : C:Documents and Settingsuser.nameLocal SettingsApps2.0DataJN1WL1DJ.X7B ... 08ed2810aab2abData


When i am executing the application following a clickonce install, what should I use in my connection string for the path to the db ? or where can I find the above path (e.g. in the registry) so that I can provide it to the connection string ?


Alternatively, can I specify where the DB is going to be installed (via click once). e.g. in my app directory under program files ?

I have tried searching what seems like everywhere for a solution to this problem and as a last resort thought it worth posting the question.

Many thanks in advance.

Simon

View 1 Replies View Related

One Application With 2 DataBase

Aug 6, 2007

Hai All ,
        Iam having the one Application in DotNet2005.But iam using the two database(SqlServer2005).If user's login the application it will check credentials in first database, if he is not having the login credentials it will cheek the second Database. How can I handle in the configuration file?. How can I change the connection string depending upon the Database in my application for database operation (like insert and update).Any one kindly provide the solution.Thanks and regards,sureshK 
 

View 7 Replies View Related

How Asp.net Application Communicates With MS SQL Database

Jun 13, 2007

Hi, I'm interested in how asp.net application communicates with MS SQL database. I mean, is communication encrypted or can it be? I have scenario where database and web application will communicate over Internet, they are not in the local network. Please share your opinions. 

View 1 Replies View Related

Application With Critical Database

Nov 6, 2007

Dear all
I am a pretty new in the development world fresh from uni. I am doing development on a system that has a security database. Access to the data in that database is pretty important. So in case the main server where the database is stored for soem reason fails or gets compromised i need to have a second copy with the most recent data in that database and keep the application up and running. The data i have is stored in a SQL 2005 database. What are the recomended aproaches for acheiving this needed reliability?
Would running the SQL Agent every 2 minutes do the trick? And replicate the database to another server and then have asecondary deployment on that server running as a backup? Or are there any other means?
Any advice is apreciated.
Sincerely
 

View 1 Replies View Related

Tell If Application Is Writing To Database?

Jan 12, 2015

I was all set to build some triggers on some modified date tables when in the last minute I found out that the application (built in C#) was controlling the after update trigger.

Is there a tool you can use in SSMS to see if there is a connection set up like this?

View 7 Replies View Related

MSDE Database With VB Application

Jan 5, 2004

I have a vb application that uses sql server database , I want to move from sql server to msde file , wanna be able to attach msde file with vb app ,and run setup program
It looks like there is not much good info how to start with it
can anyone guide me ?
Thanks

View 1 Replies View Related

Connection Between A Win Application And Database

May 15, 2008

hi
i m making a win application
for which i have used sql server 2005 .i faced a very big problem that i have made the database but i cannot able to connect the database with winn application .for this purpose i ned coding.so please help me.i need your help urgent.

sheraz

View 4 Replies View Related

Distribute Database In Application

Mar 30, 2007

How can distribute an SQL database with my application in VB, does clickOnce may me do that? Should the final consumer install SQL Express Before installing my application. Can I create a unique package which may me do that?...

View 1 Replies View Related







Copyrights 2005-15 www.BigResource.com, All rights reserved