Надо или не надо задавать новую локаль?
Повторное.
Как поймать момент подключения к базе?
Имеем стандартный СклКоннектион или ОраклеКоннектион.
Две понятные операции - Опен() и Клосе().
Имеем две (три, пять и т.д.) баз, с которыми надо работать.
Проблема - сервера разных версий и сконфигурированы по-разному.
На трех заводах - две версии серверов и три разных конфигурации.
Можно сказать серверу, что интерфейсная часть будет пользоваться локалью,
отличной от локали инсталлированного сервера.
Обычно это две команды после Опен().
Это - работает.
Я где-то читал, что коннекты внутренне кешируются.
Т.е. можно обойтись без обязательного выполнения двух комманд указания конфигурации.
Вопрос: Как выяснить - дан кешированный коннект или новый? Надо или не надо задавать новую локаль?
-----
OracleCommand oraCMD = new OracleCommand("ALTER SESSION SET NLS_DATE_LANGUAGE = 'ENGLISH'", oraCN);oraCMD.ExecuteNonQuery();OracleCommand oraCMD1 = new OracleCommand("ALTER SESSION SET NLS_DATE_FORMAT = 'DD-MON-YYYY'", oraCN);oraCMD1.ExecuteNonQuery();
немного накладно выполнять ЭТО перед каждым запросoм к базе.
немного накладно выполнять ЭТО перед каждым запросoм к базе
Что то я не припомню что бы мы это делали. Один раз установили в настройках базы и забыли
https://docs.oracle.com/cd/B28359_01/server.111/b28298/ch3...
https://docs.oracle.com/cd/B19306_01/win.102/b14307/featGl...
Но даже если и так хочется то что мешает написать
oraCN.SetMyLanguageSettings();
в настройках базы
-----
А базу мне, по прежнему, трогать никак не разрешено...
И сконфигурены они по разному... а прога - одна.
oraCN.SetMyLanguageSettings
-----
это вроде как меняет локальную настройку на эквивалентную серверу
Мне же нужно сказать серверу что то что будет будет не в его локали
- без выполнения запроса к базе такое не происходит. Вот и думаю
Как это подсократить.
Коннектионы - заселеные классы
где ты такие переводы находишь? Пиши уж лучше на оригинале
http://www.sharp-blog.ru/extension-methods-in-csharp.html
Ковырять их - накладно по времени.
Понять вызов - еще можно поверить, а вот с ковырянием непонятно...
1. Оно - работает.
2. Упаковать в метод - проблемы нет.
3. Проблема - как избежать повторного выполнения, если коннект из пула и выполнение излишне.
Т.Е.
if(!connection.CheckIfStilOpen)
connection.DoSessionConfiguration();
интересует не DoSessionConfiguration(); а CheckIfStilOpen;
Часть кода просто тупо лазит за каждым нужным значением в базу.
Берется 50,000 из одной таблицы, 20,000 из другой и начинает
перемешиваться с добавлением цифирек из базы.
Можно пофиксить сделав что-то на с методикой рассчета, но она
не документирована - что-то знаю, что-то не понимаю...
Ну и много всего - в мою голову уже не помещается.
Видимо придется писать вой пул.