PC SOFT

PROFESSIONAL NEWSGROUPS
WINDEVWEBDEV and WINDEV Mobile

Home → WINDEV 2025 → Pyodbc et HFSQL
Pyodbc et HFSQL
Started by nicko7780, Oct., 08 2019 7:20 PM - 10 replies
Posted on October, 08 2019 - 7:20 PM
Bonjour,

Je m'arrache les cheuvuex depuis quelques jours sur une connect odbc via python pour accéder à HFSQL
J'ai déjà fais des connections du même type avec MSSQL, ORACLE, mais avec HFSQL je bloque.


cnxString = 'DRIVER={HFSQL};DSN=MyDsnHFSQL;Server Name=127.0.0.1;Server Port=4900;Database=HFSQLDB;UID=admin;PWD=""'

cnx = pyodbc.connect(cnxString)


Et quoique je fasse, j'obtiens toujours une erreur :

return codecs.utf_16_le_decode(input, errors, True)
UnicodeDecodeError: 'utf-16-le' codec can't decode bytes in position 432-433: illegal UTF-16 surrogate


Est-ce que quelqu'un a réussi à connecter une base HFSQL via pyodbc ?


Merci
Registered member
160 messages
Posted on October, 09 2019 - 7:56 AM
Il me semble que c'est un problème d'encodage, python est chiant la dessus,

essaye d'utiliser l'encodage utf8 au lieu d'encodage utf-16, mets ce code en tout début de ton code

#!/usr/bin/env python
# -*- coding: utf-8 -*-

tient moi au courant,
Registered member
160 messages
Posted on October, 09 2019 - 7:56 AM
Il me semble que c'est un problème d'encodage, python est chiant la dessus,

essaye d'utiliser l'encodage utf8 au lieu d'encodage utf-16, mets ce code en tout début de ton code

#!/usr/bin/env python
# -*- coding: utf-8 -*-

tient moi au courant,
Posted on October, 09 2019 - 11:53 AM
Bonjour,

Merci pour ta réponse.
J'ai en effet cet ligne en entête de tous mes programmes python, et malheureusement ça ne fonctionne pas.

J'ai essayé plusieurs choses :
- mettre en effet cet entête
- supprimer cet entête
- essayer d'autre encodage

Rien n'y fait, j'ai toujours cette erreur avec pyodbc
Registered member
160 messages
Posted on October, 09 2019 - 3:33 PM
t'es en python 2 ou 3 ? peux tu m'envoyer le ton code complet ?
Posted on October, 11 2019 - 9:35 PM
Voici mon code

# -*- coding: utf-8 -*-
import sys,os,codecs
import pyodbc
import requests

# query to select component already created in ShotscopeNX
sQrySelectComponents = "SELECT ComponentCode " + \
"FROM [DBMGT].[dbo].[Components]"

connect_db = 'DRIVER={HFSQL};DSN=dbmgt;Server=127.0.0.1:4900;Database=dbmgt'

# connect to MGT database and retrieve component
try:
    cnxDB = pyodbc.connect(connect_db)
    print('Connection  Ok')

    cursor_db = connect_db.cursor()
    cursor_db.execute(sQrySelectComponents)

    rowComp = cursor_db.fetchone()
    
while rowSsnxComp:
            print(rowComp)
            
            # go to next row
            rowSsnxComp = cursor_db.fetchone()
    
    cnxDB.close()

except pyodbc.Error as ex:
    print('Connection not Ok')
    sqlstate = ex.args[1]
    print(sqlstate)
Registered member
22 messages
Posted on October, 18 2019 - 3:54 PM
J'ai beau tourner les info dans tous les sens, j'ai toujours un message d'encodage, malgré les différents système que j'utilise.
Registered member
5 messages
Posted on October, 18 2019 - 5:42 PM
Registered member
22 messages
Posted on October, 18 2019 - 8:06 PM
Merci beaucoup. Je vais essayer tout ça rapidement.
Posted on March, 30 2022 - 10:38 PM
Salut,, en espérant que tu puisses répondre, j'ai le même problème que toi et j'aimerais trouvé une solution pour le résoudre... Est-ce que tu avais réussi au final ?
Registered member
22 messages
Posted on April, 17 2022 - 8:39 PM
Bonjour,

Non malheureusement je n'ai eu aucune réponse à mon problème et je n'ai pas reçu à résoudre cela.