powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Проблема в процедуре Select.
10 сообщений из 10, страница 1 из 1
Проблема в процедуре Select.
    #32329859
-=VVS=-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброе время суток!
Проблема.
Делаю таблицу:

CREATE TABLE TBL_NEW (
ID Integer,
DATA DATE,
MARKA CHAR(40) COLLATE PXW_CYRL,
K_VO INTEGER,
FROM_ CHAR(40) COLLATE PXW_CYRL,
NUM_NAKL CHAR(6) COLLATE PXW_CYRL,
WHO CHAR(40) COLLATE PXW_CYRL
);

Делаю ХП:

CREATE PROCEDURE SP_REPNEW (
ADATA1 DATE,
ADATA2 DATE,
AMARKA CHAR(40),
AFROM CHAR(40),
AWHO CHAR(40))
RETURNS (
RDATA DATE,
RMARKA VARCHAR(40),
RKVO INTEGER,
RFROM VARCHAR(40),
RNUMNAKL VARCHAR(10),
RWHO VARCHAR(40))
AS
BEGIN
for select
DATA,
MARKA,
K_VO,
FROM_,
NUM_NAKL,
WHO
from tbl_NEW
where ((DATA between :aDAta1 and :aData2) and
(upper(MARKA) like upper(:aMarka))) and
((upper(FROM_) like upper(:aFrom)) and
(upper(WHO) like upper(:aWho)))
order by DATA
into
:RDATA,
:RMARKA,
:RKVO,
:RFROM,
:RNUMNAKL,
:RWHO
do begin
suspend;
end
END

Запускаю ХП:
exec SP_REPNEW ('01.11.2003', '20.11.2003', '%', '%', '%')

выдаёт пустоту, хотя в таблице за этот период есть записи, а когда из where убираю всё начиная с первого and'а всё работает, ошибка в условии? НО ГДЕ? помогите
...
Рейтинг: 0 / 0
Проблема в процедуре Select.
    #32329890
Могун
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мой Вам совет - попробуйте выполнять этот SELECT(который в ХП) просто по шагам, добавляя условия в WHERE, вместо параметров подставляя значения.
Попросту прибегните к отладке.
И ещё соображение - попробуйте
SELECT UPPER(MARKA) FROM TBL_NEW
Встроенный Upper может не работать, в DDL таблицы должно быть

MARKA CHAR(40) character set WIN1251 collate WIN1251
...
Рейтинг: 0 / 0
Проблема в процедуре Select.
    #32330018
-=VVS=-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, забыл, база на Interbase 6.0.

2Могун: с Upper проблем нет - записи латинницей, и в других ХП upper - работает.
А отлаживать пробовал, при "добавлении" нового and-условия ничего не возвращает. Прикол, если оставляю в where (DATA between :aDAta1 and :aData2) and (upper(MARKA) like upper(:aMarka)) и пишу параметром AMARKA="%%" выдаёт мне те MARKA, где 2 (!!) символа в поле (??) т.е. "%" воспринимается как "_".

Я вот думаю может IB не может корректно рботать при char(40) в like?
...
Рейтинг: 0 / 0
Проблема в процедуре Select.
    #32345465
-=VVS=-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Помогите!!!
...
Рейтинг: 0 / 0
Проблема в процедуре Select.
    #32345478
Dimasis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
На первый взгляд, в параметрах ХП нужно везде поставить не Char, а VarChar.
...
Рейтинг: 0 / 0
Проблема в процедуре Select.
    #32346294
Gold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1) Никакого смысла в этой ХП в таком виде как она есть я не вижу.
2) Если память не изменяет, в IB6 была бага с ORDER BY внутри ХП.
3) Сам запрос будет неэффективным из-за UPPER

В общем перепиши запрос без всяких процедур и выкинь этот IB6 и возьми хотя-бы FB1.
В запросе если не всегда нужны все части учловия WHERE - можно перейти на FIBPlus и использовать там макросы для формирования нужных условий.
...
Рейтинг: 0 / 0
Проблема в процедуре Select.
    #32347613
hyh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати говоря о переходах IB/FB - я конечно всё понимаю, но на самом то деле
проблема совсем не простая, в ней мона выделить 2 главных момента :
1) Перенос баз - практически везде объемы&количество связей, наработок внутренних структур
баз очень немаленькие, И зачастую эти базы real-time используются,
поэтому даже замена версии одного продукта на более новую часто целая проблема.
2) Собственно FB и IB расходятся и будут расходится и дальше.
И неправильно выбрав сейчас потом при изменении этого выбора
проблемы будут всё больше и больше ( а потом появится общий стандарт к которому все перейдут :D )
...
Рейтинг: 0 / 0
Проблема в процедуре Select.
    #32347618
hyh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Но рассчитывать на это прямо сейчас несколько наивно)
Поэтому выбор сейчас по-видимому делается на пару будущих лет
и нефиг говорить бросай то бери сё) - не так это просто )
...
Рейтинг: 0 / 0
Проблема в процедуре Select.
    #32347639
Gold
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так FB1 это и есть IB6, в котором куча глюков исправлена.
...
Рейтинг: 0 / 0
Проблема в процедуре Select.
    #32347660
hyh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1 и 6 это конечно хорошо, но сейчас то 1.5 и 7.1, которые уже не совсем одно и то же.
Если они таки не разойдутся, то проблемы нет , но друг от друга они ж независимы,
и не факт что станут о чем то в дальнейшем договариваться.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Проблема в процедуре Select.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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