Difference between revisions of "MSSQL"

From Limbas Wiki

Jump to: navigation, search
(Diese Seite wurde zum Übersetzen freigegeben)
 
Line 1: Line 1:
 
<translate>
 
<translate>
 +
<!--T:1-->
 
[[Hauptseite]]
 
[[Hauptseite]]
  
 +
<!--T:2-->
 
----
 
----
  
==MSSQL nutzen können==
+
==MSSQL nutzen können== <!--T:3-->
 
Grundsätzlich muß Limbas auf einem Linux-Betriebsystem und die Datenbank auf einem Windows-Betriebsystem installiert werden.
 
Grundsätzlich muß Limbas auf einem Linux-Betriebsystem und die Datenbank auf einem Windows-Betriebsystem installiert werden.
 
Ebenso muß der Port und die TCP-IP Verbindung der Datenbank aktiviert und gegebenenfalls angepasst werden.
 
Ebenso muß der Port und die TCP-IP Verbindung der Datenbank aktiviert und gegebenenfalls angepasst werden.
Line 11: Line 13:
  
  
==freetds==
+
==freetds== <!--T:4-->
 
===Bezugsquelle===
 
===Bezugsquelle===
 
freetds kann unter http://www.freetds.org bezogen werden. Das Paket steht unter der GPL2 Lizenz.<br /> Eine für Limbas angepasste und getestete Version ist unter https://sourceforge.net/projects/limbas/files/tools/freetds-0.83-alias.tar.gz/download verfügbar. Andere oder neuere Versionen müssen nach unterer Anleitung möglicherweise noch angepasst werden.
 
freetds kann unter http://www.freetds.org bezogen werden. Das Paket steht unter der GPL2 Lizenz.<br /> Eine für Limbas angepasste und getestete Version ist unter https://sourceforge.net/projects/limbas/files/tools/freetds-0.83-alias.tar.gz/download verfügbar. Andere oder neuere Versionen müssen nach unterer Anleitung möglicherweise noch angepasst werden.
  
===freetds anpassen===
+
===freetds anpassen=== <!--T:5-->
 
Bevor freetds installiert wird muß der folgende Patch angewendet werden:
 
Bevor freetds installiert wird muß der folgende Patch angewendet werden:
 
http://permalink.gmane.org/gmane.comp.db.tds.freetds/12354
 
http://permalink.gmane.org/gmane.comp.db.tds.freetds/12354
 
Er sorgt dafür das die Alias Funktionalität korrekt arbeitet.
 
Er sorgt dafür das die Alias Funktionalität korrekt arbeitet.
  
  diff -Nru a/src/odbc/odbc.c b/src/odbc/odbc.c
+
  <!--T:6-->
 +
diff -Nru a/src/odbc/odbc.c b/src/odbc/odbc.c
 
  --- a/src/odbc/odbc.c 2010-03-22 09:42:16.000000000 -0500
 
  --- a/src/odbc/odbc.c 2010-03-22 09:42:16.000000000 -0500
 
  +++ b/src/odbc/odbc.c 2010-05-06 16:00:00.000000000 -0500
 
  +++ b/src/odbc/odbc.c 2010-05-06 16:00:00.000000000 -0500
Line 27: Line 30:
 
odbc_set_sql_type_info(col, drec, stmt->dbc->env->attr.odbc_version);
 
