本文目录一览:
- 1、关于python与sql server2000的数据库连接
- 2、python3 连接 sql server 2014
- 3、Python3连sqlsver没反应,怎么破,每次到连接操作就直接卡住了
- 4、Python如何连接Sql anywhere
- 5、python3 连接SQL pymssql
- 6、python怎么连接SQL SERVER?
关于python与sql server2000的数据库连接
用 pyodbc 可以实现
可以参考:
====
con = pymssql.connect(host='192.168.13.122',user='sa',password='',database='YOUR_DB_NAME_HERE')
cur = con.cursor()
cur.execute("Your_T_SQL_HERE")
rows = cur.fetchall()
print rows
不过pymssql读ntext字段的时候会出问题的
python3 连接 sql server 2014
真巧,刚刚做过,链接的也是MSSQL2014的数据库,并且测试是成功的
import pymssql
conn=pymssql.connect(host='主机名或IP',user='数据库用户名',password='数据库用户密码',database='数据库名',charset='utf8')
cursor =conn.cursor()
if not cursor:
raise(NameError,"连接数据库失败")
strsql="select * from 表"
try:
cursor.execute(strsql) #执行SQL语句
conn.commit() #修改数据后提交事务
except:
print(0,"错误:"+strsql)
pass
finally:
print(l,"成功!")
pass
cursor.close() #关闭对象
conn.close() #关闭数据库连接
import pymssql 这句话必须有,主要是pymssql 必须要安装上,可以使用pip list来查看是否安装
Python3连sqlsver没反应,怎么破,每次到连接操作就直接卡住了
以前用php连mssqy时也经常出现中文乱码(中文变问号)的问题,那时就明白是编码没设置好导航,现在的Python连mssql数据库也同样出现这问题,问题一样,解决的办法当然也会相似,现在我们来看看解决方法。
python一直对中文支持的不好,最近老遇到编码问题,而且几乎没有通用的方案来解决这个问题,但是对常见的方法都试过之后,发现还是可以解决的,下面总结了常用的支持中文的编码问题(这些方法中可能其中一个就能解决问题,也可能是多个组合)。
(1)、首先,要保证文件的开头要加上编码设置来说明文件的编码
代码如下
复制代码
#encoding=utf-8
(2)、然后,在连接数据的连接参数里加上字符集说明查询出的结果的编码,这个不加的后果可能是查询出的汉字字符都是问号
代码如下
复制代码
conn=pymssql.connect(server='.',user='', password='',database='MyTest',charset='utf8')
(3)、设置python系统的默认编码(对于文件来说,这招几乎屡试不爽,呵呵~~)
代码如下
复制代码
import sys
reload(sys)
sys.setdefaultencoding('utf8')
注意:上述编码是“utf8”,而不是“utf-8”,我也没弄明白,大部分情况下,这个无所谓的,但是这里我试了必须要是“utf8”
一个简单的完整的python连接mssqlserver的例子如下(得安装pymssql包):
代码如下
复制代码
#encoding:utf8
import sys
reload(sys)
sys.setdefaultencoding('utf8')
import pymssql
try:
conn=pymssql.connect(server='.',user='', password='',database='MyTest',charset='utf8')
sql="select * from UserInfo"
cur=conn.cursor()
cur.execute(sql)
data=cur.fetchall()
conn.close()
print data
except Exception,e:
print e
运行结果如下:
代码如下
复制代码
[(u'20093501', u'xb9xf9xbexb8', u'u7537 ', 35, u'xb4xf3xcfxc0'),
(u'20093502', u'xbbxc6xc8xd8', u'u5973 ', 34, u'xc3xc0xc5xae'),
(u'20093503', u'xc1xeexbaxfcxb3xe5', u'u7537 ', 25, u'2Bxc7xe0xc4xea'),
(u'20093504', u'xc8xcexd3xafxd3xaf', u'u5973 ', 24, u'xc6xafxc1xc1')]
[Finished in 0.2s]
虽然摆脱了问号和乱码的困扰,但这仍不是我们想要的结果,但这个确实是正确的,因为结果是utf8编码。这个现象确实诡异,请教了许多高手,得知,最好的结果就是逐个字段查询,才能显示中文,整个查询的话,会以utf8的格式显示出来。
上述代码中第14行data是整个查询的结果,如果指定某个具体的字段,如print data[0][2](表示取查询结果的第一行第三列的字段的值),则会输出中文。
其实不仅仅是mssqlserver数据库,mysql(需下载MySQLdb包)、sqllite(python自带的文件数据库)、mongodb(需下载PyMongo包)等或者是普通文本文件也是类似的解决方案。
Python如何连接Sql anywhere
1、基于文本文档(Markdown) 设想好需要的基本需要的表、字段、类型;
2、使用 Rails Migration 随着功能的开发逐步创建表;
3、随着细节功能的开发、需求,逐步增加字段,删除字段,或者调整字段类型;
4、第一个 Release 的时候清理 Migrations 合并成一个;
5、随着后期的改动,逐步增加、修改、删除字段或表。
python3 连接SQL pymssql
conn = pymysql.connect(host='10.10.10.10',port = 3306,user='root',passwd='passwd',db ='中文',charset="utf8")
这样就可以了
python怎么连接SQL SERVER?
下文将教您如何创建MySQL存储过程,并附上了详细的步骤,如果您在MySQL存储过程方面遇到过问题,不妨一看,对您会有所帮助。
--选择数据库
mysql use test;
Database changed
--创建示例用表
mysql create table zzm(
- id int primary key auto_increment,
- name varchar(10)
- );
Query OK, 0 rows affected (0.20 sec)
mysql insert into zzm(name) values('zhang');
Query OK, 1 row affected (0.08 sec)
mysql insert into zzm(name) values('zeng');
Query OK, 1 row affected (0.05 sec)
mysql insert into zzm(name) values('ming');
Query OK, 1 row affected (0.05 sec)
mysql select * from zzm;
+----+-------+
| id | name |
+----+-------+
| 1 | zhang |
| 2 | zeng |
| 3 | ming |
+----+-------+
3 rows in set (0.00 sec)
--更改命令结束符(因为在procedure中经常要用到默认的命令结束符--分号(;)
--所以在创建procedure的时候需要定义新的结束符以说明创建procedure的命令结束)
--这里将结束符号改成美元符号--$
mysql delimiter $
--创建MySQL存储过程p3
--此存储过程的过程名是p3,该过程包含两个参数,
--一个是输入类型的(以IN标示),参数名是nameid,类型是int,
--一个是输出类型的(以OUT标示),参数名是person_name,类型是varchar(10)
--此存储过程的作用是查询出zzm表的全部内容,会输出结果集(data set),然后
--再查询表中记录的ID是nameid的字段name,将其输出到第二个输出类型的参数里面,这个查询
--不会输出结果集。
mysql create procedure p3(IN nameid int, OUT person_name varchar(10))
- begin
- select * from test.zzm;
- select zzm.name into person_name from test.zzm where zzm.id = nameid;
- end
- $
Query OK, 0 rows affected (0.00 sec)