Detailliertes Beispiel, das Ihnen beibringt, wie Sie mit Python eine Verbindung zu SQLServer2000 herstellen

Y2J
Freigeben: 2017-05-03 16:24:37
Original
2035 Leute haben es durchsucht

Dieser Artikel stellt hauptsächlich die Methode zum Verbinden von SQLServer2000 mit Python vor und analysiert die häufigen Probleme und damit verbundenen Vorsichtsmaßnahmen, die bei der Implementierung einer Datenbankverbindung in Python auftreten, in Form von Beispielen. Freunde in Not können sich auf diesen Artikel beziehen

Das Beispiel beschreibt, wie Python eine Verbindung zu SQLServer2000 herstellt. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:

pymssql.sourceforge.net/ Wir stellen eine gute Adresse für PYTHON vor, um eine Verbindung zu MSSQL herzustellen!

Eine gute Möglichkeit, Python zu nutzen, besteht darin, viele vorgefertigte Module im Internet zu finden und diese dann direkt herunterzuladen und zu verwenden. Dies ist einer der Gründe für die rasante Entwicklung. Jetzt werden wir uns hauptsächlich mit den Betriebsfunktionen des PymsSQL-Moduls befassen!

Sie können das Hilfedokument nach der Installation direkt abfragen, um einige Funktionshilfedokumente dieses Moduls anzuzeigen.

1. Eine Methode zur Lösung des Problems verstümmelter Zeichen:

s.decode('gbk', 'ignore')
Nach dem Login kopieren

Zum Beispiel, wenn Sie ein String-Objekt s aus internem GBK-Code konvertieren möchten UTF-8, Sie können wie folgt vorgehen

s.decode('gbk').encode('utf-8')
Nach dem Login kopieren

In der tatsächlichen Entwicklung habe ich jedoch festgestellt, dass diese Methode häufig Ausnahmen verursacht:

UnicodeDecodeError: 'gbk' codec can' t dekodiert Bytes an Position 30664-30665: illegale Multibyte-Sequenz

Dies liegt daran, dass illegale Zeichen auftreten – insbesondere in einigen in C/C++ geschriebenen Programmen haben Leerzeichen voller Breite oft viele verschiedene Implementierungen. Zum Beispiel , /xa3/xa0 oder /xa4/x57, diese Zeichen scheinen Leerzeichen in voller Breite zu sein, aber sie sind keine „legalen“ Leerzeichen in voller Breite (die tatsächlichen Leerzeichen in voller Breite sind /xa1/xa1), also beim Transkodieren Während des Vorgangs ist eine Ausnahme aufgetreten.

Zum Glück hat Tiny eine perfekte Lösung gefunden (ich wurde dafür kritisiert, dass ich die Dokumentation nicht sorgfältig gelesen habe, Schweiß...)

s.decode('gbk', 'ignore').encode('utf-8')
Nach dem Login kopieren

Denn der Funktionsprototyp von decode ist decode([ Kodierung] , [errors='strict']), können Sie den zweiten Parameter verwenden, um die Fehlerbehandlungsstrategie zu steuern. Der Standardparameter ist strikt, was bedeutet, dass eine Ausnahme ausgelöst wird, wenn ein unzulässiges Zeichen auftritt > Wenn auf „Ignorieren“ gesetzt, werden unzulässige Zeichen ignoriert.

Bei „Ersetzen“ werden unzulässige Zeichen durch ? ersetzt.

Bei der Einstellung „xmlcharrefreplace“ werden XML-Zeichenreferenzen verwendet.

Diese Methode ist wirklich hilfreich. Das Problem, illegale Zeichen voller und halber Breite in der Datenbank zu speichern, können Sie wie folgt lösen!

Zeichenkodierung bereitet immer Kopfschmerzen, haha!

2.www.python.org/dev/peps/pep-0249/

Das Obige bietet allgemeine Betriebsfunktionen von Python-DBAPI.

Fassen Sie die relevanten API-Betriebsmethoden zusammen:

3. Fassen Sie den allgemeinen Programmprozess der Verbindung von Python mit der Datenbank zusammen und schreiben Sie ihn wie folgt:

Schritt 1: Zugehöriges Modul importieren

wo MYSQL:

wo MSSQL:

import MySQLdb
Nach dem Login kopieren

Schritt 2: Öffnen Sie die Verbindung

import pymssql
Nach dem Login kopieren
wo MYSQL:

Unter ihnen MSSQL:

conn = MySQLdb.connect(self.dbhost,self.dbuser,self.dbpasswd,self.database)
Nach dem Login kopieren

[Diese Methode wird durch einen eigenen Funktionsprototyp definiert]

conn = pymssql.connect(host=self.dbhost,user=self.dbuser,password=self.dbpasswd,database=self.database)
Nach dem Login kopieren
Schritt 3: Nachdem die Verbindung hergestellt wurde, beginnen Sie mit der Erstellung eines Cursors. Verwenden Sie dieses Objekt, um eine Anforderungsoperation an die Datenbank zu senden.

Code:

Es entspricht dem Statement-Objekt in JAVA. Senden Sie SQL-Befehle über Anweisungen

curs = conn.cursor()
Nach dem Login kopieren

Schritt 4: Beginnen Sie mit dem Senden von SQL-Befehlen an den Datenbankserver. Sie können es wie folgt tun

Zum Beispiel:

curs.execute(SQL)
Nach dem Login kopieren

Der SQL-Befehl kann eine beliebige SQL-Anweisung sein, die eine INSERT-Operation, eine DELETE-Operation oder eine SELECT-Operation sein kann

curs.execute("select * from test")
Nach dem Login kopieren
Bitte beachten Sie, dass commit() nach der Ausführung erforderlich ist.

Zum Beispiel:

Wenn die SELECT-Operation ausgeführt wird, ist der fünfte Schritt erforderlich:

cursor.execute("insert into test(id) values(1)")
Nach dem Login kopieren
Der fünfte Schritt:

fetchall() ist nur eine Methode unseres Cursorobjekts.

curs.execute("select * from test")
rows = curs.fetchall()
Nach dem Login kopieren
Jetzt können Sie die relevanten Informationen extrahieren

Sehen Sie sich den Code an, den ich geschrieben habe:

for i in range(len(rows)):
 print "Row",i,"name",rows[i][0],"value",rows[i][1]
Nach dem Login kopieren

Ich verstehe: Durch diese Methode erhalte ich eine Zeile A Datensatz ist eigentlich eine Tupel-Datenstruktur.

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()
Nach dem Login kopieren
Um eines davon zu erhalten, können Sie es mit einer Methode abfragen, die einem zweidimensionalen Array ähnelt.

rows[1][0]: stellt den Wert der ersten Position im ersten Datensatz dar.

Dann schauen wir uns an, wie man es aus der Datenbank extrahiert und es dann kodiert und dekodiert

Das obige ist der detaillierte Inhalt vonDetailliertes Beispiel, das Ihnen beibringt, wie Sie mit Python eine Verbindung zu SQLServer2000 herstellen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!