Re: Как работать с UTF8

2007-12-06 Пенетрантность Kovalenko Dmitry
 Привет алл.
 Кому интересно - багa сдалась и уничтожена, ждите новости на Devrace или 
 следуюшую
 версию фибов.

Поскольку Сергей не был замечен в склонностях мучать исходники
сервера, смею предположить - бага была в самих Фибах?

Что-то спефицическое?

[Не выспавшийся]
Коваленко Дмитрий.

Re: Справочник по управляющим последовательностям ODBC для Firebird и Interbase

2007-12-06 Пенетрантность Merkulov Andrew
Конкатенация в MS SQL:
SELECT (first_name + ' ' + last_name) as name FROM employee

Конкатенация в Oracle и Firebird:
SELECT (first_name || ' ' || last_name) FROM employee

 Как в оракле было уже забил, но Firebird и Interbase ... ето шутка или
 я чтото недопонемаю 
 А небыло на абарот ?


Бес попутал... Спасибо. :)

Re: Как работать с UTF8

2007-12-06 Пенетрантность Janex



бага была в самих Фибах?
Что-то спефицическое?


Кокаято мелоч связаная с уникодами. Чё ето было
невникал, но за оперативность суппорта я в восторге :)

Regards
Janex



Re: rdb$triggers

2007-12-06 Пенетрантность Gene Feudorov

Hello, Nikolay!
You wrote  on Tue, 4 Dec 2007 14:55:58 +0200:

 N В таблице rdb$triggers есть поле тип триггера. Значения от 0 до 6 я
 N знаю, а что означают значения после 6 ? У кого перечень есть?

  Подозреваю, что это те, которые на несколько действий. Проверять
  лень.

 N именно. Нужен конкретный список

вот конкретный код генерации текста на паскаль переводить лень :-)

local Type := DataSet(DataSet, doGetFieldAs,'Type_', AsInteger)+1, i := 0
local cType := if(Type and 1, 'A', 'B'), cTypes := {'I','U','D'}
local lType := if(Type and 1, 'after', 'before'), lTypes :=
{'insert','update','delete'}
Type := Type div 2
while Type  0
  cType += cTypes[Type and 3]
  lType += if(i++ = 1,' ',' or ') + lTypes[Type and 3]
  Type := Type div 4
end
DataSet(DataSet, doSetField, 'Type_', cType)

Text := Format('create or alter trigger %s for %s%s %s %s',\
  {DataSet(DataSet, doGetField, 'rdb$trigger_name')\
  ,DataSet(DataSet, doGetField, 'rdb$relation_name')\
  ,if(DataSet(DataSet, doGetField, 'rdb$trigger_inactive', 0)=1,'
inactive','')\
  ,lType\
  ,if((Pos:=DataSet(DataSet, doGetField,
'rdb$trigger_sequence'))0,Format('position %d', {Pos}),'')})
Text += crlf + DataSet(DataSet, doGetField, 'Text', '')
DataSet(DataSet, doSetField, 'Text', Text)
DataSet(DataSet,doNext)

Фёдоров Евгений.
ЗАО Трест-М. Екатеринбург.




Re: Удалить процедуру

2007-12-06 Пенетрантность Ovchinnikov Vasily


Юрий Рыболовлев пишет:

При детальном исследовании выяснилось следующее
если создать две зависимые процедуры одна собирает значения из второй
на версии 200 процедуры по которым прошел селект сервер не дает
удалять
в версии 202 и 203 что-то подкрутили процедуры стали удаляться, но
в лог сервер зачем-то пишет сообщения. А оно надо. Предлагаю это не
писать ).

HOMER (Server)  Thu Dec 06 15:25:22 2007
Deleting procedure PTMP90533$FILTER_ID which is currently in use by
active user requests

Надо освобождать ресурсы.
Недостаточно закрыть запрос, надо еще хэндл его высвободить.
Alex Cherednichenko выше писал же про это...
А в логе - правильно все. Ничего убирать не надо оттуда. Чем больше в нем 
информации, тем лучше. Сервер тебе только там говорит о своих проблемах, а 
проблема ЕСТЬ. И надо сделать так, чтоб эта ошибка в логе перестала появляться.


--
Regards,
Ovchinnikov Vasily
ova at tkvc ru



