MOSS — ‘In Datenblatt bearbeiten’ geht nicht mehr

 Allerlei, Software  Kommentare deaktiviert für MOSS — ‘In Datenblatt bearbeiten’ geht nicht mehr
Mrz 312009
 

Im MOSS gibt es die Möglichkeit, Listen in einer Excel mässigen Tabelle zu bearbeiten. Dann kann man die Felder ganz einfach bearbeiten ohne durch irgend welche Menüs zu klicken.

Aber bei mir wollte das einfach nicht mehr funktionieren. Ich habe ja Office 2007 Pro, also mit Access, drauf. Und das sollte definitiv reichen.

Es kam folgende Fehlermeldung.

Die Liste kann aus einem oder mehreren Gründen nicht in der Datenblattansicht dargestellt werden:
– Es ist kein zu Windows SharePoint Services kompatibles Datenblatt-Steuerelement installiert
– Ihr Webbrowser unterstützt keine Active-X Steuerelemente
– Die Unterstützung von Active-X Steuerelementen ist deaktiviert

Keiner der Punkte traf bei mir zu. Mein SharePoint Kollege schickte mir dann ein Link wo man eine mögliche Lösung finden kann.

Michael Greth MVP SharePoint Blog –> Problem mit Datenblattansicht

Das löschen des Registry Ordners hat bei mir geholfen. Nach einem Neustart des Internet Explorers 8 klappte es wieder mit der Listenansicht.

Man lösche diesen Ordner (natürlich auf eigene Risiko)

HKEY_LOCAL_MASCHINE\SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility
Sub-Key:  {65BCBEE4-7728-41A0-97BE-14E1CAE36AAE}

Mrz 192009
 

Wer kennt das nicht. Man erstellt in einem aktuellen Projekt einen neu Tabelle und füllt diese wärend der Entwicklung mit Daten. Diese sind auch sinnvoll und könnten so ins Livesystem übernommen werden.

Aber wie bekommt man die ohne grosse mühen ins Livesystem?

Bei uns kursierte bis vor kurzem eine Transact SQL wo man die Tabelle angeben konnte. Danach wurde einem noch ein Transact SQL generiert wo man noch die WHERE Klausel anpassen musste. Danach hatte man eine menge Insert’s die aber bei gewissen Spaltennamen nicht funktionierten. Das war einfach nur …

Auf der Suche nach einem Tool fand ich dann den SQL Dumper von Ruizata Project.

Absolut genial. Man gibt den Server an, die Datenbank und wählt dann aus was man exportieren will.

 SQL Dumper Dialog

Generiert wird einem etwas in folgender Form (Beispiele sind von der Webseite des Projekts).

INSERT INTO dbo.TABLE VALUES( 98, 'Pedro Rubina')
INSERT INTO dbo.TABLE VALUES( 96, 'John Riley')
INSERT INTO dbo.TABLE VALUES( 27, 'Sandra Moutinho')

Oder:

SET IDENTITY_INSERT dbo.TABLE ON

INSERT INTO dbo.TABLE(code, name) VALUES( 98, 'Pedro Rubina')
INSERT INTO dbo.TABLE(code, name) VALUES( 96, 'John Riley')
INSERT INTO dbo.TABLE(code, name) VALUES( 27, 'Sandra Moutinho')

SET IDENTITY_INSERT dbo.TABLE OFF

Ach ja. Kosten tut das Tool nichts. 🙂

VS – Unterschied zwischen F5 und CTRL+F5, oder wie finde ich den Fehler

 Allerlei, Entwicklung, Software  Kommentare deaktiviert für VS – Unterschied zwischen F5 und CTRL+F5, oder wie finde ich den Fehler
Okt 102008
 

Das hat jetzt einiges an Nerven gekostet. Eigentlich sollte ich nur ein Release-Build machen und das einchecken. Aus lauter gewohnheit habe ich dann mal die EXE-Datei gestartet und musste feststellen das die Anwendung nicht wollte. Wie so nicht? Na ja, dass galt es nun rauszufinden.

