python 은 pymssql 을 이용 하여 SQL 을 연결 합 니 다.
freetds 설정
#cat /usr/local/freetds/etc/freetds.conf
# $Id: freetds.conf,v 1.12 2007/12/25 06:02:36 jklowden Exp $## This file is installed by FreeTDS if no file by the same # name is found in the installation directory. ## For information about the layout of this file and its settings, # see the freetds.conf manpage "man freetds.conf". # Global settings are overridden by those in a database# server specific section[global] # TDS protocol version;tds version = 4.2# Whether to write a TDSDUMP file for diagnostic purposes# (setting this to /tmp is insecure on a multi-user system);dump file = /tmp/freetds.log;debug flags = 0xffff# Command and connection timeouts;timeout = 10;connect timeout = 10# If you get out-of-memory errors, it may mean that your client# is trying to allocate a huge buffer for a TEXT field. # Try setting 'text size' to a more reasonable limit text size = 64512# A typical Sybase server#newadd[test_db] host = 127.0.0.1 port = 1433 tds version = 8.0 client charset = GBK
SQL 서버 연결 코드
import sys
import pymssql
class Mssql:
def __init__(self, config):
self.cf = config
def __Connect(self):
try:
self.conn = pymssql.connect(host=self.cf['host'],user=self.cf['user'],password=self.cf['pwd'],database=self.cf['db'])
cur = self.conn.cursor()
except Exception, err:
print "Error decoding config file: %s" % str(err)
sys.exit(1)
return cur
def select(self, sql):
try:
cur = self.__Connect()
cur.execute(sql)
rows = cur.fetchall()
cur.close()
self.conn.close()
return rows
except Exception, err:
print "Error decoding config file: %s" % str(err)
sys.exit(1)
def insert(self, sql):
try:
cur = self.__Connect()
cur.execute(sql)
cur.close()
self.conn.commit()
self.conn.close()
except Exception, err:
print "Error decoding config file: %s" % str(err)
sys.exit(1)
def main():
config = {'host':'test_db','user':'test','pwd':'123456','db':'Testdb'}
mssql = Mssql(config)
#select sql
sql = "select * from test_table"
rows = mssql.select(sql)
#insert sql
sql = "insert into test_table values('1','2','3')"
mssql.insert(sql)
if __name__ == "__main__":
main()
주: host 안의 testdb 는 freetds 설정 을 호출 하여 ip 을 직접 쓸 수 있 습 니 다.
다음은 pymssql 의 매개 변수 사용 설명 입 니 다. 다음 과 같 습 니 다.
1. pymssqlCnx 클래스 (Mssql 데이터베이스 연결 에 사용)
pymssql. connect () 는 연결 클래스 를 초기 화 합 니 다. 다음 매개 변 수 를 허용 합 니 다.
dsn: 연결 문자열, 이전 버 전의 pymssql 호 환 user: 사용자 이름 password: 비밀번호 trusted: 불 값, windows 인증 으로 host 에 로그 인 할 지 여부 지정: 호스트 이름 database: 데이터베이스 timeout: 조회 시간 초과 logintimeout: 로그 인 시간 초과 charset: 데이터베이스 문자 집합 asdict: 불 값, 반환 값 이 사전 인지 원 그룹 max 인지 지정 합 니 다.conn: 최대 연결 수
2. Method
autocommt (status) 불 값 은 자동 으로 업 무 를 제출 할 지 여 부 를 표시 합 니 다. 기본 상 태 는 닫 혀 있 습 니 다. 열 려 면 commt () 방법 으로 업 무 를 제출 해 야 합 니 다.close () 연결 cursor () 를 닫 고 커서 대상 을 되 돌려 줍 니 다. 데이터 commt () 제출 업 무 를 조회 하고 되 돌려 줍 니 다.rollback () 스크롤 백 트 랜 잭 션 pymssqlCursor 류 는 데이터베이스 에서 데이터 rowcount 를 조회 하고 되 돌려 주 며 마지막 작업 에 영향 을 주 는 줄 수 를 되 돌려 줍 니 다.connection 커서 를 만 든 연결 대상 lastrowid 를 되 돌려 줍 니 다. 삽 입 된 마지막 줄 rownumber 를 되 돌려 줍 니 다. 현재 데이터 에 집 중 된 커서 를 되 돌려 줍 니 다. (색인 을 통 해)
3. 커서 방법
close () 커서 execute (operation) 를 닫 고 execute (operation, params) 를 실행 합 니 다. 매개 변 수 를 제공 하여 executemany (operation, params seq) 를 실행 할 수 있 습 니 다. Paramsseq 는 원 그룹 fetchone () 으로 결과 에서 다음 줄 fetchmany (size = None) 를 읽 습 니 다. 결과 에서 지정 한 수의 줄 fetchall () 을 읽 고 모든 줄 nextset () 커서 를 다음 데이터 세트 로 이동 합 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
로마 숫자를 정수로 또는 그 반대로 변환그 중 하나는 로마 숫자를 정수로 변환하는 함수를 만드는 것이었고 두 번째는 그 반대를 수행하는 함수를 만드는 것이었습니다. 문자만 포함합니다'I', 'V', 'X', 'L', 'C', 'D', 'M' ; 문자열이 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.