powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / IBExpert [игнор отключен] [закрыт для гостей] / Delphi vs IBExpert
25 сообщений из 59, страница 1 из 3
Delphi vs IBExpert
    #35112711
СЭ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день мастера....

Подскажите почему в IBExpert запрос отлично выполняется... а в Delphi вызывает ошибку

кусок кода из Delphi
pFIBDataSet1.Close;
pFIBDataSet1.SQLs.SelectSQL.Text:='select * USERS where ID in (select USER_ID from IDS where TOVAR_ID in (select ID from TOVAR where TOVAR like ''%'+cxtextedit1.Text+'%''))';
showmessage(pFIBDataSet1.SQLs.SelectSQL.text);
pFIBDataSet1.open;

ниже скрин ошибки

Заранее благодарен
...
Рейтинг: 0 / 0
Delphi vs IBExpert
    #35112752
problemsolver
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
СЭselect * USERS
Здесь ничего странного не замечаешь?
А строки надо параметрами передавать.
...
Рейтинг: 0 / 0
Delphi vs IBExpert
    #35112760
Фотография S.G.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
СЭ'select * USERS where здесь где-то должен быть "from"

ps. users как название объекта.. мне не нравится. Да, оно не резервированное слово, но тем не менее, говорит о том что в другом месте ты наверняка используешь "user" или "date" не по делу. имхо.
...
Рейтинг: 0 / 0
Delphi vs IBExpert
    #35112794
fynda
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
СЭ пишет:

Автора расстрелять дважды. Первый раз за неоправданное использование
вложенных селектов, второй - за неиспользование параметров.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Delphi vs IBExpert
    #35112798
СЭ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
о.. спасибки... боже как же стыдно... так лохонуться
...
Рейтинг: 0 / 0
Delphi vs IBExpert
    #35112857
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fynda
СЭ пишет:
Автора расстрелять дважды. Первый раз за неоправданное использование
вложенных селектов, второй - за неиспользование параметров.
А за использование "in" вместо "join" его порвут юзеры, как только базулька маломальски подрастет и бедолаги будут часами медитировать над песочными часами. Я думаю расстрел тут более гуманен.
...
Рейтинг: 0 / 0
Delphi vs IBExpert
    #35112983
СЭ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
подскажите пожалуйста
а как переделать запрос что бы вместо in join был
...
Рейтинг: 0 / 0
Delphi vs IBExpert
    #35112996
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
www.ibase.ru/devinfo/joins.htm
...
Рейтинг: 0 / 0
Delphi vs IBExpert
    #35113923
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Статью у КДВ читать до просветления.
Код: plaintext
1.
2.
3.
4.
5.
select * 
from USERS u
join IDS i on u.id = i.user_id
join TOVAR t on t.id = i.tovar_id
where t.TOVAR containing :some_text
order by чего_нибудь
символ * оставлен мной ибо мой пример учебный, в продакшн писать * некошерно.
...
Рейтинг: 0 / 0
Delphi vs IBExpert
    #35113950
fynda
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ivan_Pisarevsky пишет:

> Статью у КДВ читать до просветления.
>
> select *
> from USERS u
> join IDS i on u.id = i.user_id
> join TOVAR t on t.id = i.tovar_id
> where t.TOVAR containing :some_text
> order by чего_нибудь

А вот и неправильно
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Delphi vs IBExpert
    #35114037
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fyndaА вот и неправильно Я чего еще должен этот УЧЕБНЫЙ пример еще и отладить? ясень пень мой запрос на иннер джойнах вернет (если вернет, синтаксис я не проверял) не совсем то что исходный, но мне талепатируется что автор хочет получить примерно результат моего запроса. :)
...
Рейтинг: 0 / 0
Delphi vs IBExpert
    #35114699
WildSery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DISTINCT всего-навсего. Либо заменить на EXISTS.
...
Рейтинг: 0 / 0
Delphi vs IBExpert
    #35115083
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WildSeryDISTINCT всего-навсего. Либо заменить на EXISTS.А я обычно груп баем пользуюсь, обычно голый список малоиформативен, а вот с потраченной суммой, ужо другое дело, а агрегаты к дистинкту неясно как присобачить.
Не ну вы все военные тайны тут уж порассказали, так автор до Диминой статьи и не дотопает.
...
Рейтинг: 0 / 0
Delphi vs IBExpert
    #35115192
Фотография Di_LIne
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А почти пятница намечалась...
...
Рейтинг: 0 / 0
Delphi vs IBExpert
    #35115463
Сергей Фролов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ivan_Pisarevskyсимвол * оставлен мной ибо мой пример учебный, в продакшн писать * некошерно.
Offtop: а почему не кошерно? Откуда это правило? Например, разве не проще писать select * from table (sp и т.д.), а на клиенте обращаться к полям по имени, чем, после изменения resultset'а, исправлять еще и сам текст запроса?
...
Рейтинг: 0 / 0
Delphi vs IBExpert
    #35115471
Фотография Di_LIne
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей Фролов Offtop: а почему не кошерно?
патамушта! Это прынцып - стервер жалезный, всё стерпит.
...
Рейтинг: 0 / 0
Delphi vs IBExpert
    #35115590
Фотография VF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей Фролов Ivan_Pisarevskyсимвол * оставлен мной ибо мой пример учебный, в продакшн писать * некошерно.
Offtop: а почему не кошерно? Откуда это правило?
из опыта разработки это правило, потому как изменение метаданных не такой уж и редкий случай и зачастую потом гораздо проще добавить/удалить имя поля из запроса, нежели сидеть и ломать голову, почему всё не так как должно бы быть...
...
Рейтинг: 0 / 0
Delphi vs IBExpert
    #35116043