Also stellte ich die Konfiguration auf Debug und drückte F5. Die Anwendung startete ohne Fehler. Ein Doppelklick auf die EXE oder ein CTRL+F5, die Anwendung wollte nicht. 🙁

Zuerst prüfte ich dann mal alle Verzeichnisse auf einen Schreibschutz. Es war nichts schreibgeschützt.

Da ich nur eine allgemeine Fehlermeldung bekam, die leider nichts sage wo was passierte, musste ich mich mühsam durchsuchen bis ich dort war wo es bum machte. Ich konnte ja nicht debuggen. Mit der MessageBox.Show(“Hallo x”) schaute ich wo es noch tat.

Nach einiger Zeit landete ich hier.

protected override DbConnection CreateConnection(string connectionString)
{
	return new SqlConnection(connectionString);
}

Jetzt konnte ich alles in ein try{} catch() Block packen und schauen was genau der Fehler war.

System.TypeInitializationException: Der Typeninitialisierer für

"System.Data.SqlClient.SqlConnection" hat eine Ausnahme verursacht.

—> System.TypeInitializationException: Der Typeninitialisierer für

"System.Data.SqlClient.SqlConnectionFactory" hat eine Ausnahme verursacht.

—> System.TypeInitializationException: Der Typeninitialisierer für

"System.Data.SqlClient.SqlPerformanceCounters" hat eine Ausnahme

verursacht.

—> System.Configuration.ConfigurationErrorsException: Das

Konfigurationssystem konnte nicht initialisiert werden.

—> System.Configuration.ConfigurationErrorsException: Unbekannter

Konfigurationsabschnitt "lag.wordplus". (P:\ProjectX\WP.config line 8)

   bei System.Configuration.ConfigurationSchemaErrors.ThrowIfErrors(Boolean

ignoreLocal)

   bei

System.Configuration.BaseConfigurationRecord.ThrowIfParseErrors(ConfigurationSchemaErrors

schemaErrors)

   bei System.Configuration.BaseConfigurationRecord.ThrowIfInitErrors()

   bei System.Configuration.ClientConfigurationSystem.EnsureInit(String

configKey)

   — Ende der internen Ausnahmestapelüberwachung —

   bei System.Configuration.ConfigurationManager.PrepareConfigSystem()

   bei System.Configuration.ConfigurationManager.GetSection(String

sectionName)

   bei

System.Configuration.PrivilegedConfigurationManager.GetSection(String

sectionName)

   bei System.Windows.Forms.WindowsFormsSection.GetSection()

   — Ende der internen Ausnahmestapelüberwachung —

   bei System.Data.SqlClient.SqlConnectionFactory..cctor()

   — Ende der internen Ausnahmestapelüberwachung —

   bei System.Data.SqlClient.SqlConnection..cctor()

   — Ende der internen Ausnahmestapelüberwachung —

   bei System.Data.SqlClient.SqlConnection..ctor()

   bei System.Data.SqlClient.SqlConnection..ctor(String connectionString)

   bei LAG.WordPlus.Database.SqlDatabase.CreateConnection(String

connectionString) in P:\ProjectX\SqlDatabase.cs:Zeile 23.

Scheinbar wurde der Konfigurationsabschnitt “lag.wordplus” nicht gefunden. Den gibt es aber. Ganz sicher.

Der Unterschied zwischen CTRL+F5 und F5:

CTRL+F5: AppDomain.CurrentDomain.SetupInformation.ConfigurationFile == ANWENDUNGSNAME.config

F5: AppDomain.CurrentDomain.SetupInformation.ConfigurationFile == ANWENDUNGSNAME.vshost.exe.config

Das brachte mich dann auf die Idee die App.config genauer anzuschauen.

Ich fand dort folgendes.

<!– <configSections>

    <section name="lag.wordplus"

type="LAG.WordPlus.Configuration.WordPlusSection, LAG.WordPlus" />

  </configSections> –>

Na ja, was soll ich sagen. <!– –> weg und es tut.

Und wieder um eine Erfahrung reicher. 🙂

Lösung – Laufzeitfehler ‘-2147319779 (8002801d)’

 Allerlei  Kommentare deaktiviert für Lösung – Laufzeitfehler ‘-2147319779 (8002801d)’
