Search
Write a publication
Pull to refresh
0
0
Гранин Дмитрий @granindb

Пользователь

Send message
Мне кажется, что у postgresql другой формат команды
CREATE USER 'zbx_monitor' IDENTIFIED BY '';

CREATE USER name [ [ WITH ] option [ ... ] ]

where option can be:
    
      SYSID uid 
    | CREATEDB | NOCREATEDB
    | CREATEUSER | NOCREATEUSER
    | IN GROUP groupname [, ...]
    | [ ENCRYPTED | UNENCRYPTED ] PASSWORD 'password'
    | VALID UNTIL 'abstime' 
Если не трудно, напишите, как вы настраивали рабочий комплект под linux?

Кстати у меня еще и предупреждение выходит
:-1: предупреждение: «r:\Programs\arduino-1.8.2\hardware\tools\avr\bin\avr-gcc.exe» используется qmake, но «C:\Qt\Qt5.9.1\Tools\mingw530_32\bin\gcc.exe» задан в комплекте.
Обновите комплект или выберите подходящей для вашей целевой платформы mkspec для qmake.
Так что я думаю комплект как раз важен.
Кто-нибудь подскажет, как это исправить?

С комплектом понятно.
А откуда компилятор у меня добавляет опции -c -fno-keep-inline-dllexport -pipe?
Я эти опции вижу только в *.conf файлах самой Qt
В проекте CONFIG -= qt присутствует
Попытался выполнить это под Windows.
Получил ошибку
14:23:12: Запускается: «C:\Qt\Qt5.9.1\Tools\mingw530_32\bin\mingw32-make.exe»
C:/Qt/Qt5.9.1/Tools/mingw530_32/bin/mingw32-make -f Makefile.Release
mingw32-make[1]: Entering directory 'Z:/Coding/qt/arduino_template'
r:/Programs/arduino-1.8.2/hardware/tools/avr/bin/avr-gcc.exe -c -fno-keep-inline-dllexport -pipe -c -g -Os -w -ffunction-sections -fdata-sections -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -O2 -Wextra -Wall -W -DUNICODE -DQT_NEEDS_QMAIN -I. -Isrc -Ir:\Programs\arduino-1.8.2\hardware\arduino\avr\cores\arduino -Ir:\Programs\arduino-1.8.2\hardware\arduino\avr\variants\standard -Ir:\Programs\arduino-1.8.2\hardware\arduino\avr\libraries -I/usr/avr/include -IC:\Qt\Qt5.9.1\5.9.1\mingw53_32\mkspecs\win32-g++ -o release\hooks.o r:\Programs\arduino-1.8.2\hardware\arduino\avr\cores\arduino\hooks.c
avr-gcc.exe: error: command line option '-fno-keep-inline-dllexport' is not supported by this configuration


И по-моему вы пропустили этап
Рабочий комплект оставляем по-умолчанию, поправим это потом

Не увидел, как его настраивать.
А нельзя ли попросить вашего Qt account manager написать статью по мотивам вопросов в обсуждении (хотя бы кратко). А то может оказаться, что ваша позиция в чем-то может сильно отличаться от его мнения (офф. позиции). А многие будут ссылаться на вашу статью и комментарии как на истину, так сказать, в последней инстанции, что будет вводить в заблуждение.
В интернете очень много обсуждений лицензионных моментов Qt, но нигде нет ссылок на кого-то, кто обладает информацией изнутри.
Хочется ясности в вопросе лицензирования…
GUI на десктопе. Ардуино (микроконтроллер), либо, например. датчик температуры, плата и реле, с которыми взаимодействует Qt GUI приложение с помощью протокола, например, через Com-порт (QSerialPort).
Ведь все эти платы, датчик и т.п. попадают под термин device и получается что такое приложение можно написать только при покупке Qt for Device Creation и никак не с Oper source лицензией.
Вот, как пример: https://github.com/Kar1o/Arduino и таких примеров уйма…
А если программа на Qt предназначена для взаимодействия с каким-либо «открытым» устройством (Arduino, например, и пр.), то необходимо покупать лицензию Qt for Device Creation? Ведь ардуино может выступать в роли датчиков/исполнительного устройства и тогда попадает под термин device.
И я подумал что очередные пляски с бубном как с QSqlTableModel мне не нужны.

