Bonjour à tous,
Je rencontre des problèmes de communication entre un serveur RedHat et un serveur Microsoft SQL.
Le but est de remplir un formulaire en php. La requete se passe bien mais je ne récupère que 255 caractères en retour...
Dans ces formulaires, on retrouve deux champs de type texte et qui sont enregistrés dans une table sql serveur, dans un champ de taille 2000 et de type nvarchar. A la restitution, le formulaire php ne me renvoie que les 255 premiers caractères.
Lorsque je teste de faire des requetes en isql, je ne recois que les 255 premiers caractères.
La configuration est la suivante :
-1 serveur RedHat 2.6.18-308.8.2.el5 x64
-- apache httpd-2.2.3-65.el5_8
-- php php-5.1.6-39.el5_8
-- freetds freetds-0.91-2.el5 & freetds-devel-0.91-2.el5
+
-1 serveur MSSQL Windows 2003 R2 x86
--Microsoft SQL 2008 R2
Pour faire communiquer le serveur RedHat et le serveur SQL, j'utilise FreeTDS.
Ci-dessous la configuration de mes fichiers :
freetds.confodbcinst.ini
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 [global] # TDS protocol version tds version = 7.1 dump file = /tmp/freetds.log debug flags = 0xffff text size = 64512 [SRVSQLOSIDEV-RH] host = srvsqlosi-dev instance = dosidev port = 111 tds version = 8.0 database = RHodbc.ini
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 [FreeTDS] Description = FreeTDS unixODBC Driver Driver = /usr/lib64/libtdsodbc.so Setup = /usr/lib64/libtdsS.so.1 UsageCount = 4La communication entre les serveurs est OK :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 [SRVSQLOSIDEV-RH] Driver = FreeTDS # [NOM_DU_DRIER] le meme que dans odbcinst.ini Description = SRVSQLOSIDEV-RH Server = srvsqlosi-dev\dosidev Trace = Yes TraceFile = /var/log/freetds.log Port = 1119 TDS Version = 8.0 client charset = UTF-8 Database = RH User = ******** Password = ******** Option = 3 ReadOnly = No
Pour vérifier le driver, la connexion tsql passe bien
Pour tester l'envoi de requête, la connexion isql passe bien également
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 tsql -S NOM_BASE -U login -P password > OK
MAIS au moment de lancer une requete en isql
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 isql -v NOM_BASE login password > OK
Je n'obtiens pas le resultat complet. Il y a un résultat avec une "|" à la fin, le reste du message n'apparait pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 >SELECT accident_circonst FROM T_Agr where agr_Id=412 resultat = Mr xxxxxxx Ã*contacter le rds d interim (************) Ã* 9H30 en indiquant ne pas se sentir capable de travailler aujourd hui suite Ã* de violentes douleurs abdominales depuis plusieurs jours en précisant qu il avait eu beaucoup de mal Ã* se rendr|
Si je teste la requete sur le serveur SQL (management studio), je n'ai aucun problème, le résultat est complet...
Ma question : FreeTDS est-il capable de renvoyer plus de 255 caractères en nvarchar.
Sur la documentation, il me semble que c'est possible.
Merci d'avance pour vos réponses
Partager