odbc_set_sql_type_info(col, drec, stmt->dbc->env->attr.odbc_version);
  
  - if (!col->table_column_name) {
+
  <!--T:7-->
 +
- if (!col->table_column_name) {
 
  - if (!tds_dstr_copyn(&drec->sql_desc_name, col->column_name, col->column_namelen))
 
  - if (!tds_dstr_copyn(&drec->sql_desc_name, col->column_name, col->column_namelen))
 
  - return SQL_ERROR;
 
  - return SQL_ERROR;
Line 41: Line 45:
  
  
===benötigte Pakete===
+
===benötigte Pakete=== <!--T:8-->
 
  unixodbc
 
  unixodbc
 
  unixodbc-devel
 
  unixodbc-devel
  
===freetds kompilieren===
+
===freetds kompilieren=== <!--T:9-->
 
der ODBC Treiber müsste nach der Installation unter /usr/local/lib zufinden sein.
 
der ODBC Treiber müsste nach der Installation unter /usr/local/lib zufinden sein.
  
  ./configure --with-tdsver=8.0
+
  <!--T:10-->
 +
./configure --with-tdsver=8.0
 
  make
 
  make
 
  make install
 
  make install
  
===freetds.conf===
+
===freetds.conf=== <!--T:11-->
 
Nach der installation wird im Pfad "/usr/local/etc/" die Konfigurationsdatei "freetds" angelegt. Sie kann wie folgt angepasst werden. Dabei wird die IP oder der Domainname des SQL Servers, sowie der Port auf den die Datenbank hört eingetragen. Ebenso sollte man die Zeichenkodierung eintragen. Solange es nicht unbedingt erforderlich ist sollte auf utf8 oder unicode verzichtet werden. Die tds Version 8.0 bezieht sich auf den MSSQL Server ab Version 2005.
 
Nach der installation wird im Pfad "/usr/local/etc/" die Konfigurationsdatei "freetds" angelegt. Sie kann wie folgt angepasst werden. Dabei wird die IP oder der Domainname des SQL Servers, sowie der Port auf den die Datenbank hört eingetragen. Ebenso sollte man die Zeichenkodierung eintragen. Solange es nicht unbedingt erforderlich ist sollte auf utf8 oder unicode verzichtet werden. Die tds Version 8.0 bezieht sich auf den MSSQL Server ab Version 2005.
  
  #  $Id: freetds.conf,v 1.12 2007/12/25 06:02:36 jklowden Exp $
+
  <!--T:12-->
 +
#  $Id: freetds.conf,v 1.12 2007/12/25 06:02:36 jklowden Exp $
 
  [global]
 
  [global]
 
         # If you get out-of-memory errors, it may mean that your client
 
         # If you get out-of-memory errors, it may mean that your client
Line 67: Line 73:
 
         tds version = 8.0
 
         tds version = 8.0
  
==UNIX ODBC anpassen==
+
==UNIX ODBC anpassen== <!--T:13-->
 
odbc.ini
 
odbc.ini
  
  [limbas_mssql]
+
  <!--T:14-->
 +
[limbas_mssql]
 
  Driver          = FreeTDS
 
  Driver          = FreeTDS
 
  Description    = limbas
 
  Description    = limbas
Line 77: Line 84:
 
  Database        = limbas
 
  Database        = limbas
  
 +
<!--T:15-->
 
odbcinst.ini
 
odbcinst.ini
  
  [FreeTDS]
+
  <!--T:16-->
 +
[FreeTDS]
 
  Description    = MSSQL
 
  Description    = MSSQL
 
  Driver          = /usr/local/lib/libtdsodbc.so
 
  Driver          = /usr/local/lib/libtdsodbc.so
Line 90: Line 99:
  
  
==Rechte==
+
==Rechte== <!--T:17-->
 
Die Datenbank benötigt noch zusätzliche Rechte für die Systemtabellen:
 
Die Datenbank benötigt noch zusätzliche Rechte für die Systemtabellen:
  
  USE master;
+
  <!--T:18-->
 +
USE master;
 
  GO
 
  GO
 
  GRANT VIEW SERVER STATE TO limbasuser;
 
  GRANT VIEW SERVER STATE TO limbasuser;
  
==testen==
+
==testen== <!--T:19-->
 
  isql -v limbas_dsn limbasuser limbaspass
 
  isql -v limbas_dsn limbasuser limbaspass
 
</translate>
 
</translate>

Latest revision as of 13:36, 24 July 2017

Hauptseite


MSSQL nutzen können

Grundsätzlich muß Limbas auf einem Linux-Betriebsystem und die Datenbank auf einem Windows-Betriebsystem installiert werden. Ebenso muß der Port und die TCP-IP Verbindung der Datenbank aktiviert und gegebenenfalls angepasst werden. Als Treiber dient der frei verfügbare http://www.freetds.org/


freetds

Bezugsquelle

freetds kann unter http://www.freetds.org bezogen werden. Das Paket steht unter der GPL2 Lizenz.
Eine für Limbas angepasste und getestete Version ist unter https://sourceforge.net/projects/limbas/files/tools/freetds-0.83-alias.tar.gz/download verfügbar. Andere oder neuere Versionen müssen nach unterer Anleitung möglicherweise noch angepasst werden.

freetds anpassen

Bevor freetds installiert wird muß der folgende Patch angewendet werden: http://permalink.gmane.org/gmane.comp.db.tds.freetds/12354 Er sorgt dafür das die Alias Funktionalität korrekt arbeitet.

diff -Nru a/src/odbc/odbc.c b/src/odbc/odbc.c
--- a/src/odbc/odbc.c	2010-03-22 09:42:16.000000000 -0500
+++ b/src/odbc/odbc.c	2010-05-06 16:00:00.000000000 -0500
@@ -2873,12 +2873,9 @@

} odbc_set_sql_type_info(col, drec, stmt->dbc->env->attr.odbc_version);

-		if (!col->table_column_name) {
-			if (!tds_dstr_copyn(&drec->sql_desc_name, col->column_name, col->column_namelen))
-				return SQL_ERROR;
-		} else {
-			if (!tds_dstr_copy(&drec->sql_desc_name, col->table_column_name))
-				return SQL_ERROR;
+		if (!tds_dstr_copyn(&drec->sql_desc_name, col->column_name, col->column_namelen))
+			return SQL_ERROR;
+		if (col->table_column_name) {

if (!tds_dstr_copy(&drec->sql_desc_base_column_name, col->table_column_name)) return SQL_ERROR; }


benötigte Pakete

unixodbc
unixodbc-devel

freetds kompilieren

der ODBC Treiber müsste nach der Installation unter /usr/local/lib zufinden sein.

./configure --with-tdsver=8.0
make
make install

freetds.conf

Nach der installation wird im Pfad "/usr/local/etc/" die Konfigurationsdatei "freetds" angelegt. Sie kann wie folgt angepasst werden. Dabei wird die IP oder der Domainname des SQL Servers, sowie der Port auf den die Datenbank hört eingetragen. Ebenso sollte man die Zeichenkodierung eintragen. Solange es nicht unbedingt erforderlich ist sollte auf utf8 oder unicode verzichtet werden. Die tds Version 8.0 bezieht sich auf den MSSQL Server ab Version 2005.

#   $Id: freetds.conf,v 1.12 2007/12/25 06:02:36 jklowden Exp $
[global]
        # If you get out-of-memory errors, it may mean that your client
        # is trying to allocate a huge buffer for a TEXT field.  
        # Try setting 'text size' to a more reasonable limit 
        text size = 129024
        client charset = ISO-8859-1
[tds_mssql]
        host = 192.168.10.10
        port = 1433
        tds version = 8.0

UNIX ODBC anpassen

odbc.ini

[limbas_mssql]
Driver          = FreeTDS
Description     = limbas
Servername      = tds_mssql
Port            = 1433
Database        = limbas

odbcinst.ini

[FreeTDS]
Description     = MSSQL
Driver          = /usr/local/lib/libtdsodbc.so
Driver64        =
Setup           =
Setup64         =
UsageCount      = 1
CPTimeout       =
CPReuse         =


Rechte

Die Datenbank benötigt noch zusätzliche Rechte für die Systemtabellen:

USE master;
GO
GRANT VIEW SERVER STATE TO limbasuser;

testen

isql -v limbas_dsn limbasuser limbaspass