WildSery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В самом деле, "*" используется только для отладочных целей, когда руками в "эксперте" проверяешь результаты выборки.
Простой пример - если в таблицу добавить новое поле, то ничего не произойдёт. Все программы его просто не увидят, и будут работать как работали. А в том модуле, где оно понадобилось - оно есть.
...А вот если бы везде были "*"...
...
Рейтинг: 0 / 0
Delphi vs IBExpert
    #35116481
Сергей Фролов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Di_LIneпатамушта! Это прынцып - стервер жалезный, всё стерпит.
Хм. Извини, но ответ не засчитан. Я помню твой недавний вопрос в этом разделе, уровень и глубина знаний поразила... Без обид.

VFиз опыта разработки это правило, потому как изменение метаданных не такой уж и редкий случай и зачастую потом гораздо проще добавить/удалить имя поля из запроса, нежели сидеть и ломать голову, почему всё не так как должно бы быть...
Это все слишком общие слова. Можно конкретный пример граблей, если не трудно? Заранее спасибо :)

WildSeryПростой пример - если в таблицу добавить новое поле, то ничего не произойдёт. Все программы его просто не увидят, и будут работать как работали. А в том модуле, где оно понадобилось - оно есть.
...А вот если бы везде были "*"...
Опять же, не понял. Если у меня в программе, например, обращение к полям resultset'а идет через FieldByName, то что страшного произойдет при добавлении поля?
...
Рейтинг: 0 / 0
Delphi vs IBExpert
    #35116524
problemsolver
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей Фролов
Опять же, не понял. Если у меня в программе, например, обращение к полям resultset'а идет через FieldByName, то что страшного произойдет при добавлении поля?
Да пиши со *, никто тебя не неволит.
Тебе просто несколько человек дали совет, основанный на опыте (я с ними согласен).
Не нравится - делай по своему.
...
Рейтинг: 0 / 0
Delphi vs IBExpert
    #35116536
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: Сергей Фролов
> Di_LIne
> патамушта! Это прынцып - стервер жалезный, всё стерпит.
>
> Хм. Извини, но ответ не засчитан. Я помню твой недавний вопрос в этом
> разделе, уровень и глубина знаний поразила... Без обид.
>
> VF
> из опыта разработки это правило, потому как изменение
> метаданных не такой уж и редкий случай и зачастую потом гораздо проще
> добавить/удалить имя поля из запроса, нежели сидеть и ломать голову,
> почему всё не так как должно бы быть...
>
> Это все слишком общие слова. Можно конкретный пример граблей, если не
> трудно? Заранее спасибо :)
>
> WildSery
> Простой пример - если в таблицу добавить новое поле, то ничего
> не произойдёт. Все программы его просто не увидят, и будут работать как
> работали. А в том модуле, где оно понадобилось - оно есть.
> ...А вот если бы везде были "*"...
>
> Опять же, не понял. Если у меня в программе, например, обращение к
> полям resultset'а идет через FieldByName, то что страшного произойдет при
> добавлении поля?

Ну не все используют FieldByName :-), есть возможность доступа к полю и по
номеру

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Delphi vs IBExpert
    #35116554
Лентяй
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей ФроловОпять же, не понял. Если у меня в программе, например, обращение к полям resultset'а идет через FieldByName, то что страшного произойдет при добавлении поля?
А ты при изменении метаданных всегда только добавляешь поля? Удалять или переименовывать ни разу не приходилось?
...
Рейтинг: 0 / 0
Delphi vs IBExpert
    #35116562
Сергей Фролов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
problemsolver
Да пиши со *, никто тебя не неволит.
Тебе просто несколько человек дали совет, основанный на опыте (я с ними согласен).
Не нравится - делай по своему.
Я как-то не так объясняю суть вопроса?
Тогда еще раз повторю - почему не *? Нормальную аргументацию можно привести?
Кроме Игорь Горбоноса я еще ни одного достойного аргумента не услышал.

Игорь Горбонос
Ну не все используют FieldByName :-), есть возможность доступа к полю и по
номеру
Т.е. сами создаем себе проблемы и мужественно их решаем? ))))
...
Рейтинг: 0 / 0
Delphi vs IBExpert
    #35116579
Сергей Фролов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Накинулись, накинулись )))))

ЛентяйА ты при изменении метаданных всегда только добавляешь поля? Удалять или переименовывать ни разу не приходилось?

Приходилось, и что? При использовании select * from я меняю, или удаляю соответствующие FieldByName. При описании всех полей в запросе, кроме обращения к полям на клиенте, мне еще надо и сам запрос исправить. Где бонус-то?
...
Рейтинг: 0 / 0
Delphi vs IBExpert
    #35116611
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А еще бывает добавляешь поле в несколько тысяч символов, ну или БЛОБ, потом будешь долго чесать репу "откуда тормоза"... особенно когда через ВПН с помегабайтной тарификацией работать надо. И тут * начинает стоить очень дорого, ибо как раз реальные дерьги вылетают в трубу на оплату интернета.

Пока нагрузка маленькая таскание лишних полей по сети незаметно, а под нагрузкой может аукаться будь здоров, нафиг тянуть поле на клиента, если к нему все равно не будет обращения?
Шоб "слоники бегали"?
...
Рейтинг: 0 / 0
25 сообщений из 59, страница 1 из 3
Форумы / IBExpert [игнор отключен] [закрыт для гостей] / Delphi vs IBExpert
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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