Oracle Client 11g Installation

14. Januar 2010 Keine Kommentare

Bei der Installation von Oracle Client 11g auf Windows 7 oder Windows Server 2008 (nicht R2!) erhält man bei der Prüfung der Voraussetzungen folgenden Fehler:

Checking operation system requirements…
Expected result: One of 5.0,5.1,5.2,6.0
Actual Result: 6.1
Check complete. The overall result of this check is: Failed <<<< Problem: Oracle Database 11g is not certified on the current operating system. Recommendation: Make sure you are installing the software on the correct platform.

Wenn man den Fehler auf “durch Benutzer geprüft” setzt, verweigert der Oracle Client nach Installation seinen Dienst…

Lösung:

Suchen Sie die Datei “refhost.xml” im Installations-Quellverzeichnis und fügen Sie folgende Zeilen ein:

<OPERATING_SYSTEM>
<VERSION VALUE=”6.1″/>
</OPERATING_SYSTEM>

Nach dem Speichern und dem erneuten Ausführen des Setups wird die Prüfung anstandslos bestanden und der Client funktioniert anschliessend auch tadellos…

KategorienSonstiges Tags:

C# :: MessageBox Result auswerten

18. August 2009 Keine Kommentare

Eine Messagebox wird wohl in jedem Programm irgendwo verwendet. Neben der einfachen OK-Hinweismeldung kann man aber auch das Ergebnis einer JA-NEIN-Box auswerten:

// die Dialogbox zusammenbauen
DialogResult Ergebnis = MessageBox.Show(“Ist das eine Frage?”,
      “Der Titel der Box”,
      MessageBoxButtons.YesNoCancel,
      MessageBoxIcon.Question,
      MessageBoxDefaultButton.Button2);

// das Ergebnis auswerten
if (Ergebnis == DialogResult.Yes)
{
     MessageBox.Show(“Du hast JA geklickt”, “Der Titel der Box”);
}

KategorienC# Tags:

MSSQL :: Systemdatenbank verschieben

5. August 2009 Keine Kommentare

Bei der Installation des MSSQL-Servers werden die Systemdatenbanken (master, msdb, tempdb) standardmäßig auf der gleichen Festplatte installiert wie der Server.
Ab SQL Server 7.0 kann man bspw. die tempdb relativ einfach um weitere Dateien auf anderen Festplatten erweiteren, das Verschieben der Dateien auf eine andere Festplatte ist jedoch schwieriger.

Hierzu kann ab 7.0 die ALTER DATABASE – Anweisung genutzt werden. Vor Ausführung sollte jedoch sichergestellt sein, dass auf der neuen Festplatte ausreichend Platz vorhanden ist, die entsprechenden Ordner angelegt sind und die Dateinamen korrekt geschrieben sind, da sonst MSSQL-SERVER anschliessend seinen Dienst verweigert.

Mit dem Befehl

1
EXEX sp_helpdb tempdb

prüfen Sie zunächst die Verwendung der Datenbank

Anschliessend setzen Sie die folgende Anweisung gegen die tempdb ab:

1
2
3
4
5
6
7
8
9
10
ALTER DATABASE tempdb
   MODIFY FILE
       ( NAME = ‘tempdev’ ,
          FILENAME = ‘D:\DB\tempdb.mdf’ )
GO
ALTER DATABASE tempdb
   MODIFY FILE
      ( NAME = ‘templog’,
         FILENAME = ‘D:\DB\templog.ldf’)
GO

Nach einem Neustart des MSSQL-Server-Dienstes finden Sie die Dateien der tempdb nun auf D:\DB

Die “alten” Dateien können nun aus dem Standard-Installationspfad gelöscht werden.

KategorienTSQL MSSQL SQL Tags:

MSI-Setup mit Visual Studio 2005/2008

19. Juni 2009 Keine Kommentare

Nur mal so am Rande: Eine echt gelungene Beschreibung, wie man in Visual Studio 2005/2008 ein Setup-Projekt umsetzt, findet Ihr im VB-Archiv unter folgendem Link:

http://www.vbarchiv.net/workshop/workshop_108-msi-setup-mit-visual-studio-2005-2008.html

KategorienC#, Links, VB.NET Tags:

AJAX :: MaskedEdit Extender im Jahr 2000

17. Juni 2009 Keine Kommentare

