Re[58]: MS забило на дотнет. Питону - да, сишарпу - нет?
От: Sinclair Россия https://github.com/evilguest/
Дата: 28.09.21 12:17
Оценка: +1
Здравствуйте, vdimas, Вы писали:
S>>Неожиданно оказалось, что драйвер с эквивалентным кодом таки существует.
V>Чё-та в голос уже...
V>Несерьёзный ты человек, однако.
V>Но за юмор спасибо.
Я описывал то, что можно сделать разработчику драйвера, оставаясь в рамках стандартной библиотеки, предполагая, что авторы драйверов к конкретным базам будут делать именно так.

А вам последовательно казалось, что
а) никто в реальности так не делает
б) при работе со всеми основными СУБД всё равно нужно пользоваться неэффективным ODBC-драйвером.

Ваши предположения оказались неверными, мои — верными.
Если для вас это — юмор, то ок. Я тоже посмеялся.

S>>Это не "простейшие" случаи; это смена типа поля при чтении. Надо полагать — не самый частый случай.


V>У кого как.

V>В дотнете типы short/ushort, sbyte/byte неудобны для оперирования, бо весь АПИ расписан на знаковом int, но в БД эти типы удобны и популярны для суррогатных ключей заведомо небольших справочных данных.
Дело даже не в API, а в том, что в дотнете в принципе нет никакой арифметики на коротких типах.
Не работает даже так:
short a = 1;
a = a + (short)1;

Но это совершенно не имеет отношения к взаимодействию с СУБД.
Достаточно писать код вот так:
int a = 0;
...
a += ds.GetShort(0); //

В данном случае вся арифметика на стороне клиента — в интах, в драйвере нет никаких преобразований, и при этом ещё и код — ровно такой же длины, как и c ds.GetInt(0).

Ну, и это всё — в предположении, что разработчики БД будут экономить байты. Сейчас в реальности для суррогатных ключей заведомо небольших справочных данных применяют ровно int32, для длинных данных — int64, для распределённой генерации — guid.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.