Найдено 119 результатов

mdfv
20 фев 2007, 14:11
Форум: FAQ
Тема: ROW_COUNT и execute statement
Ответы: 11
Просмотры: 9643

А что, FOR SELECT/EXECUTE STATEMENT использовать религия не позволяет? Использую пока только в многострочных запросах. А в одиночных плохо смотрится, потом будешь долго вспоминать зачем тут цикл поставил, когда его по логике вроде не должно быть. Вполне возможно излишнее предубеждение, но я стараюс...
mdfv
20 фев 2007, 11:40
Форум: FAQ
Тема: ROW_COUNT и execute statement
Ответы: 11
Просмотры: 9643

Хорошо, тут ЕС, возможно, оправдан (хотя я в аналогичной ситуации выбирал этот запрос на клиента и (до-)формировал запрос там). Зачем выбирать на клиента, когда тоже самое может и сервер, и накладных расходов меньше и опять же тогда придется жестко в клиента зашивать основу, а так вызвал процедуру,...
mdfv
20 фев 2007, 10:14
Форум: FAQ
Тема: ROW_COUNT и execute statement
Ответы: 11
Просмотры: 9643

В моем случае задача поставлена в очень очень общем виде. А конкретные условия меняются очень часто и радикально. Я максимально перенес все что возможно на сервер. И клиентская часть является по сути только интерфейсной платформой с базовым функционалом и ее переделывать при изменениях не требуется....
mdfv
19 фев 2007, 19:28
Форум: FAQ
Тема: ROW_COUNT и execute statement
Ответы: 11
Просмотры: 9643

Почему-то выгоду и крайнюю необходимость (да и вообще хоть какую-то необходимость) в ES находят только новички, которые толком не умеют пользоваться хранимками и без использования ES, огребают кучу проблем а потом жалуются по всем форумам, что ничего не работает. Вот у меня почему-то ни одного ES с...
mdfv
19 фев 2007, 16:16
Форум: FAQ
Тема: ROW_COUNT и execute statement
Ответы: 11
Просмотры: 9643

А чем всетаки радикально плох EXECUTE STATEMENT? При осторожном использовании весьма значительная выгода присутствует. Ничего особо криминального в этом тексте не нашел: EXECUTE STATEMENT is potentially unsafe in several ways: 1. There is no way to validate the syntax of the enclosed statement. 2. T...
mdfv
19 фев 2007, 15:43
Форум: FAQ
Тема: ROW_COUNT и execute statement
Ответы: 11
Просмотры: 9643

ROW_COUNT и execute statement

Есть ли возможность их подружить?
Или что можно стандартное и красивое взамен использовать?

Было в процедуре на select into сделано и ROW_COUNT работало,
потом пришлось переделать на execute statement into и ROW_COUNT перестал давать результат.
mdfv
17 фев 2007, 12:45
Форум: FAQ
Тема: Delphi+Firebird: помогите правильно написать команду!
Ответы: 24
Просмотры: 21317

Надо в сторону типов данных и их отличий читать.
Например здесь http://ibase.ru/devinfo/charvar.htm
mdfv
14 фев 2007, 16:46
Форум: Вопросы создания клиентских и серверных приложений
Тема: Вычисляемое поле - строки...
Ответы: 9
Просмотры: 7815

Наверное так
Fam_Ima computed by (Fam ||' '|| Imya)
mdfv
13 фев 2007, 09:03
Форум: Общие проблемы
Тема: Вернуть запросом количество уникальных записей по складам.
Ответы: 4
Просмотры: 3795

Могу предложить такое безобразие: select st1.SKLAD_NAME, (select(count( distinct st2.ID_TOVAR)) from stocks st2 where (st2.sklad_name=st1.sklad_name)and (not exists(select st3.ID_TOVAR from stocks st3 where((st3.id_tovar=st2.id_tovar)and(st3.sklad_name<>st2.sklad_name)) ) )) kolunictovar from stocks...
mdfv
04 янв 2007, 17:47
Форум: Общие проблемы
Тема: Выборка из таблиц и хранимки
Ответы: 5
Просмотры: 4278

Как вариант: засунуть имя файла тоже в процедуру.
Но так на все случаи жизни процедур не напасешься
Лучше всеже на 2 переехать при возможности.
mdfv
04 янв 2007, 16:42
Форум: Общие проблемы
Тема: Выборка из таблиц и хранимки
Ответы: 5
Просмотры: 4278

