Re[53]: MS забило на дотнет. Питону - да, сишарпу - нет?
От: vdimas Россия  
Дата: 06.09.21 13:29
Оценка:
Здравствуйте, Sinclair, Вы писали:

V>>>>В котором доступны были 3 вида подключения — ODBC, OLEDB и еще не помню название вида подключения

НС>>>Нет. Конкретно та либа — обычная плоская dll со специфичным контрактом, по сути просто парсер TDS.
V>>Думаю, твои данные из более позднего периода, чем от времени выхода первого дотнета, когда я это всё подробно ковырял.
S>Думаю, что нет. В 1999 году эта либа была устроена именно так, как пишет коллега НС.

Что не является ответом на спорный вопрос.
Re[53]: MS забило на дотнет. Питону - да, сишарпу - нет?
От: vdimas Россия  
Дата: 06.09.21 13:48
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>Опять как в прошлый раз с С++ и рефакторингом — мамой клиянусь?


А что не так с рефакторингом в С++?


НС>Вот результат опроса на SO:

НС>Image: Stack-Overflow-Developer-Survey.png
НС>Это, заметь, со всякой носиквельщиной.

Только смотри в другой раз более серьезный ресурс по БД:
https://db-engines.com/en/ranking

ОК, ажур выстрелил в последние годы.
Не ожидал, что MSSQL таки обгонит PostgreSQL. ))


НС>Это не означает, что старый драйвер ADO.NET использовал OLEDB или ODBC. Если что — я там в свое время нашел багу и внимательно код драйвера для этого изучал. Не было там никакого намека на СОМ вообще или что то про ODBC.


Я тоже "официально" с перепиской/подтверждением и прочим рапортовал о двух одинаковых багах в драйверах к MSSQL и MSSQL CE, но уже позже — где-то в 2008-м или 2009-м.
Бага была связана с чтением бинарного стрима из поля, смотрел внимательно рефлектором только этот участок кода уже.

При том что знакомство с дотнетом начал подрабатывая фрилансером в 2001-2002-х годах, писал для штатовской торговой сети торгующую программу и как раз база была MSSQL.
И той баги не было.
А потом обнаружилась мною в другом проекте несколькими годами позже.
Да и по общему виду кода драйвера он однозначно был переписан на "более дотнетный", вероятнее всего с выходом 2-го дотнета в 2005-м.


V>>>>В котором доступны были 3 вида подключения — ODBC, OLEDB и еще не помню название вида подключения

НС>>>Нет. Конкретно та либа — обычная плоская dll со специфичным контрактом, по сути просто парсер TDS.
V>>Думаю, твои данные из более позднего периода
НС>Нет. Это было в 1.0 и 1.1.

А что за бага была?


V>>Но в случае того же EF нетривиально, т.е., подозреваю, что редко используется.

НС>Это вполне тривиально при помощи любого приличного ORM. На крайний случай всегда есть возможность заменить табличку на вьюху.

Не совсем тривиально в случае сложных связей м/у сущностями.
EF отслеживает эти связи самостоятельно, унутре там кеширование в стиле чёрного ящика.
Т.е., "просто запросить" данные где-то сбоку можно, конечно, но чтобы не попортить имеющуюся закешированную иерархию EF — нетривиально.
Re[54]: MS забило на дотнет. Питону - да, сишарпу - нет?
От: Ночной Смотрящий Россия  
Дата: 06.09.21 14:00
Оценка:
Здравствуйте, vdimas, Вы писали:

НС>>Опять как в прошлый раз с С++ и рефакторингом — мамой клиянусь?

V>А что не так с рефакторингом в С++?

Ну там выяснилось, что топ ты придумал сам. Тут, судя по всему, та же история.

V>Только смотри в другой раз более серьезный ресурс по БД:


А, на да, ссылки не той системы.

V>https://db-engines.com/en/ranking


И сиквел опять в топ 3.