Aug 262008
 

Nach einigem suchen wurde ich dann doch noch fündig. Es gab tatsächlich schon Leute die dasselbe Problem hatten. Allen war gemeinsam, dass es unter Vista auftrat.

Die erste Lösung war, nicht wirklich das wahre, UAC wieder einzuschalten. Angeblich tat dann die Software wieder wie sie sollte.

Etwas weiter unten im Posting hatte dann jemand den richtigen Vorschlag.

regsvr32 C:\Windows\System32\Vsocx6.ocx

Tatsächlich funktioniert es wieder.

Jetzt mal schauen ob ich diese Fehlermeldung noch los werde.

image

Die kommt immer am Ende einer Prüfung. Auch unter Windows XP.

40tude Dialog – Ein Problem – Die Lösung

 Allerlei  Kommentare deaktiviert für 40tude Dialog – Ein Problem – Die Lösung
Nov 152007
 

Gestern habe ich gefragt ob mir jemand bei einem Problem mit
40tude Dialog helfen kann. Inzwischen habe ich die Lösung gefunden.

40tude Dialog

Jetzt wird alles Gruppiert und nach Score sortiert.

Einfach im Spalten-Editor folgendes einstellen.

40tude Dialog Spalten-Editor

Danach kann man es so sortieren wie ich es mir gewünscht habe.
Cool.

es läuft: Nickelback – The State – Worthy To Say

C# – Setup erstellen mit OS Version als Bedingung

 Allerlei, Software  Kommentare deaktiviert für C# – Setup erstellen mit OS Version als Bedingung
Nov 132007
 

Ich bin immer wieder überrascht. Wahrscheinlich habe ich es schon erwähnt.
Zur zeit lese ich ein Buch um mich auf die 70-526 Prüfung vorzubereiten.

Ich bin gerade im letzten Kapitel. Es geht um die Verteilung der Software,
also um Setup’s.

Man kan ein Setup so konfigurieren, dass es nur auf bestimmten Windows-
Versionen ausgeführt wird. Die Condition für die OS Version heisst dabei
VersionNT. Interessant dabei ist wie man auf den Wert kommt.

Hier die Formel.
MajorVersion * 100 + MinorVersion

Für Windows 2000 würde das folglich einen Wert von 500 oder grösser
ergeben. Will man also das etwas nur auf Windows 2000 oder neuer installiert
werden kann ist die Condition VersionNT>=500.

es läuft: Various Artists – Helvetic Rock – Coroner / The favorite Game
Okt 052007
 

Ich versuchte jetzt schon länger die Clienttools des SQL Server 2005 auf meiner
Windows XP Kiste zu installieren. Eigentlich war das noch nie ein Problem.

Auf diesem PC ist aber Office 2007 installiert. Zudem war schon eine Version
der Office 2003 Web Components installiert.

Das SQL Setup scheiterte jetzt immer beim „Produkt“ OWC11. Das sind
die besagten Web Components. Wie so? Wenn das OWC11 nicht installiert
werden konnte wurden auch die Arbeitsstationskomponenten nicht installiert.

Nicht gerade das was ich wollte. Die Lösung war, man deinstalliere die
Microsoft Office 2003 Web Components und führe das SQL Setup nochmals
aus.

Siehe da, nichts mehr rot. 🙂

SQL Server Setup

Aug 132007
 

Vor langer, sehr langer zeit, habe ich mal beschrieben wie man mit C# ganze
Verzeichnis kopieren kann. Mit allen Unterordnern und Dateien.

Mir wurde jetzt von einer freundlichen Person mitgeteilt (Dirk Winter, www.kwsiso.de) das die Methode
auf die Nase fällt wenn man ein Verzeichnis kopieren möchte, dass nur Dateien
aber keine Unterverzeichnisse enthält.

