Страница 1 из 1

Script runner

Добавлено: 15 фев 2013, 11:58
M@ri
Доброго времени суток)
Создаю слой с данными из таблицы из БД 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

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

Re: Script runner

Добавлено: 15 фев 2013, 14:23
dab
Так попробуйте

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

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

Re: Script runner

Добавлено: 15 фев 2013, 14:46
M@ri
Теперь пишет:

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

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

Re: Script runner

Добавлено: 15 фев 2013, 15:20
dab
Тогда, судя по http://qgis.org/api/1.8/classQgisInterf ... ad89e7f36e

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

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

Re: Script runner

Добавлено: 15 фев 2013, 15:29
M@ri
Спасибо, заработало:)