Re: Переход на CS

2007-10-17 Пенетрантность Janex



1. Шатдаун базы, выгон ползателей
2. Заливаем обновление метаданных
3. Базу в онлайн


Ну ето мы и на SS умеем :) У меня просто клиенты которые
работают 24/7 и обнавления идут часто, просто ети клиенты
обнавления получают не так часто как другие. Шас на Yаффиле боюсь
трогать базу когда там юзери шуришат.



Как ты определишь, что не могут? Или ещё лучше - как менять, к которым могут (а 
на самом деле могут ко всем :))


А ето в током варианте, что имеем таблици каторих апликация уже 100 лет 
неизпользуeт, тоесть
усторевшие и на мусор поставленые и в рабочих таблицах есть поля которих 
тоже из кода уже 100 лет неюзают. Нашёт таблиц ето ясно - можем дропать, 
а как нашёт полеи ???


Regards
Janex




Re: CAST(AS BLOB) - FB2.1 рулит :) [+ бага? с fbclient]

2007-10-17 Пенетрантность Kovalenko Dmitry

  Получил те же самые результаты - AV при повторном фетче

 :'( будем лечить

В баг трекер описание поместить?

Коваленко Дмитрий



Re: CAST(AS BLOB) - FB2.1 рулит :) [+ бага? с fbclient]

2007-10-17 Пенетрантность Vlad Khorsun


Kovalenko Dmitry ...



 Получил те же самые результаты - AV при повторном фетче

:'( будем лечить


В баг трекер описание поместить?


   Да, конечно

--
Хорсун Влад 





Re: Странная работа запроса на FB 2.0.3

2007-10-17 Пенетрантность WildSery

On Tue, 16 Oct 2007 20:47:41 +0400, Vlad Khorsun [EMAIL PROTECTED] wrote:

 A лучше натуралом перебирать. Попробуй убедить его в этом

 Я пробовал и PLAN SORT (JOIN (A NATURAL, A1 INDEX (PK_TABLE1))),
 и даже PLAN SORT (JOIN (A NATURAL, A1 NATURAL))
 На результат не влияет. И LEFT JOIN тоже пробовал.

 На 1.0.3 _все_ варианты плана, даже с двумя натуралами, отрабатывают 
 максимум за 5 секунд.

 Кинь мне бекап (или БД) с одной этой таблицей

У меня воспроизводится на свежесозданной базе/таблице, состоящей из одного 
только ID (он же PK).
Заливаю туда 10 тыс. записей, генератором, и вуаля.

Я тут подумал ещё раз. По идее, join по такому условию и должен считать порядка 
8848*8849/2 = 39 млн. записей (прогрессия арифметическая).
Разница только в двух not exists в условии. Join с группировкой, без not 
exists выполняется одинаково на обоих серверах.
На 2-ке not exists умножают число чтений на 2, получаем 78 млн., а на 1-це 
почему-то усекают число чтений всего лишь до 88 тыс., что и отрабатывает мухой.

