Results for tag "sql"

7 Articles

Use Confluence Play SQL Plug-in with MySQL

Play SQL is a an Atlassian Confluence plug-in for querying database tables and displaying the results inside a Confluence page. The plug-in has only native support for PostgreSQL and HSQL but other drivers can be used via a JNDI datasource.

For using MySQL with Play SQL you have to download the latest MySQL JDBC driver and extract the .jar file to your confluence/lib directory as the Tomcat container searches this path for additional libraries. Now register the new JNDI datasource by adding the following code to your confluence/conf/server.xml:

<pre>
  <Engine name="Standalone" defaultHost="localhost" debug="0">
    <Host name="localhost" debug="0" appBase="webapps" unpackWARs="true" autoDeploy="false">
      <Context path="" docBase="../confluence" debug="0" reloadable="false" useHttpOnly="true">
        <Resource
          name="jdbc/my_datasource"
          auth="Container"
          type="javax.sql.DataSource"
          url="jdbc:mysql://${SERVER}/${DATABASE}?user=${DATABASE}&amp;password=${PASSWORD}"
          driverClassName="org.gjt.mm.mysql.Driver"
          maxActive="20" maxIdle="10" maxWait="20000" />

          <Manager pathname="" />
      </Context>
    </Host>
  </Engine>
</pre>

Restart your Confluence instance (/etc/init.d/confluence restart) and open Play SQL configuration page inside the Confluence administration page. Change the Global Connection to Type: Use JNDI connection, Dialect: Generic and JNDI Name: java:comp/env/jdbc/my_datasource.
That’s it.

WSUS: Moving from Windows Internal Database to external SQL Server 2008 and receiving “Token-based server access validation failed with an infrastructure error”

Today I had to move the WSUS internal database to one of our backend database servers. Microsoft has a good instruction how to do this, nevertheless I ran into a problem.

Microsoft SQL Server 2008 did not allow me to add the machine account of our WSUS frontend server (let me call it WSUS-SRV), so I created a new Active Directory security group called WSUS Administrators containing the WSUS-SRV machine account. This security group I gave the permission to access the database.