V>Не ожидал, что MSSQL таки обгонит PostgreSQL. ))


Как много нам открытий чудных ...

V>Я тоже "официально" с перепиской/подтверждением и прочим рапортовал о двух одинаковых багах в драйверах к MSSQL и MSSQL CE, но уже позже — где-то в 2008-м или 2009-м.

V>Бага была связана с чтением бинарного стрима из поля, смотрел внимательно рефлектором только этот участок кода уже.

И там было про OLEDB? Или про ODBC? Потому что в том коде что я видел был именно парсинг TDS, прям на уровне стрима, а не обращение к рекордсетам.

НС>>Нет. Это было в 1.0 и 1.1.

V>А что за бага была?

При некоторой комбинации типов поле в запросе на респонсе с синтаксической ошибкой падал парсер TDS.


V>>>Но в случае того же EF нетривиально, т.е., подозреваю, что редко используется.

НС>>Это вполне тривиально при помощи любого приличного ORM. На крайний случай всегда есть возможность заменить табличку на вьюху.
V>Не совсем тривиально в случае сложных связей м/у сущностями.
V>EF отслеживает эти связи самостоятельно, унутре там кеширование в стиле чёрного ящика.

Личные проблемы EF и идее change tracking в целом. И от переписывания кода под каждый кокретный сервер от этого не спасет. А меппинг и так в реальности в проектах с EF под каждый тип сервера свой, наелся тут в свое время со Скорубой этой гадости.
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Re[53]: MS забило на дотнет. Питону - да, сишарпу - нет?
От: vdimas Россия  
Дата: 06.09.21 15:01
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

V>>Ну вот, допустим, был бы у дотнета нормальный драйвер ODBC, был бы смысл дублировать функциональность в дотнете?

НС>Был. Ты сам с ODBC то работал? Оно очень примитивно.

Там обычное АПИ на хендлах, как в любых АПИ ОС:
https://docs.microsoft.com/en-us/sql/odbc/reference/syntax/sqlgetdata-function?view=sql-server-linux-ver15
SQLRETURN SQLGetData(  
      SQLHSTMT       StatementHandle,  
      SQLUSMALLINT   Col_or_Param_Num,  
      SQLSMALLINT    TargetType,  
      SQLPOINTER     TargetValuePtr,  
      SQLLEN         BufferLength,  
      SQLLEN *       StrLen_or_IndPtr);


Чтение поля текущей строки рекордсета выполняется примерно так:
https://github.com/SAP/odbc-cpp-wrapper/blob/57fc77cb145c7c20c09e9cd12d4d1acdbc5cc5c5/src/odbc/ResultSet.cpp#L108

И это достаточно высокоуровнево, в отличие от, например, низкуровневого MySQL АПИ навроде mysql_fetch_field_direct, где не выполняется преобразование типов, а просто получаешь что-то навроде void*.
ODBC драйвера умеют выполнять конверсию приводимых типов, что экономит код на вызывающей стороне.

Хотя, если есть желание самому вылизывать код конверсии, то лучше опуститься на "родной" уровень базы, ес-но.
Re[55]: MS забило на дотнет. Питону - да, сишарпу - нет?
От: vdimas Россия  
Дата: 06.09.21 15:16
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>>>Опять как в прошлый раз с С++ и рефакторингом — мамой клиянусь?

V>>А что не так с рефакторингом в С++?
НС>Ну там выяснилось, что топ ты придумал сам.

И что?
У тебя есть другие данные или банальное "Баба Яга против"?


НС>Тут, судя по всему, та же история.


Тут устаревшие на единицы лет данные.


V>>Только смотри в другой раз более серьезный ресурс по БД:

НС>А, на да, ссылки не той системы.

1. Твои же манеры.
2. Результаты опросов stack overflow, действительно, специфические. И ты сам не раз это утверждал.
(скорее всего из-за среднего возраста респондентов, где основная масса отвечающих — 24-27 лет)


V>>https://db-engines.com/en/ranking

НС>И сиквел опять в топ 3.
V>>Не ожидал, что MSSQL таки обгонит PostgreSQL. ))
НС>Как много нам открытий чудных ...

Прям чувствую щенячью радость. ))
Еще не так давно это было не так.


V>>Я тоже "официально" с перепиской/подтверждением и прочим рапортовал о двух одинаковых багах в драйверах к MSSQL и MSSQL CE, но уже позже — где-то в 2008-м или 2009-м.

V>>Бага была связана с чтением бинарного стрима из поля, смотрел внимательно рефлектором только этот участок кода уже.
НС>И там было про OLEDB? Или про ODBC? Потому что в том коде что я видел был именно парсинг TDS, прям на уровне стрима, а не обращение к рекордсетам.

Там на входе проблемного кода уже давался "откуда-то" взятый участок памяти, но его можно было получить как угодно, я действительно выше по коду не смотрел, бо на поведение проблемного места оно не влияло.

Проблема была не в том, где и как получали этот участок памяти, а в том, что при переходе на следующую строку рекордсета ридер стрима не сбрасывался, если стрим не был дочитан до конца предыдущими вызовами клиентского кода.
Причём, ляп был очевиднейший и от того малость шокирующий.
Обнаружил в драйвере MSSQL CE, специально проверил и драйвер MSSQL — тот код был почти идентичный.

При каком-то очередном обновлении бага ушла, специально отслеживал.


V>>EF отслеживает эти связи самостоятельно, унутре там кеширование в стиле чёрного ящика.

НС>Личные проблемы EF и идее change tracking в целом.

Я сам не приветствую такой подход, просто озвучиваю, что в подходе "чёрный ящик" не всегда запросто обойти навязанную модель.
И даже если сегодня получилось, не факт, что оно не поломается при очередном обновлении.
Re[47]: MS забило на дотнет. Питону - да, сишарпу - нет?
От: vdimas Россия  
Дата: 06.09.21 15:24
Оценка: -1
Здравствуйте, Sinclair, Вы писали:

V>>Да конечно, опять разбрасываешься громкими заявлениями.

V>>GetFunctionPointerForDelegate — это единственный (ранее) был способ получать колбэки из нейтивного кода в управляемый.
S>Вы невнимательно читаете. Вот эту часть явно пропустили: "...и вызовем его из менеджед кода"

Сорри, это уже утомительно...
Через "пирог" вызова именно так и будет.
Re[56]: MS забило на дотнет. Питону - да, сишарпу - нет?
От: Ночной Смотрящий Россия  
Дата: 06.09.21 18:01
Оценка: :)
Здравствуйте, vdimas, Вы писали:

НС>>Ну там выяснилось, что топ ты придумал сам.

V>И что?

И то что я оказался прав, ты опять придумал.

V>У тебя есть другие данные


Ты там бухнул что ли? Я их привел два сообщения назад.

НС>>Тут, судя по всему, та же история.

V>Тут устаревшие на единицы лет данные.

Ну да, мои данные устаревшие, сам привел — опять устаревшие. Ну а фигли, в мире розовых единорогов СУБД меняют каждые полгода, бешеной собаке семь верст не крюк.

V>Прям чувствую щенячью радость. ))


Я тебе уже неоднократно писал — оставь свои фантазии при себе.

НС>>И там было про OLEDB? Или про ODBC? Потому что в том коде что я видел был именно парсинг TDS, прям на уровне стрима, а не обращение к рекордсетам.

V>Там на входе проблемного кода уже давался "откуда-то" взятый участок памяти,

И? Ты с OLEDB работал? Там есть участок памяти в формате TDS, который надо самостоятельно интерпретировать?
В том OLEDB, с которым работал я, есть понятие рекордсета с СОМ интерфейсом, и вся история по доставанию отдельных ячеек рекордсета — функционал внутри драйвера.
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Re[54]: MS забило на дотнет. Питону - да, сишарпу - нет?
От: Ночной Смотрящий Россия  
Дата: 06.09.21 18:03
Оценка:
Здравствуйте, vdimas, Вы писали:

V>Там обычное АПИ на хендлах


Ну ты прям КО.

V>Чтение поля текущей строки рекордсета выполняется примерно так:

V>https://github.com/SAP/odbc-cpp-wrapper/blob/57fc77cb145c7c20c09e9cd12d4d1acdbc5cc5c5/src/odbc/ResultSet.cpp#L108

И?
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Re[57]: MS забило на дотнет. Питону - да, сишарпу - нет?
От: vdimas Россия  
Дата: 06.09.21 19:32
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>>>Ну там выяснилось, что топ ты придумал сам.

V>>И что?
НС>И то что я оказался прав, ты опять придумал.

Как ты можешь быть прав, когда несешь какую-то космических масштабов ахинею?
Ликбез: не воспрещается делиться наблюдениями, а даже поощряется.

Тебе, в свою очередь, не воспрещается не соглашаться с чьими-то наблюдениями, но уже желательно с аргументами, по закону жанра.
Иначе по закону этого же жанра пойдёшь за несерьёзного человека.
Re[54]: MS забило на дотнет. Питону - да, сишарпу - нет?
От: Danchik Украина  
Дата: 06.09.21 20:04
Оценка:
Здравствуйте, vdimas, Вы писали:

V>Здравствуйте, Danchik, Вы писали:


D>>Нашли же вы пример. Oracle .NET команда леворукая, это давно известно. Они и асинки не осилили.


V>Оракл наложил лапки 4 года назад, а по ссылке коммиты и 6-тилетние видны.

V>С другой стороны, твой комментарий делает бесполезным трату времени на просмотр исходников коннекта к оракловым базам, я правильно понял?

V>Диверсия от владельца джавы Оракла в сторону дотнета? ))


Да звбили они. Майкрософт им по началу сам провайдер для EF Core под Оракл писал. Учил уму разуму.


D>>Вот переписаное с нуля опенсорсный провайдер. Кого-то достало.

D>>https://github.com/mysql-net/MySqlConnector/blob/1b2757d69f15555fcd05dd8b319a3ae6e3aaf6ad/src/MySqlConnector/Core/Row.cs#L206

V>Тоже не очень:


Ну тут уже как времени хватит. Могли бы им и запилить, почти один человек вкалывает.
Re[58]: MS забило на дотнет. Питону - да, сишарпу - нет?
От: Ночной Смотрящий Россия  
Дата: 07.09.21 06:54
Оценка: +4 :)
Здравствуйте, vdimas, Вы писали:

НС>>И то что я оказался прав, ты опять придумал.

V>Как ты можешь быть прав,

По факту. mssql таки входит в топ3.

V>Ликбез: не воспрещается делиться наблюдениями, а даже поощряется.


Ликбез: не стоит делать голословные заявления, которые ничем не аргументированы, и которые на поверку оказываются ложными.

V>Иначе по закону этого же жанра пойдёшь за несерьёзного человека.


По закону жанра ты регулярно демонстрируешь, что ты собеседник, постоянно переходящий на личности, регулярно несущий феерическую чушь и паталогически неспособный признавать даже свою очевидную неправоту, прикрываясь в таких ситуациях все большими нагромождениями все более невменяемого бреда, а так же базарной манерой поливать собеседника гавном.
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Re[54]: MS забило на дотнет. Питону - да, сишарпу - нет?
От: Ночной Смотрящий Россия  
Дата: 07.09.21 06:57
Оценка: :)
Здравствуйте, vdimas, Вы писали:

V>В рассмотренных ранее исходниках доп. специальную такую проверку не делали, т.к. она делается системным дотнетным кодом при обращении к массиву.


Нубство — это код, который вместо понятного исключения выбрасывает из внутренностей библиотеки ArrayIndexOutOfRange.
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Re[54]: MS забило на дотнет. Питону - да, сишарпу - нет?
От: Ночной Смотрящий Россия  
Дата: 07.09.21 07:00
Оценка:
Здравствуйте, vdimas, Вы писали:

V>Т.е., даже в случае дотнетной идеальной безбоксированной реализации надо было бы тоже боксировать для GUI, приводя к Object.


На гуй плевать. Потому что нормальный гуй будет боксировать только то что сейчас отображается, а не весь потенциально отображаемый рекордсет. Боксирование же нескольких десятков строк в условиях находящейся в почти эксклюзивном использовании персональной машины — не заметить и в мелкоскоп.
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Re[56]: MS забило на дотнет. Питону - да, сишарпу - нет?
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 07.09.21 07:02
Оценка:
Здравствуйте, vdimas, Вы писали:

НС>>Ну там выяснилось, что топ ты придумал сам.


V>И что?



Алё, какой там смысл в твоём топе? Речь то не про тебя была. И даже не про твоё видение топа.
Отредактировано 07.09.2021 7:02 Pauel . Предыдущая версия .
Re[54]: MS забило на дотнет. Питону - да, сишарпу - нет?
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 07.09.21 07:12
Оценка:
Здравствуйте, vdimas, Вы писали:

V>В общем, я не особо люблю джаву (помню как мы в IT-лаборатории любопытства ради разбирали этот язык в 95-м и ржали просто в голос), ...


Сразу всплыла ассоциация "кипятить эспрессокофе* в турке 7-8 раз в течение 15-20 минут, доводя уровень горечи до абсурда" @ vdimas

Ты, случаем, этот свой рецепт "эспрессо в турке" не в 95м изобрёл, в той IT-лаборатории?

*исправлено мной
Re[55]: MS забило на дотнет. Питону - да, сишарпу - нет?
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 07.09.21 11:46
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

V>>Т.е., даже в случае дотнетной идеальной безбоксированной реализации надо было бы тоже боксировать для GUI, приводя к Object.


НС>На гуй плевать. Потому что нормальный гуй будет боксировать только то что сейчас отображается, а не весь потенциально отображаемый рекордсет. Боксирование же нескольких десятков строк в условиях находящейся в почти эксклюзивном использовании персональной машины — не заметить и в мелкоскоп.


Это несколько неверно. Не только отображается, а еще и учавствует в вычислениях прямо или косвенно и тогда всё несколько меняется. Скажем, если GUI это морда САПР, где еще сбоку чего нибудь типа грида валяется где кучка вычислимых колонок, то тут внезапно может начать вычисляться сразу всё, при чем объемы данных будут охрененные. Так-что нехитрый боксинг может есть очень, очень много.
Re[56]: MS забило на дотнет. Питону - да, сишарпу - нет?
От: Ночной Смотрящий Россия  
Дата: 07.09.21 12:18
Оценка:
Здравствуйте, Ikemefula, Вы писали:

НС>>На гуй плевать. Потому что нормальный гуй будет боксировать только то что сейчас отображается, а не весь потенциально отображаемый рекордсет. Боксирование же нескольких десятков строк в условиях находящейся в почти эксклюзивном использовании персональной машины — не заметить и в мелкоскоп.

I>Это несколько неверно. Не только отображается, а еще и учавствует в вычислениях прямо или косвенно и тогда всё несколько меняется. Скажем, если GUI это морда САПР, где еще сбоку чего нибудь типа грида валяется где кучка вычислимых колонок, то тут внезапно может начать вычисляться сразу всё

Что, вот прям читаем данные из грида в огромных количествах и по ним что то долго вычисляем? Серьезно?
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Re[57]: MS забило на дотнет. Питону - да, сишарпу - нет?
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 07.09.21 13:35
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