У меня свежи воспоминания, как нарвался на разницу работы in (select в 1-це и 
2-ке, и теперь знаю, что этот селект выполняется в 2-ке как derived.
Может, и с exists тут какая-то похожая засада?

-- 
Сергей Смирнов.



FB2.1 Занимательные факты

2007-10-17 Пенетрантность Kovalenko Dmitry

Сейчас вот закончил реализацию отображения ODBC-последовательностей
для FB2.1

Судя по картине - 2.1 впереди IB-планеты всей.

Всего поддерживается 72 последовательности. Из них 69 связано с
функциями.

Судя по списку, не поддерживаются только две строковые функции
- DIFFERENCE
- SOUNDEX

Нужно только устранить баги с NULL-ами и POSITION (о них есть сведения
в трекере) и наступит коммунизм

Правда вызовы некоторых ODBC-функций конвертируются в такие
замысловатые выражения, что этот коммунизм детям лучше не показывать.
Бугага.

Коваленко Дмитрий.
www.ibprovider.com



��� ��������� ��������� �������������� ������?

2007-10-17 Пенетрантность Vadim Mescheryakov
Здраствуйте.

Такая проблемка

Есть таблица с такими данными:

Дата (DateTime)
Показатель (Integer)
Значение показателя (Float)

В этой таблице не для всех дат календаря есть записи

Нужно получить в SQL запросе все даты запрашиваемого периода если (в таблице 
отсутствует значение, то вывести 0).
Мысли крутятся вокруг процедуры, но что то красивого решения не получается.


-- 
С уважением, Мещеряков Вадим
директор ООО Комплексные Системы.

454021 г. Челябинск ул. 40 лет Победы 31, 77
Тел: +7 (351) 2807917
Web: www.del-fin.ru





Re: Как дополнить результат отсутствующими датами?

2007-10-17 Пенетрантность Alex Cherednichenko

Привет, Vadim!
Вы пишешь  17 октября 2007:

 VM Нужно получить в SQL запросе все даты запрашиваемого периода если (в 
таблице 
 VM отсутствует значение, то вывести 0).
 VM Мысли крутятся вокруг процедуры, но что то красивого решения не получается.

А как именно не получается то?
Интересно ж.

-- 
With best regards, Alex Cherednichenko.




Re: Как дополнить результат отсутствующими датами?

2007-10-17 Пенетрантность Alexander Nagumanov



Такая проблемка

Есть таблица с такими данными:

Дата (DateTime)
Показатель (Integer)
Значение показателя (Float)

В этой таблице не для всех дат календаря есть записи

Нужно получить в SQL запросе все даты запрашиваемого периода если (в 
таблице отсутствует значение, то вывести 0).
Мысли крутятся вокруг процедуры, но что то красивого решения не 
получается.


select * from Table1
where DateField between :FromDate and :ToDate
? 





Re: Как дополнить результат отсутствующими датами?

2007-10-17 Пенетрантность WildSery

On Wed, 17 Oct 2007 10:59:14 +0400, Vadim Mescheryakov [EMAIL PROTECTED] 
wrote:

 Нужно получить в SQL запросе все даты запрашиваемого периода если (в таблице
 отсутствует значение, то вывести 0).
 Мысли крутятся вокруг процедуры, но что то красивого решения не получается.

declare variable aDate date;
...
   aDate = periodBegin;
   while (aDate = periodEnd) do begin
 select ...
   where Дата = :aDate
   into ...
...
 suspend;
 aDate = aDate+1;
   end

-- 
Сергей Смирнов.



Re: Как дополнить результат отсутствующими датами?

2007-10-17 Пенетрантность WildSery

On Wed, 17 Oct 2007 15:41:32 +0400, Андрій Жук [EMAIL PROTECTED] wrote:

 while (DATE_RESDATE_TO) do

while (DATE_RES=DATE_TO) do
конечно же ;)

-- 
Сергей Смирнов.



Re: Как дополнить результат отсутствующими датами?

2007-10-17 Пенетрантность freemanzav


WildSery:

  select ...
where Дата = :aDate
into ...
А мне кажется это плохой идеей. Быстрее будет обработать в цикле
отсортированные по дате данные.



Re: Как дополнить результат отсутствующими датами?

2007-10-17 Пенетрантность Игорь Горбонос



Здраствуйте.

Такая проблемка


...
Нужно получить в SQL запросе все даты запрашиваемого периода если (в 
таблице отсутствует значение, то вывести 0).
Мысли крутятся вокруг процедуры, но что то красивого решения не 
получается.


Когда-то(24 апреля 2006г 11:30) Konstantin R. Beliaev спрашивал:что должен
знать кандидат, считающий себя специалистом по SQL и Sergey Nikolaenko дал 
тестовые задания, одно из заданий было таким:

Для души 2:
===
таблица
CREATE TABLE AAA(
   М INTEGER NOT NULL
)
insert into AAA values(1)
insert into AAA values(2)
insert into AAA values(4)
insert into AAA values(5)
insert into AAA values(8)
insert into AAA values(9)
insert into AAA values(11)
insert into AAA values(14)
insert into AAA values(15)

получить отсутствующие значения (3 6 7 10 12 13)
. Я не нашел решения :(, и когда мне понадобилось выводить статистику за 
текущие сутки с разбивкой по часам, я не придумал ничего лучшего как сделать 
табличку в которую вставил числа от 1 до 24, а второй столбец содержал нули 
и джоинил с ней свои данные, получая как-бы данные за весь день и там где не 
было этих данных, получал нули.


Интересно было-бы узнать решение задачки. ;-) 





Re: Как дополнить результат отсутствующими датами?

2007-10-17 Пенетрантность Max Rezanov