Wer den MaskedEdit Externder aus dem AJAX-Toolkit (http://www.asp.net/ajax) einsetzt, kenn die Problematik, dass ein Datumswert, der nicht im Format dd.mm.yyyy eingegeben wird sondern als dd.mm.yy, zurück ins 20. Jahrhundert (also 19xx) zurückkatapultiert wird…
Auch die Eigenschaft Century nutzt hier nichts, denn diese wird schlicht und ergreifend ignoriert.

Eine kleine Änderung im MaskedEditBehavior.js lehrt den MaskedEdit Extender das 21. Jahrhundert:

Zeile 2005 – Funktion: _GetDateElementText

if (Y4)
  {
  if (aux !=”" && aux.length < 4)
    {
     while (aux.length < 4)
     {
       aux = “0″ + aux;
      }

     // DIESE ZEILE EINFÜGEN –>
     if (aux.substring(0,2) == ’00′) aux = ’2′+aux.substring(1,4);
     // <–

     m_arrDate[this.get_CultureDateFormat().indexOf("Y")] = aux;
   }
}
else [...]

Jetzt springt der MaskedEditExtender automatisch auf 20xx um…

Kategorienasp.NET Tags:

C# :: SQL ReportServer in asp.NET

26. Mai 2009 Keine Kommentare

Voraussetzung für die Umsetzung dieses Beitrags ist ein funktionierender Report auf Basis des SQL Reporting Services. Hierbei ist es unerheblich mit welcher SQL Server Version (2005[8.0] oder 2008[9.0]) gearbeitet wird. Die asp.NET-Umsetzung habe ich im Framework 2.0 umgesetzt.

Zunächst brauchen wir eine (in meinem Fall serialisierbare) Klasse, die das Interface Microsoft.Reporting.Webforms.IReportsServerCrendentials zur Ausführung des Reports implementiert:

[Serializable]
public class ReportCredentials :
      Microsoft.Reporting.WebForms.IReportServerCredentials
{
   string _userName, _password, _domain;

   public ReportCredentials(string userName, string password,
            string domain)
   {
      _userName = userName;
      _password = password;
      _domain = domain;
   }

   public System.Security.Principal.WindowsIdentity  ImpersonationUser
   {
      get
      {
          return null;
       }
    }

   public System.Net.ICredentials NetworkCredentials
   {
     get
     {
        return new System.Net.NetworkCredential
                       (_userName, _password, _domain);
     }
   }

   public bool GetFormsCredentials(out System.Net.Cookie authCookie,
             out string userName, out string password,
             out string authority)
   {
      userName = _userName;
      password = _password;
      authority = _domain;
      authCookie = new System.Net.Cookie
                      (“.ASPXAUTH”, “.ASPXAUTH”, “/”, “Domain”);
      return true;
     }
}

 Auf der aspx-Page, auf der der Report eingebunden werden soll, muss ein Steuerelement “ReportViewer” und folgender Code eingefügt werden:

protected void Page_Load(object sender, EventArgs e)
{
  if (!IsPostBack)
  {
    ReportViewer1.ShowCredentialPrompts = false;
    ReportViewer1.ServerReport.ReportServerCredentials =
             new ReportCredentials(“UserName”, “Passwort”, “”);
    ReportViewer1.ProcessingMode = 
             Microsoft.Reporting.WebForms.ProcessingMode.Remote;
    ReportViewer1.ServerReport.ReportServerUrl =
             new System.Uri(“http://reportserver/ReportServer”);
    ReportViewer1.ServerReport.ReportPath =
             “/Path2Report/ReportName”;

    ReportViewer1.ServerReport.Refresh();
  }
}

Auch eine Parametrisierung aus der Webpage ist möglich:

ReportParameter[] param = new ReportParameter[1];
param[0] = new ReportParameter(“ReportParam”, txtParameter.Text);

ReportViewer1.ServerReport.SetParameters(param);

 

Und zu guter letzt muss noch ein Abschnitt in der web.config im Abschnitt <system.web><httpHandlers>  angelegt werden:

<add verb=”*” path=”Reserved.ReportViewerWebControl.axd” type = “Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a” />

Kategorienasp.NET, C# Tags:

Logbuch mit Windows-Bordmitteln

Gelegentlich führe ich eine Art Logbuch über Telefonate und andere Dinge, die ich mit irgendjemandem abspreche. Meistens habe ich dafür einfach die Notizen von Outlook genutzt und mir zu jedem Eintrag einfach Datum und Uhrzeit geschrieben.

Das gute alte Windows-Notepad bringt da schon sowas in der Art “Logbuch” mit:

Einfach eine neue Textdatei (z.B. auf dem Desktop) anlegen und in die erste Zeile der Datei “.LOG” schreiben.

Jedesmal, wenn man die Datei jetzt öffnet, schreibt Windows in die letzte Zeile der Datei das aktuelle Datum und die aktuelle Uhrzeit.

KategorienSonstiges Tags: