Script runner

Вопросы по свободной ГИС QGIS. Сообщения об ошибках, предложения по улучшению, локализация.
Ответить
M@ri
Новоприбывший
Сообщения: 7
Зарегистрирован: 09 фев 2013, 14:49
Репутация: 0

Script runner

Сообщение M@ri » 15 фев 2013, 11:58

Доброго времени суток)
Создаю слой с данными из таблицы из БД MS SQl Server

Код: Выделить всё

uri = "MSSQL:server=ALPHA\SQLEXPRESS;database=DB;tables=dbo.Sector;trusted_connection=yes"
qgis.utils.iface.addVectorLayer(uri,'moment','ogr')
aLayer = qgis.utils.iface.activeLayer()
Делаю то же используя sqript runner:

Код: Выделить всё

def run_script(iface):
	uri = "MSSQL:server=ALPHA\SQLEXPRESS;database=DB;tables=dbo.Sector;trusted_connection=yes"
	qgis.utils.iface.addVectorLayer(uri,'moment','ogr')
	aLayer = qgis.utils.iface.activeLayer()
Пишет ошибку:
Traceback (most recent call last):
File "C:/Users/Q/.qgis//python/plugins\scriptrunner\scriptrunner.py", line 298, in run_script
user_script.run_script(self.iface)
File "D:\1.py", line 4, in run_script
qgis.utils.iface.addVectorLayer(uri,'moment','ogr')
NameError: global name 'qgis' is not defined

Помогите разобраться, что я делаю не так

Аватара пользователя
dab
Гуру
Сообщения: 671
Зарегистрирован: 16 дек 2011, 20:02
Репутация: 170
Ваше звание: Гуру
Откуда: Москва
Контактная информация:

Re: Script runner

Сообщение dab » 15 фев 2013, 14:23

Так попробуйте

Код: Выделить всё

iface.mainWindow().addVectorLayer(uri,'moment','ogr')

M@ri
Новоприбывший
Сообщения: 7
Зарегистрирован: 09 фев 2013, 14:49
Репутация: 0

Re: Script runner

Сообщение M@ri » 15 фев 2013, 14:46

Теперь пишет:

Код: Выделить всё

iface.mainWindow().addVectorLayer(uri,'moment','ogr')
TypeError: QMainWindow.addVectorLayer() called with 3 arguments but 0 expected
При вызове addVectorLayer без аргументов, т.е. addVectorLayer() выдает окно добавления слоя, где нужно все выбирать ручками.

Аватара пользователя
dab
Гуру
Сообщения: 671
Зарегистрирован: 16 дек 2011, 20:02
Репутация: 170
Ваше звание: Гуру
Откуда: Москва
Контактная информация:

Re: Script runner

Сообщение dab » 15 фев 2013, 15:20

Тогда, судя по http://qgis.org/api/1.8/classQgisInterf ... ad89e7f36e

Код: Выделить всё

iface.addVectorLayer(uri,'moment','ogr')

M@ri
Новоприбывший
Сообщения: 7
Зарегистрирован: 09 фев 2013, 14:49
Репутация: 0

Re: Script runner

Сообщение M@ri » 15 фев 2013, 15:29

Спасибо, заработало:)

Ответить

Вернуться в «QGIS»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 3 гостя