Neues
Oracle und 64bit OS PDF Drucken E-Mail
Benutzerbewertung: / 1
SchwachPerfekt 
Geschrieben von: Alessandro   
Freitag, 13. November 2009 17:51

Gerade heute hatte ich ein wunderbares Problem auf meinem neuen Windows 7 64-bit Betriebssystem. Der TOAD von Quest Software kann sich nicht mehr mit einer DB Instanz von Oracle verbinden. Dauernd erscheint die Fehlermeldung "ORA-12154: TNS:could not resolve the connect identifier specified" und die Verbindung wird abgebrochen. Stundenlang hab ich nach einer Lösung gesucht, und viel zu viele schrottige Tipps probiert, bis dann endlich die geniale und supereinfache Lösung kam, die 100% funktioniert!
Einfach den Pfad von TOAD (oder bei anderen Programmen die auf Oracle zugreifen) auf den Kurzpfad abändern. D.h. statt C:\Program Files (x86)\Quest Software\TOAD\Toad.exe jetzt neu C:\PROGRA~2\QUESTS~1\TOAD\Toad.exe
Achtung, beachte folgende Punkte:

1. Heisst es PROGRA~2 (und nicht PROGRA~1)
2. Kann nicht der Link (Shortcut) auf Toad abgeändert werden, weil dieser Link nach dem OK gleich wieder in die Langform umgestellt wird.

D.h. ihr müsst entweder von Hand per RUN oder Eingabeaufforderung den Pfad und die Exe eintippen, oder ihr verschiebt das Tool einfach an einen anderen Ort dessen Pfad kein "(x86)" beinhaltet. Ich hab zum Beispiel einfach das Toad Verzeichnis von "Program Files (x86)" ins "Program Files" kopiert und fertig. Das wars, so einfach ist das!

Aber worin liegt das Problem? Anscheinend hat Oracle ein Problem mit Pfadnamen die Klammern beinhalten. Deshalb ist es auch kein TOAD Problem, sondern ein Oracle Problem. Da TOAD keine 64bit Anwendung ist, wird diese automatisch ins "Program Files (x86)" Verzeichnis installiert, was dann zum Problem führt. Wenn dann TOAD oder irgend ein anderes Programm eine DB Verbindung aufbauen will, dann kommt der Oracle Treiber mit dem Pfad des aufrufenden Programmes nicht klar und meldet die doofe ORA-12154 Meldung zurück, was mich dauern dazu verleitet hat, die tnsnames.ora zu checken, die eigentlich OK war.

Aktualisiert am Freitag, 13. November 2009 18:17
 
Woche des Jahres berechnen PDF Drucken E-Mail
Geschrieben von: Alessandro   
Dienstag, 03. November 2009 11:39

Die Woche des Jahres zu berechnen ist nicht so einfach wie es auf den ersten Blick scheint. Mal hat das Jahr 52, mal 53 Wochen, ein Teil der ersten Woche gilt noch zum alten Jahr, etc. Hier ein kleiner nützlicher Code, der das ganze Berücksichtigt (Nach ISO 8601 Standard):

// DayOfWeek function returns integer 1..7 equivalent to Sunday..Saturday.
// ISO 8601 weeks start with Monday and the first week of a year is the one which
// includes the first Thursday

function ISOWeekNumber(DateTime: TDateTime; var YearOfWeekNumber, WeekDay: Integer): Integer;
var
  Month, Day: Word;
begin
  WeekDay := ((DayOfWeek(DateTime) - ISOFirstWeekDay + 7) mod 7) + 1;
  DateTime := DateTime - WeekDay + 8 - ISOFirstWeekMinDays;
  DecodeDate(DateTime, YearOfWeekNumber, Month, Day);
  Result := (Trunc(DateTime - EncodeDate(YearOfWeekNumber, 1, 1)) div 7) + 1;
end;

 
Floating Point Error mit TWebBrowser Komponente PDF Drucken E-Mail
Geschrieben von: Alessandro   
Dienstag, 03. November 2009 11:39

Wenn man (Delphi 5,6 und 7) eine TWebBrowser Komponente verwendet und plötzlich einen "Floating Point Error" bekommt (War bei mir der Fall) so liegt das an der angezeigten Seite. Diese beinhaltet möglicherweise Inhalte mit JavaScript. Falls dort Fliesskommaoperationen durchgeführt werden, kann es vorkommen, dass diese einen Fliesskommafehler verursachen, da Delphi diese anderst rundet.

Kurzum, damit der Fehler verschwindet muss Delphi eine andere Rundung beigebracht werden. Dies geschieht am einfachsten mit dem Befehl:

Set8087CW($133F);

Und dies am besten gleich zu beginn des Programmes, in der Initialize Sektion oder sogar noch früher.

 
Panels unter WindowsXP akzeptieren keine neuen Farbe PDF Drucken E-Mail
Geschrieben von: Alessandro   
Dienstag, 03. November 2009 11:38

Wenn man ein Panel unter Delphi7 mit WindowsXP auf ein Formular knallt und dann dessen Farbe ändert, so erscheint diese zwar in der Entwicklungsumgebung, wenn das Programm aber gestartet wird, so erscheint wieder die Defaultfarbe. (In der Regel das schöne Grau)

Um diesen Bug zu umgehen, muss nachdem die gewünschte Farbe eingestellt wurde, einfach die Eigenschaft "ParentBackground" auf "True" und wieder zurück auf "False" gesetzt werden. Jetzt wurde die neue Farbe gespeichert und wird auch so im EXE erscheinen.

 
Screensaver Deaktivieren PDF Drucken E-Mail
Geschrieben von: Alessandro   
Dienstag, 03. November 2009 11:37

function ActivateScreenSaver (Activate: boolean): boolean;
var IntActive: byte;
begin
if Activate then
  IntActive := 1
else
  IntActive := 0;

Result := SystemParametersInfo (SPI_SETSCREENSAVEACTIVE, IntActive, nil, 0) ;
end;

 
<< Start < Zurück 1 2 3 4 5 6 7 8 9 10 Weiter > Ende >>

Seite 1 von 54