Как можно получить последние геопозиции?

qwerty 8 years ago

Всем привет )
У меня еще одна база данных можно ли как то записовать туда последние геопозиции чтоб не делать лишние запросы

Anton Tananaev 8 years ago

Если база на том же сервере то можно добавить дополнительные SQL запросы в конфигурацию.

qwerty 8 years ago

Можно так использовать если не так можете показать маленький пример? спасибо!

    <entry key='database.insertPosition'>
        INSERT INTO positions (deviceId, protocol, serverTime, deviceTime, fixTime, valid, latitude, longitude, altitude, speed, cours$
        VALUES (:deviceId, :protocol, :now, :deviceTime, :fixTime, :valid, :latitude, :longitude, :latitude, :speed, :course, :address$

        UPDATE `taxi`.`drivers` SET `lat` = :latitude WHERE `taxi`.`drivers`.`id` = 6;
    </entry>
Anton Tananaev 8 years ago

Примерно так.

qwerty 8 years ago

Спасибо большое !

А логи можно где то посмотреть? проста сейчас не получается обновить записи в базе данных.

qwerty 8 years ago

Вот мой конфиг

<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE properties SYSTEM 'http://java.sun.com/dtd/properties.dtd'>
<properties>
    <entry key="config.default">./conf/default.xml</entry>
    <entry key='web.port'>8082</entry>
    <entry key='geocoder.enable'>false</entry>
    <entry key='database.driver'>com.mysql.jdbc.Driver</entry>
    <entry key='database.url'>jdbc:mysql://localhost/traccar?allowMultiQueries=true&amp;autoReconnect=true&amp;useUnicode=yes&amp;chara
cterEncoding=UTF-8&amp;sessionVariables=sql_mode=''</entry>
    <entry key='database.user'>user</entry>
    <entry key='database.password'>pass</entry>
    <entry key='server.timeout'>120</entry>
    <entry key='database.insertPosition'>
        INSERT INTO positions (deviceId, protocol, serverTime, deviceTime, fixTime, valid, latitude, longitude, altitude, speed, course
, address, attributes)
        VALUES (:deviceId, :protocol, :now, :deviceTime, :fixTime, :valid, :latitude, :longitude, :altitude, :speed, :course, :address,
 :attributes);

        UPDATE `taxi.itmaker.uz`.`drivers` SET `lat` = :latitude WHERE `taxi.itmaker.uz`.`drivers`.`id` = 6;
    </entry>
</properties>
Anton Tananaev 8 years ago

Путь к логам можно найти тут:

https://www.traccar.org/troubleshooting/

qwerty 8 years ago

Я нашел логи и тут пишет что с параметрами что то не так
Вот логи

2018-05-02 12:35:04  WARN: No value specified for parameter 3 - SQLException (... < QueryBuilder:477 < DataManager:448 < DefaultDataHan
2018-05-02 12:35:04  INFO: [93DEDE94] id: 1, time: 2018-05-02 12:34:37, lat: 41.27578, lon: 69.21513, speed: 0.0, course: 0.0
2018-05-02 12:35:04 DEBUG: [93DEDE94: 5055 < 213.230.78.58] HEX: 504f5354202f3f69643d312674696d657374616d703d31353235323533363938266c61
2018-05-02 12:35:04 DEBUG: [93DEDE94: 5055 > 213.230.78.58] HEX: 485454502f312e3120323030204f4b0d0a436f6e74656e742d4c656e6774683a20300d
2018-05-02 12:35:04  WARN: No value specified for parameter 3 - SQLException (... < QueryBuilder:477 < DataManager:448 < DefaultDataHan
2018-05-02 12:35:04  INFO: [93DEDE94] id: 1, time: 2018-05-02 12:34:58, lat: 41.27584, lon: 69.21514, speed: 0.0, course: 0.0
2018-05-02 12:35:13  INFO: user: 1, action: login

А вот мои запросы

<entry key='database.insertPosition'>
        INSERT INTO positions (deviceId, protocol, serverTime, deviceTime, fixTime, valid, latitude, longitude, altitude, speed, course
, address, attributes)
        VALUES (:deviceId, :protocol, :now, :deviceTime, :fixTime, :valid, :latitude, :longitude, :altitude, :speed, :course, :address,
 :attributes);

        UPDATE `taxi`.`drivers` SET `lat` = 1000 WHERE `taxi`.`drivers`.`id` = 6;
    </entry>
qwerty 8 years ago

В чем проблема подскажите плиз ))

Anton Tananaev 8 years ago

Параметра :now уже не существует. Используйте стандартную функцию базы данных чтобы получить время.

qwerty 8 years ago

Спасибо большое ! заработал