Re: Справочник по управляющим последовательностям ODBC для Firebird и Interbase

2007-12-06 Пенетрантность Dmitri Kuzmenko


Hello, Andrew!

Merkulov Andrew wrote:


Бес попутал... Спасибо. :)


кавычки еще везде поправьте. а то у ms sql в примере конкатенации
не кавычки а апострофы.

--
Dmitri Kouzmenko, www.ibase.ru, (495) 953-13-34




Re: FieldOrigin с Group By

2007-12-06 Пенетрантность Марат Гиниятуллин


Dmitriy A. Beloshistov пишет:

FB 1.5.x и FB 2.0.x отрабатывает нормально и возвращает все что надо. 
Приложение на IBO.

Не совсем понял, что именно возвращает все что надо? Сейчас попробовал 
на IBO 4.7.5 выполнить запрос

select
  A.RDB$RELATION_ID BB
from RDB$DATABASE A
group by A.RDB$RELATION_ID

После его открытия Cur.Fields[0].FullSQLName = 'пусто',
а если убрать из запроса группировку, то
Cur.Fields[0].FullSQLName = 'RDB$DATABASE.RDB$RELATION_ID'

Cur - это TIB_Cursor

Марат.



мониторинг в 2.1

2007-12-06 Пенетрантность Карпейкин Александр
День добрый!

Заметил такую особенность(точнее сказать неправильность):
любой обычный  пользователь видит в таблице MON$ATTACHMENTS только одну
запись в таблице, прчём это запись с наименьшим MON$ATTACHMENT_ID
т.е. если подключались последовательно User_1, User_2 и User_3, то User_2 и
User_3 видят информацию о User_1, а не о себе

соответственно запрос

  SELECT M1.MON$REMOTE_PROCESS, M1.MON$REMOTE_PID
FROM MON$ATTACHMENTS M1
WHERE M1.MON$ATTACHMENT_ID = CURRENT_CONNECTION

возвращает NULL-ы

Firebird 2.1 Beta 2 (клиенты родные)
проверялось на версиях
WI-T2.1.0.17453
WI-T2.1.0.17176


-- 
С уважением Александр Карпейкин


Re: мониторинг в 2.1

2007-12-06 Пенетрантность Dmitry Yemanov


Карпейкин Александр wrote:


Заметил такую особенность(точнее сказать неправильность):


Спасибо, разберемся.


--
Дмитрий Еманов



Re: Как работать с UTF8

2007-12-06 Пенетрантность Serge Buzadzhy


Kovalenko Dmitry пишет:

Привет алл.
Кому интересно - багa сдалась и уничтожена, ждите новости на Devrace или 
следуюшую
версию фибов.


Поскольку Сергей не был замечен в склонностях мучать исходники
сервера, смею предположить - бага была в самих Фибах?


Да. В некоторых случаях на сервер проскакивал не конвертированный текст 
сиквела. Кстати теперь я задумался, насколько правильно вообще его 
конвертировать в утф. Т.е. возможны тексты которые вообще конвертировать 
противопоказано, и возможны тексты, которые надо конвертировать 
частично. Похоже придется вводить доп опции чтоб девелопер мог 
разруливать эти ситуации.




RE: FieldOrigin с Group By

2007-12-06 Пенетрантность Dmitriy A. Beloshistov

Не совсем понял, что именно возвращает все что надо? 

Сервер: FB 2.0:
Запрос:
select
   A.RDB$DESCRIPTION AA,
   A.RDB$RELATION_ID BB
from RDB$DATABASE A
group by A.RDB$DESCRIPTION, A.RDB$RELATION_ID
Возврат:
  AA=blob
  BB=136
Клиент: IBO v4.5.B (могу и на 4.7.х попробовать)

Сейчас попробовал на IBO 4.7.5 выполнить запрос
Для запроса:
 select
   A.RDB$RELATION_ID BB
 from RDB$DATABASE A
 group by A.RDB$RELATION_ID
Возврат:
BB=136 (что в принципе и ожидаемо;)

WBR,Dmitry Beloshistov AKA [-=BDS=-] 


Re: FieldOrigin с Group By

2007-12-06 Пенетрантность Serge Buzadzhy