After starting the IIS Admin Service and Update Services the database backend server showed the error Token-based server access validation failed with an infrastructure error (event-id 18456). Oops.
One workaround  would have been to disable the UAC (http://blogs.msdn.com/b/sqlserverfaq/archive/2010/10/27/troubleshooting-specific-login-failed-error-messages.aspx). Not a solution I was very keen about.

I fixed the problem by creating a local security group on the database server and adding the maching account of WSUS-SRV into it.

Studiumgedöns – 10 von 33

Die Resultate von SQL & Datenbanken habe ich bereits seit einigen Tagen: 1.0. Wenn soweit alles klappt, wie ich mir das vorstelle, werde ich zum 25. Juni Wissenschaftliches Arbeiten und BWL2 schreiben. Für Wissenschaftliches Arbeiten habe ich Abschlusstest und Online-Klausur erledigt, bei BWL2 stehen noch Onlineklausur und Abschlusstest des Kurses “Unternehmensführung” aus. Bin da aber relativ positiv gestimmt, dass ich das alles zeitlich auf die Reihe bekomme.

Leider gibt es zwischen den Semestern keinen weiteren Klausurtermin, so dass ich zum Präsenztag im September im schlimmsten Fall drei Klausuren schreiben werde (JSF, GDI3 und Nichtsequentielle Programmierung oder XML). Etwas blöd, aber egal – wenn alles klappt, wird dann am Oktober/November Mathe 1 (Analysis und Algebra) in Angriff genommen. Zu Hause habe ich bereits ein Buch zur allgemeinen Vorbereitung auf Mathe.

Studium: SQL und Datenbanken & Wissenschaftliches Arbeiten; Konzert der Rhythmutants

In den letzten paar Tagen habe ich ordentlich was geschafft. Freitag war ich mit Marc in Witten um die Klausur in SQL und Datenbanken zu schreiben. Durch die Proben zum Konzert der Rhythmutants hatte ich im Vorfeld keine Zeit, großartig dafür zu lernen. War aber auch egal, denn wirklich schwer ist die Klausur nicht gewesen, bestanden habe ich auf jeden Fall.
Ende der vorletzten Woche habe ich auch den Abschlusstest für das modul Wissenschaftliches Arbeiten erfolgreich abgeschlossen. Die nächsten zwei Wochen werde ich mit den Aufgaben von Wissenschaftliches Arbeiten und dem Modul BWL2 verbringen.

Letztendlich war es dann am Samstag – also vorgestern – so weit: unsere Band stand endlich mal wieder auf der Bühne. War ein genialer Abend, wir hatten mordsmäßig Spaß und haben ein ganz passables Tempo vorgegeben. War klasse, dass so viele Leute dabei gewesen sind. Im Anschluss an das Konzert wurde noch bis spät in die Nacht gefeiert. War meiner Meinung nach ein gelungener Abend 🙂
Timo war übrigens so nett und hat während des Konzerts Fotos gemacht, die richtig gut aussehen. Unbedingt anschauen! Wenn alles planmäßig läuft, werden wir in den nächsten paar Wochen endlich mal unsere Songs online stellen.

BWL1 bestanden – 9 von 33

Die freudige Nachricht erhielt ich bereits letzten Donnerstag. Trotz aller Befürchtungen habe ich BWL1 bestanden und zwar mit einer 1.0 (77% in der Präsenzklausur + 22 Bonuspunkte). Somit habe ich 27% der Module fertig. Gebucht sind bereits SQL & Datenbanken, Wissenschaftliches Arbeiten und BWL2. SQL & Datenbanken werde ich vermutlich beim außerplanmäßigen Klausurtermin am 7. Mai, einen Tag vor unserem Rhythmutants-Konzert, schreiben. Die Tests und Aufgaben sind bereits alle eingereicht – fehlt nur noch die beiden Abschlusstests und -klausuren.

Gelöst: Encoding-Probleme mit MS SQL und PHP

Seit letzter Woche habe ich mich mit einem äußerst ominösen Problem beschäftigt – wär ja sonst auch langweilig: Ich habe für einen Kunden ein Import-Script geschrieben, dass aus mehreren Text-Dateien die Daten in eine MS SQL Server 2005-Datenbank importiert.
Bei unseren Tests hier in der Firma funktionierte alles wunderbar, es gab keine UTF-8- oder sonstigen Zeichensatz-Probleme – die Umlaute wurden korrekt dargestellt.

Nun meldete sich der Kunde und teilte uns mit, dass die Umlaute falsch dargestellt wären. Aus einem “für” wurde ein “fnr” u.s.w. Ein Schelm, wer jetzt denkt, es würde an UTF-8 liegen. Daran lag es nämlich nicht.

Der Kunde setzte einen amerikanischen Windows Server 2003 und ebenfalls einen amerikanischen Microsoft SQL Server 2005 ein – wir hingegen hatten die jeweils deutschen Versionen eingesetzt. Lag es an den unterschiedlichen Länder-Einstellungen? Nein, daran lag es nicht – wie wir nach dem Aufsetzen der gleichen Maschine feststellten.

UTF-8-Probleme auf Seiten PHP konnte ich ebenfalls ausschließen, da sonst substr() aus dem “für” ein “fn” hätte machen sollen.

Über die Lösung des Problems bin ich mehr durch Zufall gestolpert: Das Tool cliconfig.exe (zu finden unter %WINDOWS%system32) bietet unter dem Tab DB-Library Options die Option Automatic ANSI to OEM conversion. Auf unseren System war diese Option deaktiviert, beim Kunden hingegen aktiviert. Warum? Ganz einfach: die Datenbank beim Kunden lief vor einigen Monaten noch unter MS SQL Server 2000 und wurde dann auf SQL Server 2005 geupgradet. Die Standard-Einstellungen für o.g. hatten sich vom Versions-Wechsel anscheinend geändert und somit konnten wir eben nicht die exakt gleichen Bedingungen nachstellen.

Was für ein Gefrickel, aber: Wieder ein Problem weniger auf der Welt.

Update: Ganz wichtig in diesem Zusammenhang ist, dass das Umlautproblem nur auftritt, wenn das PHP-Script von der Kommandozeile aufgerufen wird. Der Aufruf des Scripts als ausgeführtes CGI-Script in einer Apache-/IIS-/…-Umgebung liefert die richtigen Resultate.

[PostgreSQL] Umwandlung Unix-Timestamp zu normalem Datum

Ich habe für unser ZABOS-System gerade eine kleine PostgreSQL-Funktion geschrieben, die mir einen Unix-Timestamp in ein lesbares Datum umwandelt.

Hier der Code:

CREATE OR REPLACE FUNCTION "public"."makedisplaydate" (_timestamp integer) RETURNS varchar AS
$body$
DECLARE
  rDate varchar;
BEGIN
  SELECT to_char('epoch'::timestamptz + (_timestamp) * '1 sec'::interval, 'YYYY-MM-DD HH12:MI:SS (Dy)') INTO rDate;
  RETURN rDate;
END;
$body$
LANGUAGE 'plpgsql' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER;