Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

#1 Thu 30 June 2011 20:45

scott159
Participant occasionnel
Date d'inscription: 12 Jun 2011
Messages: 10

MapServer 6 - SQL Server 2008

Bonjour,
J'ai récemment implémenté MapServer sur des serveurs Windows à partir du package MS4W 3.0.1. A partir de ce package, j'arrive à me connecter à des bases de données spatiales situées sur MS SQL Server 2008.
Problème, depuis la migration vers MapServer 6 (package de migration récupéré sur MS4W.MapTools.org) consistant à mettre à jour quelques fichiers, j'ai une erreur du type "Internal Server Error". Après quelques recherches, il semble que les fichiers impactés pourraient être maplib.dll et mapserv.exe. Si quelqu'un pourrait me dire où je pourrai récupérer un package MS4W complet pour MapServer 6.0 ou l'erreur que je commet, je suis preneur ...

Hors ligne

 

#2 Sat 10 March 2012 09:44

Alma Rebelde
Participant occasionnel
Date d'inscription: 5 Mar 2012
Messages: 18

Re: MapServer 6 - SQL Server 2008

Bonjour,

Moi aussi je cherche un packtage complet Pour MApServer, et je me demande est ce qu'il y a une version standard??

Cordialement

Hors ligne

 

#3 Mon 08 April 2013 10:28

diletant2
Participant occasionnel
Date d'inscription: 10 Feb 2010
Messages: 36

Re: MapServer 6 - SQL Server 2008

Bonjour,

La connexion entre MapServer (6.2 beta4) et MSSQL fonctionne correctement selon moi, avec le package 3.0.6 de MS4W
http://www.maptools.org/ms4w/index.phtm … loads.html

En revanche, je n'arrive pas à écrire une requête valide dans la ligne "DATA" d'un mapfile. Si quelqu'un a une idée...

***

Hi,

I succeeded in displaying spatial features stored inside a mssqlserver db with MapServer.
But only by declaring

Code:

CONNECTIONTYPE OGR
  CONNECTION "MSSQL:server=xxx;uid=xxx;pwd=xxx;database=xxx;Integrated Security=True;tables=schema.table(geometry_column_name);GeometryFormat=native"

All the features of the spatial table get drawn OK on the map.

I would like to go further by selecting data with a where clause and/or performing some joins with other table’s attributes.
as it works fine with PostGIS data.
Ex :

Code:

CONNECTIONTYPE POSTGIS
CONNECTION …
DATA 'the_geom FROM (my_sql_request) AS tmp USING UNIQUE id using srid=4326'

But as soon as I uncomment any DATA statement (event a very basic one) through an OGR MSSQL connection, I get an error msg :

http://mymapserver/cgi-bin/mapserv.exe? … AYERS=test

msDrawMap(): Image handling error. Failed to draw layer named 'test'.msOGRFileOpen(): OGR error. GetLayer(my_request) failed for OGR connection ` MSSQL:server=xxx;uid=xxx;pwd=xxx;database=xxx;Integrated Security=True;tables=schema.table(geometry_column_name);GeometryFormat=native'


Do you have any spec/guidelines on how to request mssqlserver data with a SQL request inside a DATA statement from MapServer ?

Thanks for your help

Clément

***

Config :
MsSqlServer 10.50 (2008R2) under Windows server 2008 R2 (x64)
Mapserver 6.2 beta4 under Windows server 2008 R2 (x64)


Here’s my mapfile

Code:

MAP
NAME WMS_server
STATUS ON
SIZE 600 600
EXTENT -10 40 15 52
IMAGECOLOR 255 255 255
FONTSET ../etc/fonts.txt
IMAGETYPE PNG8
TRANSPARENT ON
RESOLUTION 72

OUTPUTFORMAT
NAME 'PNG8'
DRIVER AGG/PNG
IMAGEMODE RGBA
MIMETYPE "image/png"
FORMATOPTION "TRANSPARENT=ON"
  FORMATOPTION "QUANTIZE_FORCE=ON"
  #FORMATOPTION "QUANTIZE_DITHER=OFF"
  FORMATOPTION "QUANTIZE_COLORS=256"
  #FORMATOPTION “INTERLACE=OFF”
END


WEB
  IMAGEPATH "/ms4w/tmp/ms_tmp/" 
  IMAGEURL "/ms_tmp/"
  METADATA
    "wms_srs"   "EPSG:4326 EPSG:3785 EPSG:900913"
    "wms_feature_info_mime_type" "text/html"
  END
END

CONFIG "PROJ_LIB" "D:/ms4w/proj/nad/"

PROJECTION
   "init=epsg:4326"
END

#
# Start of layer definitions
#

LAYER

  NAME test
  INCLUDE "layer_metadata.map"
  TYPE LINE
  STATUS ON 

  CONNECTIONTYPE OGR
  CONNECTION "MSSQL:server=xxx;uid=xxx;pwd=xxx;database=xxx;Integrated Security=True;tables=schema.table(geometry_column_name);GeometryFormat=native"
  #DATA " geometry_column_name (geometry) from schema.table "
  
PROJECTION
   "init=epsg:4326"
END

  CLASS
                STYLE
                COLOR 0 0 0
                WIDTH 1
                END 
   END
                PROCESSING 'CLOSE_CONNECTION=DEFER'
END

END # Map File

Dernière modification par diletant2 (Mon 08 April 2013 10:30)

Hors ligne

 

#4 Thu 21 November 2013 11:29

diletant2
Participant occasionnel
Date d'inscription: 10 Feb 2010
Messages: 36

Re: MapServer 6 - SQL Server 2008

En fait, il suffit d'écrire n'importe quelle requête SQL correcte dans la ligne DATA

voici un bloc qui marche dans un LAYER de mapfile

Code:

  CONNECTIONTYPE OGR
  CONNECTION "MSSQL:server=IP;uid=login;pwd=pwd;database=dbname;tables=tablename(geometry_column_name);GeometryFormat=native"
  PROCESSING 'CLOSE_CONNECTION=DEFER'
  DATA 'select geometry from table'

Il est possible d'ajouter une clause where dans la requête SQL

Hors ligne

 

Pied de page des forums

Powered by FluxBB