Dmitriy A. Beloshistov пишет:


Для запроса:
 select
   A.RDB$RELATION_ID BB
 from RDB$DATABASE A
 group by A.RDB$RELATION_ID
Возврат:
BB=136 (что в принципе и ожидаемо;)


Один про Фому, другой про Ерему.



RE: FieldOrigin с Group By

2007-12-06 Пенетрантность Dmitriy A. Beloshistov


Один про Фому, другой про Ерему. 

Опс... Прогнал ;)


WBR,Dmitry Beloshistov AKA [-=BDS=-] 


Re: FieldOrigin с Group By

2007-12-06 Пенетрантность Марат Гиниятуллин


Dmitriy A. Beloshistov пишет:


Сейчас попробовал на IBO 4.7.5 выполнить запрос

Для запроса:
 select
   A.RDB$RELATION_ID BB
 from RDB$DATABASE A
 group by A.RDB$RELATION_ID
Возврат:
BB=136 (что в принципе и ожидаемо;)



Дык проблема не в том, что этот запрос вернет, а в том, что когда 
компоненты доступа дергают с сервера инфу о полях, участвующих в запросе 
(уж точно не знаю что они там получают), то в итоге в запросе с 
группировкой для поля ВВ нельзя сказать, что это поле - суть 
A.RDB$RELATION_ID (не возвращает сервер такой инфы).
Т.е. в ФИБах после открытия запроса с группировкой 
DataSet.GetFieldOrigin(DataSet.Fields[0]) = пусто, а без группировки 
DataSet.GetFieldOrigin(DataSet.Fields[0]) = 'A.RDB$RELATION_ID'


Марат.



Re: Как работать с UTF8

2007-12-06 Пенетрантность Roman Rokytskyy


Kovalenko Dmitry wrote:

Да. В некоторых случаях на сервер проскакивал не конвертированный текст
сиквела. Кстати теперь я задумался, насколько правильно вообще его
конвертировать в утф. Т.е. возможны тексты которые вообще конвертировать
противопоказано, и возможны тексты, которые надо конвертировать
частично.


К примеру?


Ага, и мне пожалуйста примерчик! :)


Похоже придется вводить доп опции чтоб девелопер мог
разруливать эти ситуации.


Гы-гы. К меня такое с самого рождения поддержки UNICODE есть :)


Х... а примеры можно? А то у меня тут в Java все конвертится в 
чарсет соединения (хотя с другой стороны в Java внутри все Unicode, там 
проще)...


Роман



Re: мониторинг в 2.1

2007-12-06 Пенетрантность Dmitry Yemanov


PEAKTOP wrote:


Вопрос: Виртуальная таблица MON$ATTACHMENTS на момент старта
транзакции, в рамках которой выполняется [SELECT ... FROM MON
$ATTACHMENTS ...], видит всех ?


Момент старта транзакции тут не причем. Она видит всех на момент 
первого к ней обращения. Но, в зависимости от прав пользователя, лишняя 
инфа отфильтровывается (должна по крайней мере :-).



--
Дмитрий Еманов



Re: Как работать с UTF8

2007-12-06 Пенетрантность Serge Buzadzhy


Kovalenko Dmitry пишет:

Да. В некоторых случаях на сервер проскакивал не конвертированный текст
сиквела. Кстати теперь я задумался, насколько правильно вообще его
конвертировать в утф. Т.е. возможны тексты которые вообще конвертировать
противопоказано, и возможны тексты, которые надо конвертировать
частично.


К примеру?



Да к примеру тот же янексовский... коннект уникода

SELECT _WIN1257 'латышские_буквы','другие латышские_буквы'
FROM   TABLE_NAME
WHERE  BLABLA = :MAS_BLABLA

Ну и че с ним делать? Первое поле конвертировать в уникоду нельзя, 
второе надо.


Ну и плюс поля с чарсетами NONE,OCTETS:

UPDATE
 TABLE_NAME
SET  NONE_FIELD='фыва',WIN1251_FIELD='фыва'


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



  Похоже придется вводить доп опции чтоб девелопер мог
  разруливать эти ситуации.

Гы-гы. К меня такое с самого рождения поддержки UNICODE есть  :)

Ну ты у нас весьма предусмотрительный. :))

Удачи