Hello Vadim,

Wednesday, October 17, 2007, 10:59:14 AM, you wrote:

VM Здраствуйте.

VM Такая проблемка

VM Есть таблица с такими данными:

VM Дата (DateTime)
VM Показатель (Integer)
VM Значение показателя (Float)

VM В этой таблице не для всех дат календаря есть записи

VM Нужно получить в SQL запросе все даты запрашиваемого периода если (в 
таблице 
VM отсутствует значение, то вывести 0).
VM Мысли крутятся вокруг процедуры, но что то красивого решения не получается.

Я бы сделал таблицу в БД
create table all_dates{
year int,
date_in_year date
}
залилбы туда текущий год
 + 20 лет
 - 20 лет
 а потом
 select
  a.Date
  NVL(b.Показатель,Жопа)
  NVL(b.Значение показателя,0)
 from
   all_dates a
   left outer join твоя таблицы b on (даты равны)
where
   date_in_year в диапазоне

:)
память экономит не будем :)

а помнитьцо вложенные запросы уже были реализованы
тогда можно попробовать сформировать во вложенном запросе список дат в
промежутке и опять слева сджоинить с твоими данными.
Как формировать еще не придумал :(

вобщем понятна куды копать?

  Тема Дня: За милых, yмных, добpых - за нас, мyжики!
  До не скорой встречи в аду,
 Maxmailto:[EMAIL PROTECTED]




Re: Как дополнить результат отсутствующими датами?

2007-10-17 Пенетрантность Alexey Popov




Игорь Горбонос wrote:

CREATE TABLE AAA(
   М INTEGER NOT NULL
)
insert into AAA values(1)
insert into AAA values(2)
insert into AAA values(4)
insert into AAA values(5)
insert into AAA values(8)
insert into AAA values(9)
insert into AAA values(11)
insert into AAA values(14)
insert into AAA values(15)

получить отсутствующие значения (3 6 7 10 12 13)


Интересно... В предельном случае пустой таблицы получается
что должно выдавать всю последовательность чисел. Сдаётся
мне что если задача и имеет решение то только через рекурсию...


--
--- Home Page http://ok.novgorod.net/ap ---




Re: ��� ��������� ��������� �������������� ������?

2007-10-17 Пенетрантность Sergey Nikolaenko


éÇÏÒØ çÏÒÂÏÎÏÓ [EMAIL PROTECTED] wrote
in message news:[EMAIL PROTECTED]
 ÔÅÓÔÏ×ÙÅ ÚÁÄÁÎÉÑ, ÏÄÎÏ ÉÚ ÚÁÄÁÎÉÊ ÂÙÌÏ ÔÁËÉÍ:
 äÌÑ ÄÕÛÉ 2:
 ===
 ÔÁÂÌÉÃÁ
 CREATE TABLE AAA(
 í INTEGER NOT NULL
 )
 insert into AAA values(1)
 insert into AAA values(2)
 insert into AAA values(4)
 insert into AAA values(5)
 insert into AAA values(8)
 insert into AAA values(9)
 insert into AAA values(11)
 insert into AAA values(14)
 insert into AAA values(15)

 ÐÏÌÕÞÉÔØ ÏÔÓÕÔÓÔ×ÕÀÝÉÅ ÚÎÁÞÅÎÉÑ (3 6 7 10 12 13)
 . ñ ÎÅ ÎÁÛÅÌ ÒÅÛÅÎÉÑ

ïÎÏ ÅÓÔØ, ÎÅ ËÁÖÕ ÞÔÏ ÏÐÔÉÍÁÌØÎÏ, ÎÏ ÎÅ × ÜÔÏÍ ÓÕÔØ





Re: Как дополнить результат отсутствующими датами?

2007-10-17 Пенетрантность Игорь Горбонос



Я бы сделал таблицу в БД
create table all_dates{
year int,
date_in_year date
}
залилбы туда текущий год
+ 20 лет
- 20 лет


Зачем диапазон в 41 год, достаточного одного високосного года ;-)
Нужно то ведь данные из диапазона дат, в високосном году они все есть, 
выбирать по месяцам и дням подставлять нужный год и работать дальше.
Это если табличку делать :-) 





Re: Как дополнить результат отсутствующими датами?

2007-10-17 Пенетрантность ArtGal

