powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Посоветуйте инструмент для диагностики проблемы
13 сообщений из 38, страница 2 из 2
Посоветуйте инструмент для диагностики проблемы
    #39091844
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Любезный,

еще вспомнил. что будет, если взять текст запроса из sqlmonitor фибплюса (или как он там называется), и кинуть его в IBExpert?
...
Рейтинг: 0 / 0
Посоветуйте инструмент для диагностики проблемы
    #39091845
DBConstructor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvвот и спрашивается, действительно, какого фига указан чарсет коннекта win1251, если из юникодной дельфи и фибплюса он должен быть указан utf8?
http://www.ibase.ru/unicode_faq.html
Из этого же faq чуть ниже:
Я могу работать с базой в UTF8 через WIN1251?

Разумеется, для этого достаточно указать чарсет соединения WIN1251. Данные будут идти на сервер в 1251, и автоматически перекодироваться в UTF8 при сохранении (при чтении - перекодироваться обратно в win1251). Это самый легкий вариант начала работы с юникодом. Также это подходящий вариант, если используете Delphi версии 2007 и ниже, и вы не хотите использовать никакие компоненты unicode (например tms), но планы перехода на unicode есть.

Кстати, это не специальная особенность WIN1251 и UTF8. Вы можете использовать любую национальную кодировку точно таким же образом.
...
Рейтинг: 0 / 0
Посоветуйте инструмент для диагностики проблемы
    #39091848
Любезный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторИз этого же faq чуть ниже:
Ты, похоже, так и не вник в суть проблемы. Если сервер отдает данные в WIN1251, а компоненты доступа не преобразуют их в UTF16, отображение их на экране корректным не будет. ФИБы однозначно выполняют какое-то скрытое преобразование. Иначе ничем не объяснить то, что вычитывая данные стандартным механизмом через FieldByName, я получаю значения, которые без проблем выводятся в TLabel, TEdit и другие официальные лицаVCL-компоненты без каких-либо дополнительных преобразований с моей стороны.
...
Рейтинг: 0 / 0
Посоветуйте инструмент для диагностики проблемы
    #39091850
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛюбезныйЕсли сервер отдает данные в WIN1251, а компоненты доступа не преобразуют их
в UTF16, отображение их на экране корректным не будет.
Может быть, а может и не быть. Это зависит от текущей ANSI кодовой страницы. Тому чуваку в
эмбаркадере, который додумался обеспечить прозрачное, автоматическое и неотключаемое
перекодирование между AnsiString и WideString стоило бы выдать запрет на профессию
архитектора.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Посоветуйте инструмент для диагностики проблемы
    #39091852
Любезный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторМожет быть, а может и не быть. Это зависит от текущей ANSI кодовой страницы.
С этой частью я как-то не экспериментировал - времени не было.
авторТому чуваку в эмбаркадере, который додумался обеспечить прозрачное, автоматическое и неотключаемое перекодирование между AnsiString и WideString стоило бы выдать запрет на профессию архитектора.
+1. Если бы его можно было отключить хотя бы флагом компилятора или настройкой в IDE, проблем было бы гораздо меньше.
...
Рейтинг: 0 / 0
Посоветуйте инструмент для диагностики проблемы
    #39091853
DBConstructor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛюбезныйНе только. Там есть два способа задания кодировки соединения - через DBParams (TStrings) и через набор свойств TpFIBDatabase.ConnectParams. Как работает эта связка при задании параметров в Runtime - одному Бузаджи известно, хотя можно и сорцы поисследовать. Возможно, в этой связке могут быть какие-то косяки.
Это абсолютно тоже самое. DevRace сделали поля в UserName, Password и CharSet в ConnectParams для удобства, чтобы разработчикам не приходилось помнить точное название этих параметров для DBParams. После задания полей в ConnectParams в DBParams помещаются правильные названия параметров со значениями.

Эти два варианта эквивалентны:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
  Pfibdatabase::TpFIBDatabase * _db = new Pfibdatabase::TpFIBDatabase(NULL);
  _db->LibraryName = "fbclient.dll";
  _db->DBParams->Clear();
