Code: Select all
IF EXISTS (SELECT name FROM master.dbo.sysdatabases WHERE name = N'TestBackupDB')
BEGIN
ALTER DATABASE [TestBackupDB]
SET OFFLINE
WITH ROLLBACK IMMEDIATE;
ALTER DATABASE [TestBackupDB]
SET ONLINE;
DROP DATABASE [TestBackupDB];
END
CREATE DATABASE [TestBackupDB];
IF EXISTS (SELECT name FROM master.dbo.sysdatabases WHERE name = N'TestBackupDB')
BEGIN
--Take database offline ignoring any connection made
ALTER DATABASE [TestBackupDB]
SET OFFLINE
WITH ROLLBACK IMMEDIATE;
--Bring online before delete
ALTER DATABASE [TestBackupDB]
SET ONLINE;
DROP DATABASE [TestBackupDB];
END
CREATE DATABASE [TestBackupDB];
GO
USE [TestBackupDB];
GO
CREATE TABLE People (
Id int PRIMARY KEY,
Name varchar(255),
Address varchar(255),
Email varchar(255),
City varchar(50)
)
GO
BEGIN TRANSACTION
INSERT INTO People (Id,Name,Address,Email,City) VALUES ('1','Francis','244-1423 Metus. Rd.','[email protected]','Nenana');
I
COMMIT TRANSACTION
USE [Master];
This, for recreate the DB:
Code: Select all
public override void initDb()
{
var sqlServer = new SqlServerManager("localhost", "master");
Assert.IsTrue(sqlServer.connectDB(), "No se conecto a la BD de master");
//Generar la BD de prueba
sqlServer.exeSql(File.OpenText("SqlServerDB.sql").ReadToEnd());
sqlServer.disconnectDB();
sqlServer.ClearPools();
}
Code: Select all
public override bool connectDB()
{
if (this.IsConnect)
{
return true;
}
this.con = new SqlConnection();
Logging.Write(String.Format("---Conectado a la db: {0}\\{1}---\n", this.ServerName, this.DataBase));
string conStr = string.Format("Server={0};Initial Catalog={1};Application Name={2}",this.ServerName,this.DataBase,System.AppDomain.CurrentDomain.FriendlyName);
if (this.IntegradeAuth)
{
conStr = string.Format("{0};Integrated Security=true", conStr);
}
else
{
conStr = string.Format("{0};User ID={1};Password={2}", this.userName, Utils.decrypt(this.DataBase,this.pwd));
}
this.con.ConnectionString = conStr;
this.con.Open();
this.IsConnect = true;
var sql = this.con.CreateCommand();
sql.CommandText = @"SELECT SYSTEM_USER AS UserName,
@@SERVICENAME As ServiceName,
@@version AS Version,
SERVERPROPERTY('Edition') AS Edition,
SERVERPROPERTY('InstanceName') AS Instance,
SERVERPROPERTY('IsIntegratedSecurityOnly') AS IsIntegratedSecurityOnly,
SERVERPROPERTY('IsSingleUser') AS IsSingleUser,
SERVERPROPERTY('MachineName') AS MachineName,
SERVERPROPERTY('ProductVersion') AS ProductVersion,
SERVERPROPERTY('ProductLevel') AS ProductLevel,
SERVERPROPERTY('ServerName') AS ServerName,
SERVERPROPERTY('SqlCharSetName') AS SqlCharSetName";
using (SqlDataReader data = sql.ExecuteReader())
{
data.Read();
this.serverInfo = Enumerable.Range(0, data.FieldCount)
.ToDictionary(data.GetName, data.GetValue);
}
return this.IsConnect;
}
Code: Select all
SqlDataReader data = sql.ExecuteReader()
Despite that I clear the pools as said here:Devart.Data.SqlServer.SqlException was unhandled by user code
Message=A transport-level error has occurred when sending the request to the server. (provider: Shared Memory Provider, error: 0 - No hay ningún proceso en el otro extremo de la canalización.)
Source=Devart dotConnect for SQL Server
ErrorCode=-2146232060
Class=20
LineNumber=0
Number=233
Server=localhost
State=0
StackTrace:
at Devart.Data.SqlServer.bc.a(CommandBehavior A_0)
at Devart.Data.SqlServer.SqlCommand.InternalExecute(CommandBehavior behavior, IDisposable stmt, Int32 startRecord, Int32 maxRecords)
at Devart.Common.DbCommandBase.InternalExecute(CommandBehavior behavior, IDisposable stmt, Int32 startRecord, Int32 maxRecords, Boolean nonQuery)
at Devart.Common.DbCommandBase.ExecuteDbDataReader(CommandBehavior behavior, Boolean nonQuery)
at Devart.Common.DbCommandBase.ExecuteDbDataReader(CommandBehavior behavior)
at System.Data.Common.DbCommand.ExecuteReader()
at Devart.Data.SqlServer.SqlCommand.ExecuteReader()
at BackupDB.SqlServerManager.connectDB() in C:\Proyectos\Server\BackupDB\src\db\impl\SqlServerManager.cs:line 70
at Test.BaseTestDB.makeBackups() in C:\Proyectos\Server\Test\src\db\BaseTestDB.cs:line 57
InnerException:
http://forums.asp.net/p/1433838/3223633.aspx
What I can do?