Как вычислить тип и размерность полей MySQL исходя из исходников на c++

MySQL/PostgreSQL/SQLite/Oracle/M$SQL/....

Модератор: terminus

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Demis
прапорщик
Сообщения: 496
Зарегистрирован: 2015-05-25 14:36:32

Как вычислить тип и размерность полей MySQL исходя из исходников на c++

Непрочитанное сообщение Demis » 2023-07-03 14:40:41

Всем, Доброго!

Народ, подскажите, есть код на с++.
Он должен работать с MySQL, но с исходниками нет никаких данных о таблицах и их полях.

Название таблиц из исходника - вычисляемо.
Используются-ли хранимые процеруры - пока не понятно.

Вопрос: Как реконструировать тип, размерность полей?

Часть переменных достаточно легко вычисляется, например,
переменная в исходнике uint64_t start, значение которой потом пишется в таблицу БД, это будет поле с типом BIGINT.

Но есть и другие переменные:
unsigned short - какой близкий тип поля в мускуле?
и short - какой близкий тип поля в мускуле?

Или вот такое поле:

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

tuple.ofs = vector<unsigned short>( tuple2.ofs.begin()+left+1, tuple2.ofs.end() );
ofs это поле БД на MySQL, соответственно какой тип должен быть для сохранения вектора в таблице?

объявлено как параметр метода функции: const vector<TOutputTuple>& tuples
При этом:

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

struct TOutputTuple {
	uint64_t start;
	short k;
	vector<unsigned short> ofs;
};
Полные исходники открыто лежат на гите, если нужно дам ссылку.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
Neus
капитан
Сообщения: 1980
Зарегистрирован: 2008-09-08 21:59:56

Как вычислить тип и размерность полей MySQL исходя из исходников на c++

Непрочитанное сообщение Neus » 2023-07-03 21:46:55

Может там какой-нибудь ОРМ используется, раз нет скрипта для создания БД.
Physics is mathematics with the constraint of reality.
Engineering is physics with the constraint of money.

LOR захватили ситхи.
Добро пожаловать на светлую сторону!


Аватара пользователя
Neus
капитан
Сообщения: 1980
Зарегистрирован: 2008-09-08 21:59:56

Как вычислить тип и размерность полей MySQL исходя из исходников на c++

Непрочитанное сообщение Neus » 2023-07-04 15:47:47

Опечатка, я имел ввиду ORM.
Physics is mathematics with the constraint of reality.
Engineering is physics with the constraint of money.

LOR захватили ситхи.
Добро пожаловать на светлую сторону!

Demis
прапорщик
Сообщения: 496
Зарегистрирован: 2015-05-25 14:36:32

Как вычислить тип и размерность полей MySQL исходя из исходников на c++

Непрочитанное сообщение Demis » 2023-07-04 18:43:28

А-а-а...
Тогда ну не совсем orm , я-бы сказал, что что-то посередине.
Т.е. объекты конечно собраны в библиотеку и потом используются методы.

Вплоть до того, что можно чистый sql гнать в некоторые методы.
Но добавленные программистом таблицы в общей библиотеке отсутствуют.

И, соответственно, почти чистый sql гонится.

Имена таблиц вычислил, хотя чего там, они открытым текстом в запросе видны.
А вот с типами есть "задвиги"...