|
Delphi vs IBExpert
|
|||
---|---|---|---|
#18+
Добрый день мастера.... Подскажите почему в 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; ниже скрин ошибки Заранее благодарен ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2008, 10:21 |
|
Delphi vs IBExpert
|
|||
---|---|---|---|
#18+
СЭselect * USERS Здесь ничего странного не замечаешь? А строки надо параметрами передавать. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2008, 10:31 |
|
Delphi vs IBExpert
|
|||
---|---|---|---|
#18+
СЭ'select * USERS where здесь где-то должен быть "from" ps. users как название объекта.. мне не нравится. Да, оно не резервированное слово, но тем не менее, говорит о том что в другом месте ты наверняка используешь "user" или "date" не по делу. имхо. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2008, 10:32 |
|
Delphi vs IBExpert
|
|||
---|---|---|---|
#18+
СЭ пишет: Автора расстрелять дважды. Первый раз за неоправданное использование вложенных селектов, второй - за неиспользование параметров. Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2008, 10:40 |
|
Delphi vs IBExpert
|
|||
---|---|---|---|
#18+
о.. спасибки... боже как же стыдно... так лохонуться ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2008, 10:41 |
|
Delphi vs IBExpert
|
|||
---|---|---|---|
#18+
fynda СЭ пишет: Автора расстрелять дважды. Первый раз за неоправданное использование вложенных селектов, второй - за неиспользование параметров. А за использование "in" вместо "join" его порвут юзеры, как только базулька маломальски подрастет и бедолаги будут часами медитировать над песочными часами. Я думаю расстрел тут более гуманен. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2008, 10:54 |
|
Delphi vs IBExpert
|
|||
---|---|---|---|
#18+
подскажите пожалуйста а как переделать запрос что бы вместо in join был ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2008, 11:24 |
|
Delphi vs IBExpert
|
|||
---|---|---|---|
#18+
www.ibase.ru/devinfo/joins.htm ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2008, 11:27 |
|
Delphi vs IBExpert
|
|||
---|---|---|---|
#18+
Статью у КДВ читать до просветления. Код: plaintext 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2008, 14:53 |
|
Delphi vs IBExpert
|
|||
---|---|---|---|
#18+
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 ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2008, 15:03 |
|
Delphi vs IBExpert
|
|||
---|---|---|---|
#18+
fyndaА вот и неправильно Я чего еще должен этот УЧЕБНЫЙ пример еще и отладить? ясень пень мой запрос на иннер джойнах вернет (если вернет, синтаксис я не проверял) не совсем то что исходный, но мне талепатируется что автор хочет получить примерно результат моего запроса. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2008, 15:19 |
|
Delphi vs IBExpert
|
|||
---|---|---|---|
#18+
DISTINCT всего-навсего. Либо заменить на EXISTS. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2008, 17:34 |
|
Delphi vs IBExpert
|
|||
---|---|---|---|
#18+
WildSeryDISTINCT всего-навсего. Либо заменить на EXISTS.А я обычно груп баем пользуюсь, обычно голый список малоиформативен, а вот с потраченной суммой, ужо другое дело, а агрегаты к дистинкту неясно как присобачить. Не ну вы все военные тайны тут уж порассказали, так автор до Диминой статьи и не дотопает. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2008, 19:38 |
|
Delphi vs IBExpert
|
|||
---|---|---|---|
#18+
А почти пятница намечалась... ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2008, 20:45 |
|
Delphi vs IBExpert
|
|||
---|---|---|---|
#18+
Ivan_Pisarevskyсимвол * оставлен мной ибо мой пример учебный, в продакшн писать * некошерно. Offtop: а почему не кошерно? Откуда это правило? Например, разве не проще писать select * from table (sp и т.д.), а на клиенте обращаться к полям по имени, чем, после изменения resultset'а, исправлять еще и сам текст запроса? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2008, 01:27 |
|
Delphi vs IBExpert
|
|||
---|---|---|---|
#18+
Сергей Фролов Offtop: а почему не кошерно? патамушта! Это прынцып - стервер жалезный, всё стерпит. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2008, 01:45 |
|
Delphi vs IBExpert
|
|||
---|---|---|---|
#18+
Сергей Фролов Ivan_Pisarevskyсимвол * оставлен мной ибо мой пример учебный, в продакшн писать * некошерно. Offtop: а почему не кошерно? Откуда это правило? из опыта разработки это правило, потому как изменение метаданных не такой уж и редкий случай и зачастую потом гораздо проще добавить/удалить имя поля из запроса, нежели сидеть и ломать голову, почему всё не так как должно бы быть... ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2008, 08:31 |
|
Delphi vs IBExpert
|
|||
---|---|---|---|
#18+
В самом деле, "*" используется только для отладочных целей, когда руками в "эксперте" проверяешь результаты выборки. Простой пример - если в таблицу добавить новое поле, то ничего не произойдёт. Все программы его просто не увидят, и будут работать как работали. А в том модуле, где оно понадобилось - оно есть. ...А вот если бы везде были "*"... ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2008, 10:52 |
|
Delphi vs IBExpert
|
|||
---|---|---|---|
#18+
Di_LIneпатамушта! Это прынцып - стервер жалезный, всё стерпит. Хм. Извини, но ответ не засчитан. Я помню твой недавний вопрос в этом разделе, уровень и глубина знаний поразила... Без обид. VFиз опыта разработки это правило, потому как изменение метаданных не такой уж и редкий случай и зачастую потом гораздо проще добавить/удалить имя поля из запроса, нежели сидеть и ломать голову, почему всё не так как должно бы быть... Это все слишком общие слова. Можно конкретный пример граблей, если не трудно? Заранее спасибо :) WildSeryПростой пример - если в таблицу добавить новое поле, то ничего не произойдёт. Все программы его просто не увидят, и будут работать как работали. А в том модуле, где оно понадобилось - оно есть. ...А вот если бы везде были "*"... Опять же, не понял. Если у меня в программе, например, обращение к полям resultset'а идет через FieldByName, то что страшного произойдет при добавлении поля? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2008, 12:18 |
|
Delphi vs IBExpert
|
|||
---|---|---|---|
#18+
Сергей Фролов Опять же, не понял. Если у меня в программе, например, обращение к полям resultset'а идет через FieldByName, то что страшного произойдет при добавлении поля? Да пиши со *, никто тебя не неволит. Тебе просто несколько человек дали совет, основанный на опыте (я с ними согласен). Не нравится - делай по своему. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2008, 12:26 |
|
Delphi vs IBExpert
|
|||
---|---|---|---|
#18+
> Автор: Сергей Фролов > Di_LIne > патамушта! Это прынцып - стервер жалезный, всё стерпит. > > Хм. Извини, но ответ не засчитан. Я помню твой недавний вопрос в этом > разделе, уровень и глубина знаний поразила... Без обид. > > VF > из опыта разработки это правило, потому как изменение > метаданных не такой уж и редкий случай и зачастую потом гораздо проще > добавить/удалить имя поля из запроса, нежели сидеть и ломать голову, > почему всё не так как должно бы быть... > > Это все слишком общие слова. Можно конкретный пример граблей, если не > трудно? Заранее спасибо :) > > WildSery > Простой пример - если в таблицу добавить новое поле, то ничего > не произойдёт. Все программы его просто не увидят, и будут работать как > работали. А в том модуле, где оно понадобилось - оно есть. > ...А вот если бы везде были "*"... > > Опять же, не понял. Если у меня в программе, например, обращение к > полям resultset'а идет через FieldByName, то что страшного произойдет при > добавлении поля? Ну не все используют FieldByName :-), есть возможность доступа к полю и по номеру Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2008, 12:29 |
|
Delphi vs IBExpert
|
|||
---|---|---|---|
#18+
Сергей ФроловОпять же, не понял. Если у меня в программе, например, обращение к полям resultset'а идет через FieldByName, то что страшного произойдет при добавлении поля? А ты при изменении метаданных всегда только добавляешь поля? Удалять или переименовывать ни разу не приходилось? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2008, 12:31 |
|
Delphi vs IBExpert
|
|||
---|---|---|---|
#18+
problemsolver Да пиши со *, никто тебя не неволит. Тебе просто несколько человек дали совет, основанный на опыте (я с ними согласен). Не нравится - делай по своему. Я как-то не так объясняю суть вопроса? Тогда еще раз повторю - почему не *? Нормальную аргументацию можно привести? Кроме Игорь Горбоноса я еще ни одного достойного аргумента не услышал. Игорь Горбонос Ну не все используют FieldByName :-), есть возможность доступа к полю и по номеру Т.е. сами создаем себе проблемы и мужественно их решаем? )))) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2008, 12:34 |
|
Delphi vs IBExpert
|
|||
---|---|---|---|
#18+
Накинулись, накинулись ))))) ЛентяйА ты при изменении метаданных всегда только добавляешь поля? Удалять или переименовывать ни разу не приходилось? Приходилось, и что? При использовании select * from я меняю, или удаляю соответствующие FieldByName. При описании всех полей в запросе, кроме обращения к полям на клиенте, мне еще надо и сам запрос исправить. Где бонус-то? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2008, 12:36 |
|
Delphi vs IBExpert
|
|||
---|---|---|---|
#18+
А еще бывает добавляешь поле в несколько тысяч символов, ну или БЛОБ, потом будешь долго чесать репу "откуда тормоза"... особенно когда через ВПН с помегабайтной тарификацией работать надо. И тут * начинает стоить очень дорого, ибо как раз реальные дерьги вылетают в трубу на оплату интернета. Пока нагрузка маленькая таскание лишних полей по сети незаметно, а под нагрузкой может аукаться будь здоров, нафиг тянуть поле на клиента, если к нему все равно не будет обращения? Шоб "слоники бегали"? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2008, 12:44 |
|
|
start [/forum/topic.php?fid=42&msg=35114037&tid=1599952]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
161ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
78ms |
get tp. blocked users: |
2ms |
others: | 294ms |
total: | 579ms |
0 / 0 |