Hier die korrigierte Version von mir. Die Zeile 17 war schlicht am falschen Ort.
Wenn es keine Unterverzeichnisse gab wurde das Zielverzeichnis einfach nicht erstellt.
Somit lief die Methode auf einen Fehler. Der Fehler ist in Zeile 8 korrigiert.

 

   1:          private static void CopyFolder(string sourceFolder, string targetFolder)
   2:          {
   3:              //Gib mir alle Unterverzeichnisse zurück
   4:              string[] strFolders = Directory.GetDirectories(sourceFolder);
   5:              string strZielFolder = string.Empty;
   6:   
   7:              /*DAS IST RICHTIG HIER*/
   8:              Directory.CreateDirectory(targetFolder);
   9:   
  10:              //Durch alle Verzeichnisse laufen
  11:              foreach (string strFolder in strFolders)
  12:              {
  13:                  //Verzeichnis am Zielort ersellen
  14:                  strZielFolder = strFolder.Replace(sourceFolder, targetFolder);
  15:                  
  16:                  /*DAS IST FLASCH HIER*/
  17:                  //Directory.CreateDirectory(strZielFolder);
  18:   
  19:                  //Die nächsten unterordner suchen
  20:                  CopyFolder(strFolder, strZielFolder);
  21:              }
  22:   
  23:              //Jetzt alle Files im Verzeichnis holen
  24:              string[] strFiles = Directory.GetFiles(sourceFolder);
  25:   
  26:              //Durch alle Files laufen
  27:              foreach (string strFile in strFiles)
  28:              {
  29:                  string strZiel = Path.Combine(targetFolder, Path.GetFileName(strFile));
  30:                  File.Copy(strFile, strZiel, true);
  31:              }
  32:          }

Dirk schickte mir seine Version. Die will ich euch nicht vorenthalten.
Viel eleganter als meine anno dazumal. 🙂 Danke Dirk.

   1:          private static void CopyFolder(string sourceFolder, string targetFolder)
   2:          {
   3:              // Verzeichnis am Zielort erstellen
   4:              Directory.CreateDirectory(targetFolder);
   5:   
   6:              // Alle Dateien kopieren
   7:              string[] files = Directory.GetFiles(sourceFolder);
   8:              foreach (string file in files)
   9:              {
  10:                  string target = Path.Combine(targetFolder, Path.GetFileName(file));
  11:                  File.Copy(file, target, true);
  12:              }
  13:   
  14:              // Alle Unterverzeichnisse kopieren
  15:              string[] subSourceFolders = Directory.GetDirectories(sourceFolder);
  16:              foreach (string subSourceFolder in subSourceFolders)
  17:              {
  18:                  string subTargetFolder = subSourceFolder.Replace(sourceFolder, targetFolder);
  19:                  CopyFolder(subSourceFolder, subTargetFolder);
  20:              }
  21:          }

Er machte mich aber noch auf eine andere Möglichkeit aufmerksam.
Man füge in seinem Projekt ein Verweis auf die Microsoft.VisualBasic.dll hinzu.
Dann noch ein using Microsoft.VisualBasic.FileIO; (C# natürlich) und die folgende  Zeile:

   1:  FileSystem.CopyDirectory(sourceFolder, targetFolder);

Der Freakfaktor geht einfach verloren. Dass muss natürlich jeder selber wissen. 😀

es läuft: Green Day – Dookie – When I Come Around

LDAP – Active Directory Browser

 Allerlei, Entwicklung  Kommentare deaktiviert für LDAP – Active Directory Browser
Jan 152007
 

Vor kurzem habe ich den Active Directory Browser gesucht.
Das war gar nicht so einfach das Teil zu finden.

Bei Microsoft gibt es noch eine Site für NT4 und ADSI 2.5.
Dort kann man das ADSI 2.5 SDK (English Language) downloaden.
Die Datei heisst dann schlicht sdk.exe und ist ein ZIP Archiv.
Entpacken und in das Verzeichnis sdk\ADsVw\i386 wechseln.

Danach hatte ich das Problem, dass ich mich nicht mit unserem
AD verbinden konnte. Das AD läuft bei uns auf einem
Windows 2003 Server ohne Kompatibilitätsmodus.
Hier mal die Einstellungen um eine Verbindung aufzubauen.

Alles was markiert ist, ist wichtig. 🙂

  1. Beim Pfad MUSS LDAP://….. stehen.
  2. User Encrypt musste ich ausschalten.