Игорь Горбонос [EMAIL PROTECTED]
сообщил/сообщила в новостях следующее: news:[EMAIL PROTECTED]

  Я бы сделал таблицу в БД
  create table all_dates{
  year int,
  date_in_year date
  }
  залилбы туда текущий год
  + 20 лет
  - 20 лет

 Зачем диапазон в 41 год, достаточного одного високосного года ;-)
 Нужно то ведь данные из диапазона дат, в високосном году они все есть,
 выбирать по месяцам и дням подставлять нужный год и работать дальше.


В не високосный год получишь 29 февраля.
Думаю, этот селект нужен для аналитики,
будут avg, sum и т.д.
Количество дней имеет значение.

-- 
Галимов Артур Амирзянович.
ФармМедСервис (Сочи).

P.S. А таблицу с датами (-5 лет; +50 лет) мы тоже используем и не паримся.




Re: Как дополнить результат отсутствующими датами?

2007-10-17 Пенетрантность Игорь Горбонос



ArtGal [EMAIL PROTECTED] сообщил/сообщила в 
новостях следующее: news:[EMAIL PROTECTED]


Игорь Горбонос [EMAIL PROTECTED]
сообщил/сообщила в новостях следующее: news:[EMAIL PROTECTED]


 Я бы сделал таблицу в БД
 create table all_dates{
 year int,
 date_in_year date
 }
 залилбы туда текущий год
 + 20 лет
 - 20 лет

Зачем диапазон в 41 год, достаточного одного високосного года ;-)
Нужно то ведь данные из диапазона дат, в високосном году они все есть,
выбирать по месяцам и дням подставлять нужный год и работать дальше.



В не високосный год получишь 29 февраля.
Думаю, этот селект нужен для аналитики,
будут avg, sum и т.д.
Количество дней имеет значение.


Это я понимаю,  но узнать какое число последнего дня в феврале нужного года 
можно без сложностей хотя общий запрос вырастет в размерах :) , а добавить 
один день к месяцу, мне кажется,  уже проблема



P.S. А таблицу с датами (-5 лет; +50 лет) мы тоже используем и не паримся.


:D Ну вот, а говорят универсальных решений не существует.  :) 





Репликация

2007-10-17 Пенетрантность Dmitri Kuzmenko


Hello, All!

По просьбам читателей ibase.ru хочу переделать
информацию по репликаторам на сайте.

Считайте что там ничего нет, кроме IBReplicator.
Какие еще репликаторы можете посоветовать?
Т.е. по каким имеет смысл разместить информацию?

В первую очередь пойдут те, которые вы реально
используете. Во вторую - которые есть вообще
в интернете.

Просьба о собственных вариантах реализации
репликации не писать (если вы не продаете-раздаете
это как отдельный продукт).

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




Re: Как дополнить результат отсутствующими датами?

2007-10-17 Пенетрантность WildSery

On Wed, 17 Oct 2007 16:50:56 +0400, freemanzav [EMAIL PROTECTED] wrote:

 А мне кажется это плохой идеей. Быстрее будет обработать в цикле
 отсортированные по дате данные.

Да, действительно быстрее, аж на 10%!
Вместо 3 секунд выполнялось 3.3 на 28 записях.

-- 
Сергей Смирнов.



Re: Репликация

2007-10-17 Пенетрантность Oleg Deribas


Hello,

Dmitri Kuzmenko said the following on 17.10.2007 18:18:


Во вторую - которые есть вообще в интернете.


Здесь как-то было обсуждение daffodil replicator и был человек реально 
его использующий.


--
Oleg



Re: ��� ��������� ��������� �������������� ������?

2007-10-17 Пенетрантность St. Alex


