2011-01-25 85 views
2

我可以在Mysql中编写SP并使用调用语句执行。但是希望将其写入python中。我陷入了在多行上使用sql脚本的困境。如何在Python中使用复杂的SQL脚本

conn = pyodbc.connect('DSN=MySQL;PWD=xxxx') 
csr = conn.cursor() 

Sql= 'SELECT something, something 
    FROM table 
    WHERE foo=bar 
    ORDER BY foo ' 

csr.execute(Sql) 
sqld = csr.fetchall() 
+8

放入三引号的文本 - 这样,它不会给你,因为换行符的语法错误。 – Shadikka 2011-01-25 18:12:38

+1

@Shadikka:请将您的答案作为答案发布,而不是评论。如果只是评论,我们不能给您信任。 – 2011-01-25 18:17:24

回答

2

嘿,我不介意让它成为一个正确的答案。

三重引号中的字符串文字可以包含换行符,并且不会导致语法错误。否则(使用“字符串”或“字符串”),您需要在每个换行符之前包含反斜杠以使其正常工作。从经验来看,这很容易搞砸。 :)

作为一个小问题,在Python中,变量通常以小写字母开头,名称以大写字母开头,通常会给类。

所以:

Sql = """SELECT something, something 
     FROM table 
     WHERE foo=bar 
     ORDER BY foo""" 
2

如果你不介意的开销,看看sqlalchemy

的SQLAlchemy是Python SQL工具包和对象关系映射器,让应用程序开发人员的全部功能和SQL的灵活性。