Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 6, 2012 22:00:35

denveren0k
Зарегистрирован: 2012-09-06
Сообщения: 35
Репутация: +  0  -
Профиль   Отправить e-mail  

Сделать выборку из БД в файл

Доброго времени суток уважаемые форумчане.
Требуется помощь в выборке таблицы из БД в файл.

Делаю так

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# Импортируем библиотеку для работы с MSSQL
import pymssql
# Соединение с БД
con = pymssql.connect(host='Acer-7750G', user='sa', password='123', database='pubs')
#raw_input()
# Создаем курсор для работы с соединением
cur = con.cursor()
#raw_input()
# Выполняем запрос
cur.execute("select * from dbo.authors;")
# Прокручиваем все записи из запроса
for i in cur.fetchall():
   #Данные в БД в кодировке cp1251, поэтому сначала переводим их в юникод
   i = unicode(i[1],'windows-1251')
   f = open('C:\\python\workfile.txt', 'r+')
   f.write(i)
   f.closed
# Подтверждаем транзакцию и закрываем соединение
con.commit()
con.close()
raw_input()
Выводит только 1 строку в файл а их там с десяток.
Подскажите пожалуйста как заставить цикл работать?
Заранее спс.

Офлайн

#2 Сен. 6, 2012 22:14:31

Soteric
От:
Зарегистрирован: 2010-09-19
Сообщения: 352
Репутация: +  20  -
Профиль   Отправить e-mail  

Сделать выборку из БД в файл

f = open('C:\\python\workfile.txt', 'r+')
Файл перезаписывается на каждой итерации. Нужно открывать его в режиме append
f = open('C:\\python\workfile.txt', 'a')
А еще лучше открывать перед циклом и закрывать после.



Отредактировано Soteric (Сен. 6, 2012 22:15:23)

Офлайн

#3 Сен. 6, 2012 22:23:24

denveren0k
Зарегистрирован: 2012-09-06
Сообщения: 35
Репутация: +  0  -
Профиль   Отправить e-mail  

Сделать выборку из БД в файл

Вот блин не доперло сразу, теперь все норммально.
Спасибо за оперативную помощь.

Офлайн

#4 Сен. 11, 2012 15:21:02

NikitaChukov
Зарегистрирован: 2012-09-11
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

Сделать выборку из БД в файл

Друзья, не могу понять зачем нужен
con.commit()

Офлайн

#5 Сен. 11, 2012 17:19:52

Soteric
От:
Зарегистрирован: 2010-09-19
Сообщения: 352
Репутация: +  20  -
Профиль   Отправить e-mail  

Сделать выборку из БД в файл

При селектах видимо не нужен.



Офлайн

#6 Сен. 11, 2012 17:20:03

Lexander
От:
Зарегистрирован: 2008-09-19
Сообщения: 1139
Репутация: +  33  -
Профиль   Отправить e-mail  

Сделать выборку из БД в файл

В этом примере - не нужен.



Офлайн

#7 Сен. 15, 2012 00:40:30

slav0nic
Команда
От: dp.ua
Зарегистрирован: 2006-05-07
Сообщения: 2260
Репутация: +  41  -
Профиль   Отправить e-mail  

Сделать выборку из БД в файл

denveren0k
не лучше ли иcпользовать для этих целей bcp?

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version