Datenbank erzeugen SQL Server 2008 Express

07/09/2009 - 18:45 von Werner Perplies | Report spam
Hi,

ich stehe völlig Schlauch, ich habe vor einiger Zeit ein Programm
geschrieben, das am Anfang prüft, ob eine notwendige Datenbank und die
zugehörigen Tabellen vorhanden sind, und wenn nicht, diese einrichtet.

Das hat gut funktioniert.

Für eine Programmerweiterung habe ich mir einen SQL-Server installiert und
das Programm aufgerufen. Jetzt endet die Datenbankerzeugung immer in einem
Timeout.

Wenn ich mir das Zielverzeichnis der Datenbank ansehe, wird die Datenbank
auch erzeugt, dann aber kurz vor Erscheinen der Timeout-Exception wieder
gelöscht.

Wenn ich vom gleichen Clientrechner mit dem "SQL Server Mangementstudio"
die Datenbank mit dem gleichen SQL-Kommando und dem gleichen User erzeuge
klappt alles.

Ich habe das Timeout im Connectionstring inzwischen immer weiter erhöht,
aber das hat nichts gebracht.

Die verwendete Routine:
public bool CreateDatabase()
{
oConn = SqlGlobals.SqlGlobals.Conn;
SqlCommand oCmd = new SqlCommand(Command, oConn);
if (SqlGlobals.SqlGlobals.ConnOpen(oConn))
{
try
{
oCmd.ExecuteNonQuery();
return true;
}
catch (SqlException ex)
{
string cTemp = "Fehler bei der Erzeugung der Datenbank
\"" + DbName + "\"";
oMsg = MSG.DoMessage(false, cTemp, Command, ex,
MessageType.ErrorBox, BackGroundWork);
return false;
}
catch (Exception ex)
{
string cTemp = "Fehler bei der Erzeugung der Datenbank
\"" + DbName + "\"";
oMsg = MSG.DoMessage(false, cTemp, Command, ex,
MessageType.ErrorBox, BackGroundWork);
return false;
}
finally
{
oConn.Close();
}
}
else
{
string cTemp = "Die Verbindung kann nicht geöffnet
werden!";
oMsg = MSG.DoMessage(false, cTemp, Command,
MessageType.ErrorBox);
return false;
}
}

Das verwendete SQL-Kommando:
CREATE DATABASE MOASVJobs ON PRIMARY (NAME = MOASVJobs_Data, FILENAME 'c:\Programme\Microsoft SQL
Server\MSSQL10.MOASVJOBS\MSSQL\DATA\MOASVJobs_Data.mdf', SIZE = 400MB,
FILEGROWTH = 15%) LOG ON(NAME = MOASVJobs_Log, FILENAME 'c:\Programme\Microsoft SQL
Server\MSSQL10.MOASVJOBS\MSSQL\DATA\MOASVJobs_Log.ldf', SIZE = 512MB,
MAXSIZE = 2048MB, FILEGROWTH = 10%)

Ich bin für jeden Tipp dankbar.

Werner
Regulàre Ausdrücke testen?
http://www.weepee.de/de/wps_regex/wps_regex.html
www.weepee.eu
 

Lesen sie die antworten

#1 Werner Perplies
08/09/2009 - 10:33 | Warnen spam
Ein gaaaanz kleiner Hinweis zur Fehlersuche könnte mir vielleicht ja schon
helfen, aber Server-Log und Exception schweigen sich aus. ;-)

Gruß

Werner

m Mon, 7 Sep 2009 18:45:13 +0200 schrieb Werner Perplies:

Hi,

ich stehe völlig Schlauch, ich habe vor einiger Zeit ein Programm
geschrieben, das am Anfang prüft, ob eine notwendige Datenbank und die
zugehörigen Tabellen vorhanden sind, und wenn nicht, diese einrichtet.

Das hat gut funktioniert.

Für eine Programmerweiterung habe ich mir einen SQL-Server installiert und
das Programm aufgerufen. Jetzt endet die Datenbankerzeugung immer in einem
Timeout.

Wenn ich mir das Zielverzeichnis der Datenbank ansehe, wird die Datenbank
auch erzeugt, dann aber kurz vor Erscheinen der Timeout-Exception wieder
gelöscht.

Wenn ich vom gleichen Clientrechner mit dem "SQL Server Mangementstudio"
die Datenbank mit dem gleichen SQL-Kommando und dem gleichen User erzeuge
klappt alles.

Ich habe das Timeout im Connectionstring inzwischen immer weiter erhöht,
aber das hat nichts gebracht.

Die verwendete Routine:
public bool CreateDatabase()
{
oConn = SqlGlobals.SqlGlobals.Conn;
SqlCommand oCmd = new SqlCommand(Command, oConn);
if (SqlGlobals.SqlGlobals.ConnOpen(oConn))
{
try
{
oCmd.ExecuteNonQuery();
return true;
}
catch (SqlException ex)
{
string cTemp = "Fehler bei der Erzeugung der Datenbank
\"" + DbName + "\"";
oMsg = MSG.DoMessage(false, cTemp, Command, ex,
MessageType.ErrorBox, BackGroundWork);
return false;
}
catch (Exception ex)
{
string cTemp = "Fehler bei der Erzeugung der Datenbank
\"" + DbName + "\"";
oMsg = MSG.DoMessage(false, cTemp, Command, ex,
MessageType.ErrorBox, BackGroundWork);
return false;
}
finally
{
oConn.Close();
}
}
else
{
string cTemp = "Die Verbindung kann nicht geöffnet
werden!";
oMsg = MSG.DoMessage(false, cTemp, Command,
MessageType.ErrorBox);
return false;
}
}

Das verwendete SQL-Kommando:
CREATE DATABASE MOASVJobs ON PRIMARY (NAME = MOASVJobs_Data, FILENAME > 'c:\Programme\Microsoft SQL
Server\MSSQL10.MOASVJOBS\MSSQL\DATA\MOASVJobs_Data.mdf', SIZE = 400MB,
FILEGROWTH = 15%) LOG ON(NAME = MOASVJobs_Log, FILENAME > 'c:\Programme\Microsoft SQL
Server\MSSQL10.MOASVJOBS\MSSQL\DATA\MOASVJobs_Log.ldf', SIZE = 512MB,
MAXSIZE = 2048MB, FILEGROWTH = 10%)

Ich bin für jeden Tipp dankbar.

Werner




Werner
Regulàre Ausdrücke testen?
http://www.weepee.de/de/wps_regex/wps_regex.html
www.weepee.eu

Ähnliche fragen