Это вы про
QSqlTableModel может сохранять данные в базу. Странно что на форме раздельное сохранение данных для таблицы и простых полей. QSqlTableModel иногда работает с ошибками. Потом, у него немного ограниченный функционал. Поэтому вы можете плюнуть и воспользоваться QSqlQueryModel. Который уже ничего не сохраняет, но и ограничений у него нет. В этом случае таблица будет только для чтения.
?

Если да, то я опять же написал EditSqlQueryModel
С которой можно делать так…
contentModel = new EditSqlQueryModel(db, this);
        contentModel->setEditStrategy(EditSqlQueryModel::OnManualSubmit);
        contentModel->showDeleted(false);
        contentModel->setQuery("SELECT "
                               "a.recordid, "
                               "a.productionid, "
                               "a.productionclassid, "
                               "d.name as productionclassname, "
                               "FROM foamcontourproductioncontent a "
                               "left join productionclass as d on a.productionclassid = d.recordid "
                               "where a.foamcontourproductionid = " + QString::number(m_recordId) + " "
                               "order by a.recordid;");

        contentModel->setTable("foam.productioncontent");
        contentModel->init();

        EditSqlQueryModel::FieldMap fMap;
        QSqlRecord rec;
        rec = contentModel->record();
        fMap.insert("recordid", rec.field("recordid"));
        fMap.insert("productionid", rec.field("productionid"));

        contentModel->setUpdatableFields(fMap);

Такая реализация по мотивам Visual FoxPro.
Она правда имеет мало функционала по сравнению с CursorAdapter из VFP, но мне хватает.

Вы по-моему не с той стороны подошли к проблеме.
А вот для этого у меня есть
Q_PROPERTY(int currentKey READ currentKey WRITE setCurrentKey NOTIFY currentKeyChanged USER true)

которое и позволяет QDataWidgetMapper выполнять свою работу.

И, да… У меня записывается в базу именно id
В первом примере кода это видно
mapper->addMapping(comboBox1, mainModel->fieldIndex("referemceid"));

В принципе вы можете найти полную реализацию моего кода, она очень простая.
Ладно, пусть это будет делом вкуса, так сказать.
Но…
То без изменения QSqlQueryModel, в качестве модели комбобокса, выдаст просто список «id». А человекочитаемое значение не будет видно

Это же явное заблуждение, которое и привело вас к созданию собственной модели.
Есть же void setModelColumn(int visibleColumn), которое и задает какой столбец выводить пользователю.
Вот вы заполняете комбобокс пятью строчками кода плюс незнаю что там в модели. А я это делаю одной строкой. Когда комбобоксов от 10-и в программе. Есть над чем задуматься.

Я могу заполнять и одной строчкой кода, если все остальное используется по умолчанию. А модель самая обычная, самое главное чтобы там были столбцы типа int для ключа БД и QString для отображения.
А если таких виджетов много, то можно и фабрику под это дело использовать. Это уже вопрос уровня абстракций.

QDataWidgetMapper и должен работать с тем, что показывается пользователю. Никто же не делает несколько пунктов с одинаковым содержимым 'Пункт1, Пункт1', или я смысл не уловил…
И он у меня работает и глюков пока не замечал.
Я в свое время написал для себя класс выпадающего списка для работы с данными пита [id,text]
   comboBox1 = new BaseKeyComboBox();
    comboBox1->setModel(sourceModel); //модель примерно такая "SELECT RecordID, DisplayText FROM MyCatalog;"
    comboBox1->setModelColumn(1); // Колонка для отображения текста
    comboBox1->setKeyColumn(0); // Колонка для ключа ID ТОЛЬКО int!!!!!!!
    comboBox1->setEditable(false);

    // mapper - это QDataWidgetMapper
    // Подключается как обычно
    mapper->addMapping(comboBox1, mainModel->fieldIndex("referemceid"));

Причем я не понял зачем делать модель специально для этого случая.
У меня можно подцепить любую.

И я не увидел, он у вас с QDataWidgetMapper умеет работать?
Я правильно понял, что Вы в итоге хотите сделать автономный SNMP модуль?
Так вроде nut умеет с этим протоколом работать?
У меня Ippon-ы через него работают.
Или он чем-то не устроил?

Information

Rating
Does not participate
Location
Кузнецк, Пензенская обл., Россия
Date of birth
Registered
Activity