The code:

Qt Code:
  1. quint16 packet_list_hex[]=
  2. {FMI_ID_ENABLE, FMI_ID_PRODUCT_ID_SUPPORT_RQST, FMI_ID_UNICODE_REQUEST, FMI_ID_SERVER_OPEN_TXT_MSG,
  3. FMI_ID_SERVER_OK_ACK_TXT_MSG, FMI_ID_SERVER_YES_NO_CONFIRM_MSG, FMI_A604_OPEN_TEXT_MSG, FMI_SET_CANNED_RESPONSE,
  4. FMI_DELETE_CANNED_RESPONSE, FMI_SET_CANNED_MSG, FMI_DELETE_CANNED_MSG, FMI_ID_A603_STOP, FMI_ID_SORT_STOP_LIST,
  5. FMI_ID_ETA_DATA_REQUEST, FMI_ID_AUTO_ARRIVAL, FMI_ID_DATA_DELETION, FMI_ID_USER_INTERFACE_TEXT,FMI_MSG_THROTTLING_QUERY,
  6. FMI_SET_DRIVER_STATUS_LIST_ITEM, FMI_DELETE_DRIVER_STATUS_LIST_ITEM
  7. };
  8. QString packets_list;
  9. quint8 size = sizeof(packet_list_hex) / sizeof(packet_list_hex[0]);
  10. for (int n=0; n< size; n++) {
  11. packets_list += QString::number( packet_list_hex[n] );
  12. if (n<size-1)
  13. packets_list+=",";
  14. }
To copy to clipboard, switch view to plain text mode 

Qt Code:
  1. sql ="SELECT packet_id, fmi_packet_id, msg_id, txt_container, unique_id, st_x(destination) as lon, st_y(destination) as lat, eta_time, eta_dist_to_dest FROM garmin_packets "
  2. "WHERE unit_imei=? AND ack=FALSE AND fmi_packet_id IN (?)";
  3. query.prepare(sql);
  4. query.bindValue(0, data.imei.data());
  5. query.bindValue(1, packets_list);
  6. query.exec();
To copy to clipboard, switch view to plain text mode 

Postgresql log spits this out:

Qt Code:
  1. ERROR invalid input syntax for integer: "0,1,4,33,34,35,42,48,49,80,82,257,272,512,544,560,576,594,2048,2049" at character 43
To copy to clipboard, switch view to plain text mode 

So QSqlQuery::bindValue should be putting those surrounding quotes there...

Any hints b4 I revert to using sprintf() ?

BR