Код: Выделить всё

select (select * from getparents(files.folderid))as folder, filename from files  where filename = 'Z'
mdfv
04 янв 2007, 14:27
Форум: Проектирование БД и запросов
Тема: Дополнение нулями до нужного количества символов
Ответы: 16
Просмотры: 12298

Ну вот что в итоге получилось, проверялось на ФБ 2.0. CREATE PROCEDURE addzero ( inchar varchar(6)) returns ( outchar varchar(6)) as declare variable flen integer; declare variable s1 varchar(6); declare variable s2 varchar(6); begin s1='000000'; s2=trim(inchar); flen=char_length(s2) ; outchar=subst...
mdfv
04 янв 2007, 13:38
Форум: Проектирование БД и запросов
Тема: Дополнение нулями до нужного количества символов
Ответы: 16
Просмотры: 12298

Вот еще можно как извратиться:

Код: Выделить всё

s1='000000000';
s2=trim(charfield);
flen=char_length(s2) ;
charfield=substring(s1 from 1 for (6-flen))||s2;
mdfv
04 янв 2007, 13:26
Форум: Проектирование БД и запросов
Тема: Дополнение нулями до нужного количества символов
Ответы: 16
Просмотры: 12298

Re: Дополнение нулями до нужного количества символов

konstb писал(а):

Код: Выделить всё

      if (:FKEY_WIDTH>=10 and :NEXT_NUM<1000000000) then NEXT_NUM = '0'|| NEXT_NUM;
   
Правильнее наверное так:

Код: Выделить всё

      if (:FKEY_WIDTH>=10 and Cast(:NEXT_NUM as integer)<1000000000) then NEXT_NUM = '0'|| NEXT_NUM;
   
mdfv
03 янв 2007, 21:29
Форум: Проектирование БД и запросов
Тема: Дополнение нулями до нужного количества символов
Ответы: 16
Просмотры: 12298

Можно было бы и поконкретней спросить. Если "перед постингом" имеется ввиду метод dataset.Post в клиентской программе, то проблем наверное нет. Если в триггере на вставку/измение то длину можно узнать примерно так: char_length(trim(charfield)) хотя может правильнее так: char_length(trim(cast(charfie...
mdfv
26 ноя 2006, 19:15
Форум: Общие проблемы
Тема: SUM для текста
Ответы: 5
Просмотры: 4254

что-то вроде этого

Код: Выделить всё


for select sur,idz  from main 
into :sur,:midz
do
begin
  fam_ ='';  
  for select sur  from fam 
  where fam.idz=:midz
  into :fsur
  do
  fam_=fam_||fsur;

  suspend;

end
mdfv
26 ноя 2006, 17:47
Форум: Общие проблемы
Тема: SUM для текста
Ответы: 5
Просмотры: 4254

А не проще процедурой сделать?
mdfv
17 ноя 2006, 15:09
Форум: Проектирование БД и запросов
Тема: Удаление записей
Ответы: 4
Просмотры: 4972

А чем стандартные методы не подходят?

Код: Выделить всё

DELETE FROM
        RECORDS
      WHERE
       not Exists (select NOTDELETED.ID from NOTDELETED where NOTDELETED.ID=RECORDS.ID) 
или

Код: Выделить всё

DELETE FROM
        RECORDS
      WHERE
       not ID in (select ID from NOTDELETED ) 
mdfv
08 ноя 2006, 10:31
Форум: Общие проблемы
Тема: Динамический запрос
Ответы: 11
Просмотры: 7241

я делаю такие извраты в процедуре ч-з EXECUTE STATEMENT,
это если ФБ >=1.5
mdfv
31 авг 2006, 11:50
Форум: Вопросы создания клиентских и серверных приложений
Тема: Реализация проверки на русский ввод в PSQL
Ответы: 2
Просмотры: 3038

А если очень надо, то можно и извращенским способом i=1; nerus=0; while (i<=Char_length(stroka)) do begin ch=substring(stroka from i for 1); if (not(((ch>='А')and(ch<='Я'))or((ch>='а')and(ch<='я'))or(ch=' '))) then begin nerus=1; leave; end i=i+1; end