Cet article présente principalement la méthode de connexion de Python à SQLServer2000 et analyse les problèmes courants et les précautions associées rencontrés lors de la mise en œuvre de la connexion à la base de données par Python sous forme d'exemples. Les amis dans le besoin peuvent se référer à
. Cet article L'exemple décrit comment Python se connecte à SQLServer2000. Partagez-le avec tout le monde pour votre référence, les détails sont les suivants :
pymssql.sourceforge.net/ Présentation d'une bonne adresse pour que PYTHON se connecte à MSSQL !
Une bonne façon d'utiliser Python est de trouver de nombreux modules prêts à l'emploi sur Internet, puis de les télécharger directement et de les utiliser. L’une des raisons de ce développement rapide est la suivante. Maintenant nous allons principalement étudier les fonctions de fonctionnement du module pymssql !
Vous pouvez directement interroger le document d'aide après l'installation pour afficher certains documents d'aide sur les fonctions de ce module.
1. Une méthode pour résoudre le problème des caractères tronqués :
s.decode('gbk', 'ignore')
Par exemple, si vous souhaitez convertir un objet String du code interne gbk en UTF-8, vous pouvez opérer comme suit
s.decode('gbk').encode('utf-8')
Cependant, dans le développement réel, j'ai trouvé que cette méthode provoque souvent des exceptions :
UnicodeDecodeError : le codec 'gbk' peut' t décoder les octets en position 30664-30665 : séquence multi-octets illégale
Cela est dû au fait qu'un caractère illégal est rencontré - en particulier dans certains programmes écrits en C/C++, les espaces pleine chasse ont souvent de nombreuses implémentations différentes. Par exemple, /xa3/xa0, ou /xa4/x57, ces caractères semblent être des espaces pleine chasse, mais ce ne sont pas des espaces pleine chasse « légaux » (les vrais espaces pleine chasse sont /xa1/xa1), donc quand transcodage Une exception s'est produite pendant le processus.
Heureusement, tiny a trouvé une solution parfaite (on m'a reproché de ne pas avoir lu attentivement la documentation, transpirer...)
s.decode('gbk', 'ignore').encode('utf-8')
Parce que le prototype de fonction de decode est decode([ encoding] , [errors='strict']), vous pouvez utiliser le deuxième paramètre pour contrôler la stratégie de gestion des erreurs. Le paramètre par défaut est strict, ce qui signifie qu'une exception sera levée lorsqu'un caractère illégal est rencontré
< ; 🎜> Si défini sur ignore, les caractères illégaux seront ignorés ; Si défini sur replace, les caractères illégaux seront remplacés par ? ;
Si défini sur xmlcharrefreplace, les références de caractères XML seront utilisées.
import MySQLdb
import pymssql
conn = MySQLdb.connect(self.dbhost,self.dbuser,self.dbpasswd,self.database)
conn = pymssql.connect(host=self.dbhost,user=self.dbuser,password=self.dbpasswd,database=self.database)
curs = conn.cursor()
curs.execute(SQL)
curs.execute("select * from test")
cursor.execute("insert into test(id) values(1)")
curs.execute("select * from test") rows = curs.fetchall()
for i in range(len(rows)): print "Row",i,"name",rows[i][0],"value",rows[i][1]
def test(self): conn = self.connect() sql="select * from bbs where id<20" curs = conn.cursor() #得到一个游标对象 curs.execute(sql) #执行一个SQL语句 rows=curs.fetchall() #得到全部的查询结果集 for i in range(len(rows)): # print "Row",i,"name",rows[i][3],"value",rows[i][4] conn.close()
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!