/*
  _db->ConnectParams->CharSet = codepage;
  _db->ConnectParams->UserName = user;
  _db->ConnectParams->Password = password;
*/
  _db->DBParams->BeginUpdate();
  _db->DBParams->Add(AnsiString("user_name=") + user);
  _db->DBParams->Add(AnsiString("password=") + password);
  _db->DBParams->Add(AnsiString("lc_ctype=") + codepage);
  _db->DBParams->EndUpdate();
...
Рейтинг: 0 / 0
Посоветуйте инструмент для диагностики проблемы
    #39091854
Любезный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторПосле задания полей в ConnectParams в DBParams помещаются правильные названия параметров со значениями
Ты проверял на практике, исследовал сорцы?
Я завтра обязательно проверю это в Delphi. Есть вероятность, что в разных версиях ФИБов могут быть различия в коде.
...
Рейтинг: 0 / 0
Посоветуйте инструмент для диагностики проблемы
    #39091861
DBConstructor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛюбезныйТы проверял на практике, исследовал сорцы?
Я завтра обязательно проверю это в Delphi. Есть вероятность, что в разных версиях ФИБов могут быть различия в коде.
Моё утверждение справедливо, как минимум, для FIBPlus v6.9.5
...
Рейтинг: 0 / 0
Посоветуйте инструмент для диагностики проблемы
    #39091862
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DBConstructorМоё утверждение справедливо, как минимум, для FIBPlus v6.9.5

Остаётся только сожалеть, что к проблеме данного топика оно не имеет никакого отношения.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Посоветуйте инструмент для диагностики проблемы
    #39091876
DBConstructor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov, действительно, жаль...
...
Рейтинг: 0 / 0
Посоветуйте инструмент для диагностики проблемы
    #39091998
Любезный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Господа, нужна подсказка по трейсу в винде. Запускаю сессию, но получаю ошибку. Как правильно писать путь к логу?
Код: sql
1.
2.
3.
4.
5.
6.
7.
C:\Program Files\Firebird\Firebird_2_5\bin>fbtracemgr -START -SE localhost:servi
ce_mgr -USER SYSDBA -PASS masterke -CONFIG D:\MyConfig.cfg
Trace session ID 2 started
Error creating trace session for database "D:\DB\ANKETA.FDB":
error while parsing trace configuration
        line 3, element "log_filename": pattern is invalid
         D:\anketa.log
...
Рейтинг: 0 / 0
Посоветуйте инструмент для диагностики проблемы
    #39092020
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Любезный,

а) прочитать внимательно заголовок fbtrace.conf и примеры в том же fbtrace.conf, найти там что-нибудь про бэкслеши
б) прочитать документацию к Trace and Audit Services и понять, что в случае пользовательской трейс-сессии лог задавать вообще не нужно
...
Рейтинг: 0 / 0
Посоветуйте инструмент для диагностики проблемы
    #39092040
Любезный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автора) прочитать внимательно заголовок fbtrace.conf и примеры в том же fbtrace.conf, найти там что-нибудь про бэкслеши
Смотрю.
автор# For log file name Sed syntax for substitutions is supported.
# I.e. \0 - whole matched string, \1 ... \9 - parenthesis subexpressions.
# \\ is backslash.
# String values should be enclosed into (any kind of) quotes if contains
# spaces embedded, for example:
# log_filename 'C:\Documents and Settings\Firebird\My Documents\trace.log'
# include_filter "Database Stats"

Кажись, дошло, спасибо.
авторб) прочитать документацию к Trace and Audit Services и понять, что в случае пользовательской трейс-сессии лог задавать вообще не нужно
Не обязательно или не нужно?
Ну не знаю... Кодировку, ИМХО, проще выявлять не на лету в командной строке, а через исследование в хорошем текстовом редакторе с возможностью бинарного просмотра файла.

Проблему отловил без файла лога. Какой же я дурила... И зря гнал на ФИБы. Нельзя в Delphi называть переменные словами вроде UnitName. Благо, что есть трейс, который позволил выловить причину после первой же успешной сессии - в параметр передавалось значение "pFIBQuery".
...
Рейтинг: 0 / 0
13 сообщений из 38, страница 2 из 2
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Посоветуйте инструмент для диагностики проблемы
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]