verwendetes Datenbanksystem: SQL Server 2008 R2 mit dem EF 4
Hallo zusammen,
ich würde gerne von meiner App ein Backup ausführen können. Um den Erfolg anzuzeigen soll die Meldung, die man im SSMS bekommt im Client angezeigt werden. (Siehe unten)
Aber wie komme ich da ran? Irgendwo muss das doch gehen. ?(
Ich hoffe, das ich einfach nur noch nicht den richtigen Suchbegriff gefunden habe und es was Einfaches gibt. =)
Schönen Gruß,
Hotte
10 Prozent verarbeitet.
20 Prozent verarbeitet.
30 Prozent verarbeitet.
40 Prozent verarbeitet.
50 Prozent verarbeitet.
60 Prozent verarbeitet.
70 Prozent verarbeitet.
80 Prozent verarbeitet.
90 Prozent verarbeitet.
312 Seiten wurden für die XYZ-Datenbank, Datei 'XYZ' für Datei 1, verarbeitet.
100 Prozent verarbeitet.
6 Seiten wurden für die XYZ-Datenbank, Datei 'XYZ_log' für Datei 1, verarbeitet.
BACKUP DATABASE hat erfolgreich 318 Seiten in 1.834 Sekunden verarbeitet (1.352 MB/s).
Viele Grüße
Hotte
Die Klasse SqlConnection bietet das Event InfoMessage an. Das ist genau das was du suchst.
"Jedes Ding hat drei Seiten, eine positive, eine negative und eine komische." (Karl Valentin)
Hi Khalid,
das funktioniert schon mal prima! Danke 👍
Das EF scheint sowas irgendwie nicht vorzusehen.
Da es sich dabei um das Backup handelt und nichts für den normalen Benutzer,
kann ich auch erstmal verschmerzen das es eine Extrawurst mit einer SqlConnection gibt. 😉
Schönen Gruß,
Hotte
Viele Grüße
Hotte
Über die Connection Eigenschaft eines ObjectContext kommst du an die DbConnection, die bei einer SQL Serververbindung hoffentlich eine SqlConnection sein wird.
Lg XXX
Über die
> Eigenschaft eines ObjectContext kommst du an die DbConnection, die bei einer SQL Serververbindung hoffentlich eine SqlConnection sein wird.
Hi XXX,
leider ist es nicht ganz so einfach. 😉
Bei der Connection-Eigenschaft handelt es sich nur um eine allgemeine DbConnection.
Darüber könnte ich mir nur den ConnectionString holen.
Von der DbConnection werden dann die EntityConnection und SqlConnection, aber auch die ganzen anderen spezifischen Connections abgeleitet.
Die InfoMessage ist aber eine spezielle SqlServer Geschichte. 😕
Viele Grüße
Hotte
Ja das war mir schon klar drum hab ich auch
die bei einer SQL Serververbindung hoffentlich eine SqlConnection sein wird dazugeschrieben.
Probier mal ob du nach SqlConnection casten kannst.
SqlConnection connection = myContext.Connection as SqlConnection;
if(connection != null)
{
//do your fancy stuff in here. :)
}
else
{
//einen versuch wars wert. :(
}
Lg XXX
Hi,
ich arbeite immer mit dem
System.Data.IDbConnection
Interface.
Mit dem kann ich alles allgemeine machen und bei Bedarf kann ich es in die konkrete Klasse casten.
<edit>
Hier die Methode, die eine korrekte Connection aufbaut und das Interface zurück gibt:
private IDbConnection GetProviderConnection()
{
IDbConnection retVal = null;
switch (_Provider)
{
case Provider.SQLSERVER:
retVal = new System.Data.SqlClient.SqlConnection(_ConnectionString);
break;
case Provider.OLEDB:
retVal = new System.Data.OleDb.OleDbConnection(_ConnectionString);
break;
case Provider.ODBC:
retVal = new System.Data.Odbc.OdbcConnection(_ConnectionString);
break;
default:
break;
}
return retVal;
}
</edit>
Grüße,
maYer
Das wäre evtl. mal einen Versuch wert.
Leider muss ich das Zeitlich erstmal hinten anstellen, da es schon mit dem nächsten Thema weitergeht.
Trotzdem danke! 😃
Viele Grüße
Hotte