éÇÏÒØ çÏÒÂÏÎÏÓ [EMAIL PROTECTED] 
ÓÏÏÂÝÉÌ/ÓÏÏÂÝÉÌÁ × ÎÏ×ÏÓÔÑÈ ÓÌÅÄÕÀÝÅÅ: news:[EMAIL PROTECTED]

 úÄÒÁÓÔ×ÕÊÔÅ.

 ôÁËÁÑ ÐÒÏÂÌÅÍËÁ

 ...
 îÕÖÎÏ ÐÏÌÕÞÉÔØ × SQL ÚÁÐÒÏÓÅ ×ÓÅ ÄÁÔÙ ÚÁÐÒÁÛÉ×ÁÅÍÏÇÏ ÐÅÒÉÏÄÁ ÅÓÌÉ (× 
 ÔÁÂÌÉÃÅ ÏÔÓÕÔÓÔ×ÕÅÔ ÚÎÁÞÅÎÉÅ, ÔÏ ×Ù×ÅÓÔÉ 0).
 íÙÓÌÉ ËÒÕÔÑÔÓÑ ×ÏËÒÕÇ ÐÒÏÃÅÄÕÒÙ, ÎÏ ÞÔÏ ÔÏ ËÒÁÓÉ×ÏÇÏ ÒÅÛÅÎÉÑ ÎÅ 
 ÐÏÌÕÞÁÅÔÓÑ.

 ëÏÇÄÁ-ÔÏ(24 ÁÐÒÅÌÑ 2006Ç 11:30) Konstantin R. Beliaev ÓÐÒÁÛÉ×ÁÌ:ÞÔÏ 
 ÄÏÌÖÅÎ
 ÚÎÁÔØ ËÁÎÄÉÄÁÔ, ÓÞÉÔÁÀÝÉÊ ÓÅÂÑ ÓÐÅÃÉÁÌÉÓÔÏÍ ÐÏ SQL É Sergey Nikolaenko 
 ÄÁÌ ÔÅÓÔÏ×ÙÅ ÚÁÄÁÎÉÑ, ÏÄÎÏ ÉÚ ÚÁÄÁÎÉÊ ÂÙÌÏ ÔÁËÉÍ:
 äÌÑ ÄÕÛÉ 2:
 ===
 ÔÁÂÌÉÃÁ
 CREATE TABLE AAA(
í INTEGER NOT NULL
 )
 insert into AAA values(1)
 insert into AAA values(2)
 insert into AAA values(4)
 insert into AAA values(5)
 insert into AAA values(8)
 insert into AAA values(9)
 insert into AAA values(11)
 insert into AAA values(14)
 insert into AAA values(15)

 ÐÏÌÕÞÉÔØ ÏÔÓÕÔÓÔ×ÕÀÝÉÅ ÚÎÁÞÅÎÉÑ (3 6 7 10 12 13)
 . ñ ÎÅ ÎÁÛÅÌ ÒÅÛÅÎÉÑ :(, É ËÏÇÄÁ ÍÎÅ ÐÏÎÁÄÏÂÉÌÏÓØ ×Ù×ÏÄÉÔØ ÓÔÁÔÉÓÔÉËÕ ÚÁ 
 ÔÅËÕÝÉÅ ÓÕÔËÉ Ó ÒÁÚÂÉ×ËÏÊ ÐÏ ÞÁÓÁÍ, Ñ ÎÅ ÐÒÉÄÕÍÁÌ ÎÉÞÅÇÏ ÌÕÞÛÅÇÏ ËÁË 
 ÓÄÅÌÁÔØ ÔÁÂÌÉÞËÕ × ËÏÔÏÒÕÀ ×ÓÔÁ×ÉÌ ÞÉÓÌÁ ÏÔ 1 ÄÏ 24, Á ×ÔÏÒÏÊ ÓÔÏÌÂÅà 
 ÓÏÄÅÒÖÁÌ ÎÕÌÉ É ÄÖÏÉÎÉÌ Ó ÎÅÊ Ó×ÏÉ ÄÁÎÎÙÅ, ÐÏÌÕÞÁÑ ËÁË-ÂÙ ÄÁÎÎÙÅ ÚÁ ×ÅÓØ 
 ÄÅÎØ É ÔÁÍ ÇÄÅ ÎÅ ÂÙÌÏ ÜÔÉÈ ÄÁÎÎÙÈ, ÐÏÌÕÞÁÌ ÎÕÌÉ.

 éÎÔÅÒÅÓÎÏ ÂÙÌÏ-ÂÙ ÕÚÎÁÔØ ÒÅÛÅÎÉÅ ÚÁÄÁÞËÉ. ;-)

 





Re: ��� ��������� ��������� �������������� ������?

2007-10-17 Пенетрантность St. Alex

Execute block
returns (a_missed integer)
as
 declare variable a_max integer;
 begin
  select min(m) from aaa into :a_missed;
  if (a_missedis not null) then
   begin
 select max(m) from aaa into :a_max;
 while (a_missed =a_max) do
   begin
 if (not exists (select * from aaa where m=a_missed )) then suspend;
 a_missed=a_missed+1;
   end
   end;
 end