I>>Это несколько неверно. Не только отображается, а еще и учавствует в вычислениях прямо или косвенно и тогда всё несколько меняется. Скажем, если GUI это морда САПР, где еще сбоку чего нибудь типа грида валяется где кучка вычислимых колонок, то тут внезапно может начать вычисляться сразу всё


НС>Что, вот прям читаем данные из грида в огромных количествах


Телепатия вместо того, что бы прочитать внимательно. Вот такого — "читаем данные из грида ..." — у меня нет, это отголоски из твоей головы.

> и по ним что то долго вычисляем? Серьезно?


Грид при каждом изменении надо пересчитать полностью.
Re[59]: MS забило на дотнет. Питону - да, сишарпу - нет?
От: vdimas Россия  
Дата: 07.09.21 13:51
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>>>И то что я оказался прав, ты опять придумал.

V>>Как ты можешь быть прав,
НС>По факту. mssql таки входит в топ3.

По факту ты юлишь.
Здесь я отвечал на твою ахинею относительно рефакторинга в С++.


V>>Ликбез: не воспрещается делиться наблюдениями, а даже поощряется.

НС>Ликбез: не стоит делать голословные заявления, которые ничем не аргументированы

Опять юлишь.
Я приводил список языков, где наблюдается сравнимый уровень рефакторинга.
Да и то, в первых двух он такой какой есть благодаря той же самой конторе.


НС>и которые на поверку оказываются ложными.


Ты не предоставлял "поверку" по инструментам рефакторинга в других языках.
Т.е. лжешь.


V>>Иначе по закону этого же жанра пойдёшь за несерьёзного человека.

НС>По закону жанра ты регулярно демонстрируешь, что ты собеседник, постоянно переходящий на личности

Да это твои проблемы, что у тебя слишком много личного в технологических спорах.
Твои собеседники реагируют именно на это — что ты юлениями и демагогией регулярно пытаешься замылить суть обсуждения.


НС>регулярно несущий феерическую чушь


Но показать ты никогда не можешь.
Т.е. опять тупо лжешь, а потом жалуешься о переходах на личности.


НС>паталогически неспособный признавать даже свою очевидную неправоту


Например, что MSSQL, таки, вошёл не так давно в тройку самых популярных в вебе?
А где я это не признал?
Опять лжешь. ))


НС>прикрываясь в таких ситуациях все большими нагромождениями все более невменяемого бреда


Это парадокс блаба.
Ты не тянешь приличную часть обсуждений, в которые зачем-то суёшься.
Ты, блин, везде в обсуждениях, куда ни глянь.
Сравни с моей тактикой — я суюсь в те обсуждения, по теме которых близко сталкивался.
Там относительно неширокий круг вещей, все года одни и те же темы.


НС>а так же базарной манерой поливать собеседника гавном.


У меня другая версия — ты слишком всерьёз себя воспринимаешь.
Но примерно понимаешь отношение к себе коллег из, скажем так, более сложных технологий, которое (отношение) местами снисходительное, особенно по факту твоих и Синклера регулярных громких заявлений. ))

Мы же не слепые, хорошо видим, что тебя тупо плющит от таких раскладов, когда всерьёз не воспринимают, порой (такое впечатление) что до отлёта кукушки, как с этим рефакторингом в С++. Заговариваться стал...

А что, действительно стоило вот прям так размахивать своими комплексами 15-тилетней давности на весь мир?
Не зажило еще?
Re[57]: MS забило на дотнет. Питону - да, сишарпу - нет?
От: vdimas Россия  
Дата: 07.09.21 13:58
Оценка: -1
Здравствуйте, Ikemefula, Вы писали:

НС>>>Ну там выяснилось, что топ ты придумал сам.

V>>И что?
I>
I>Алё, какой там смысл в твоём топе?

Тебя тоже задело?


I>Речь то не про тебя была. И даже не про твоё видение топа.


Что тоже решил запретить окружающим делиться наблюдениями?
Худшие замашки из совка решили здесь повторить?
Ню-ню...
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.