Soci/sqlite выдает bad_cast в любой строке.getC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Soci/sqlite выдает bad_cast в любой строке.get

Сообщение Anonymous »

У меня есть установленная программа на C++, использующая SOCI/SQlite. Мне нужно написать преобразование типов, которое будет извлекать большие целые числа в 64-битные члены класса int. AFAIK Мне нужно использовать row.get(myvar) или что-то в этом роде.
В Windows этот явный шаблонный метод get выдает ошибку станд::bad_cast. В Linux он, похоже, переполняет int32 и возвращает значение -1. Если я изменю свои столбцы на BIGINT, все волшебным образом сработает, но я бы предпочел этого не делать — все мои значения меньше 64 бит.
Советы приветствуются!
MCVE:

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

#include 
#include 
#include 

int main() {
try {
// Create an in-memory SQLite database session
soci::session sql(soci::sqlite3, ":memory:");
sql 

Подробнее здесь: [url]https://stackoverflow.com/questions/79266782/soci-sqlite-throwing-bad-cast-on-any-row-getint64-t[/url]
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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