é ÐÕÓÔØ × ÍÅÎÑ ËÉÎÕÔ ËÁÍÎÅÍ, ÅÓÌÉ ÜÔÏ ÎÅ SQL-ÚÁÐÒÏÓ :-)

ó Õ×ÁÖÅÎÉÅÍ,
óÔÁÒÉËÏ× áÌÅËÓÅÊ





Re: Репликация

2007-10-17 Пенетрантность PEAKTOP

Не хочеться, конечно, пиарить ... просто существуют варианты, когда
авторы тулзов не акцентируют внимание на встроенных средствах
реппликации, а считают это необходимым дополнением к своему ПО.

Это я про IBExpert.



Re: Репликация

2007-10-17 Пенетрантность Kochmin Alexandr




PEAKTOP пишет:

Не хочеться, конечно, пиарить ... просто существуют варианты, когда
авторы тулзов не акцентируют внимание на встроенных средствах
реппликации, а считают это необходимым дополнением к своему ПО.

Это я про IBExpert.


вгде ты там репликацию то раскопал?

--
Кочмин Александр



Re: Репликация

2007-10-17 Пенетрантность Dmitri Kuzmenko


Hello, Alexandr!

Kochmin Alexandr wrote:


Не хочеться, конечно, пиарить ... просто существуют варианты, когда
авторы тулзов не акцентируют внимание на встроенных средствах
реппликации, а считают это необходимым дополнением к своему ПО.

Это я про IBExpert.


вгде ты там репликацию то раскопал?


встроенный лог-менеджер (на авто-создаваемых триггерах).

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




���� � udf

2007-10-17 Пенетрантность Nikolay

ÎÁ 1.5 ÔÁËÏÇÏ ÇÌÀËÁ ÎÅ ÚÁÍÅÞÁÌ, Á ÐÅÒÅÛÅÌ ÎÁ 2.0.2 É ÐÏÌÕÞÉÌ:

úÁÐÒÏÓ:

select TIMEHOURARRAY(Time_Log) as TIMEHOURARRAY_Time_Log,
   sum(TIMETOROUNDMINUTES(DURATION,0)) as Sum_Minutes,
   sum(SUMMA) as Sum_Money
from sp_select_log 
(:DateBegin,:DateEnd,:TimeBegin,:TimeEnd,:ID_EXT_Line,:Department,
:ID_CO_Line,:Operator,:MaskTelNumber,:Flag_Direction, 
:Flag_Transfer, :Flag_Answer, :ACC_Codes, -1)
where (TIMETOROUNDMINUTES(DURATION,0)  0)
group by TIMEHOURARRAY(Time_Log)
order by 1

×ÙÚÙ×ÁÅÔ ÐÁÄÅÎÉÅ ÓÅÒ×ÅÒÁ Ó

 The user defined function:  TIMEHOURARRAY
referencing entrypoint:  TimeHourArray
 in module:  nntudf
 caused the fatal exception: Access violation.
  The code attempted to access a virtual
  address without privilege to do so.
 This exception will cause the Firebird server
 to terminate abnormally.

óÁÍÁ ÆÕÎËÃÉÑ
DECLARE EXTERNAL FUNCTION TIMEHOURARRAY
TIME
RETURNS CSTRING(11) FREE_IT
ENTRY_POINT 'TimeHourArray' MODULE_NAME 'nntudf';

É ÅÅ ÔÅËÓÔ

const
  TIME_HOUR_ARRAY: array[0..23] of string = 
('00:00-01:00','01:00-02:00','02:00-03:00','03:00-04:00',
 
'04:00-05:00','05:00-06:00','06:00-07:00','07:00-08:00',
 
'08:00-09:00','09:00-10:00','10:00-11:00','11:00-12:00',
 
'12:00-13:00','13:00-14:00','14:00-15:00','15:00-16:00',
 
'16:00-17:00','17:00-18:00','18:00-19:00','19:00-20:00',
 
'20:00-21:00','21:00-22:00','22:00-23:00','23:00-24:00');

//ÐÅÒÅ×ÏÄ ÞÁÓÏ× ÉÚ Ttime × ÓÔÒÏËÏ×ÙÊ ×ÉÄ '00:00-01:00'
function TimeHourArray(var T: TFBTime): PChar; cdecl; export;
var S: ShortString;
begin
//**  Result := StrPCopy(Result, TIME_HOUR_ARRAY[FBDecodeTime(T).Hour]);
  S := TIME_HOUR_ARRAY[FBDecodeTime(T).Hour];
  Result := malloc(Length(S) + 1);
  StrPCopy(Result, S);
end;

÷ ÞÅÍ Ñ ÎÅ ÐÒÁ×?





Re: ���������

2007-10-17 Пенетрантность Nikolay


Dmitri Kuzmenko [EMAIL PROTECTED] wrote in message 
news:[EMAIL PROTECTED]

 Hello, Alexandr!

 Kochmin Alexandr wrote:

 îÅ ÈÏÞÅÔØÓÑ, ËÏÎÅÞÎÏ, ÐÉÁÒÉÔØ ... ÐÒÏÓÔÏ ÓÕÝÅÓÔ×ÕÀÔ ×ÁÒÉÁÎÔÙ, ËÏÇÄÁ
 Á×ÔÏÒÙ ÔÕÌÚÏ× ÎÅ ÁËÃÅÎÔÉÒÕÀÔ ×ÎÉÍÁÎÉÅ ÎÁ ×ÓÔÒÏÅÎÎÙÈ ÓÒÅÄÓÔ×ÁÈ
 ÒÅÐÐÌÉËÁÃÉÉ, Á ÓÞÉÔÁÀÔ ÜÔÏ ÎÅÏÂÈÏÄÉÍÙÍ ÄÏÐÏÌÎÅÎÉÅÍ Ë Ó×ÏÅÍÕ ðï.

 üÔÏ Ñ ÐÒÏ IBExpert.

 ×ÇÄÅ ÔÙ ÔÁÍ ÒÅÐÌÉËÁÃÉÀ ÔÏ ÒÁÓËÏÐÁÌ?

 ×ÓÔÒÏÅÎÎÙÊ ÌÏÇ-ÍÅÎÅÄÖÅÒ (ÎÁ Á×ÔÏ-ÓÏÚÄÁ×ÁÅÍÙÈ ÔÒÉÇÇÅÒÁÈ).

é ËÁËÁÑ ÖÅ ÜÔÏ Á×ÔÏÍÁÔÉËÁ? 





Re: Как дополнить результат отсутствующими датами?

2007-10-17 Пенетрантность Alexander A. Venikov


Hello, Alexander!
You wrote to St. Alex on Thu, 18 Oct 2007 09:07:15 +0600:

execute block
returns (a_missed integer)
as
declare variable a_min integer;
declare variable a_max integer;
begin
 a_missed=2000;
 a_max=2007;
 while (a_missed =:a_max) do
 begin
   if (not exists (select * from prd where nyear=:a_missed)) then suspend;
   a_missed=a_missed+1;
 end
end

Так читабельнее имхо. А идея правильная. Как раз тот случай, когда execute 
block к нужному месту приходится. :)

--
Удач
Alexander A. Venikov, Tobolsk, Russia 





Re: Как дополнить результат отсутствующими датами?

2007-10-17 Пенетрантность freemanzav


WildSery:
 On Wed, 17 Oct 2007 16:50:56 +0400, freemanzav [EMAIL PROTECTED] wrote:

 Да, действительно быстрее, аж на 10%!
 Вместо 3 секунд выполнялось 3.3 на 28 записях.

 --
Индекс попробуй отключить при сортировке



Re: OFF: гостинница

2007-10-17 Пенетрантность Kochmin Alexandr


Nikolay пишет:
как это  представить пользователю и как искать дырки в ней чтобы поселить новых 
постояльцев. Кто решал подобную проблему, поделитесь плз? 


мож глянуть на MSProject и его диаграммы Ганта yапример?

--
Кочмин Александр



Re: глюк с udf

2007-10-17 Пенетрантность Мадорский Г . В .



 Result := malloc(Length(S) + 1);
В чем я не прав?

Вот в этом.

With b/r. Gleb. 





Re: Как дополнить результат отсутствующими датами?

2007-10-17 Пенетрантность Мадорский Г . В .


Еще можно завести таблицу, заполненную всеми датами и к ней left join.

Или вместо таблицы написать SP, возвращающую даты в указанном диапазоне и к 
ней опять же left join.


With b/r. Gleb.