Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по Delphi (до версии 2009) - часть 6

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125

Открыть новую тему     Написать ответ в эту тему

ShIvADeSt



Moderator
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Продолжение темы Вопросы по Delphi (до версии 2009) - часть 5

Познаем сами, помогаем другим...
Обсуждаем вопросы, не связанные с юникоидными версиями Delphi - для этого есть соответствующая тема (см. ссылки ниже).


 
Правила топика:
    Прежде чем спрашивать:
  1. Желательно изучить вопрос, попытаться найти ответ в прилагаемых мануалах, хелпах и анализируя исходники.
  2. Выполнить поиск по топику (открыть "Версия для печати" и поискать ответ там).
  3. Применить фильтр по разделу "Прикладное программирование". Ответы на многие старые вопросы могли быть даны в отдельных темах.
  4. Продумайте вопрос. На поверхностные вопросы вы получите поверхностные ответы, или вообще ответов не получите.
  5. Желательно указывать версии используемого компилятора и операционной системы.
    Прежде чем отвечать:
  1. Если не можете помочь, не мешайте.
  2. Если уж вы отвечаете на вопрос, давайте ответ по сути.
  3. Если вы не уверены, так и говорите! Ошибочный, но авторитетно звучащий ответ хуже, чем отсутствие ответа.
  4. Задавайте дополнительные вопросы, чтобы получить больше информации.
  • Отсутствие ответа не равносильно игнорированию - иногда участники форума просто не знают ответ. Повторная посылка вопроса не приветствуется. Посты типа "неужели никто не знает ответа..." или "может мне все-таки кто-нибудь ответит" недопустимы.  
  • Все большие куски кода (более 5 строк) оформляем в тег [morе] дабы уменьшить размер поста. FAQ по тегу [morе].


    Некоторые "родственные" топики:
     
  • Вопросы по Delphi (версии 2009-2010 Weaver)
  • Вопросы по компонентам для Delphi, C++ Builder
  • Использование DevExpress
  • Вопросы по Ehlib
  • Компоненты и утилиты для Delphi/BCB/FreePascal/Lazarus - только Open Source
  • Коммерческие компоненты и утилиты для Delphi/BCB
  • кабак программистов :)
     
    См. также: Некоторые полезные ресурсы о Delphi
     
    И старайтесь, чтобы ваш код не попал сюда :)

  • Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 05:13 19-05-2010 | Исправлено: akaGM, 02:33 15-07-2020
    ESV1987

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ant0ni02004
    под рукой нет проги, завтра посмотрю
    а неявная она потому, что в режиме рантайм она просто зависает, не выдавая ошибки, ошибка только в режиме отладке возникает
     
     
     
    а число параметров ограничено? если у меня их в where 6000, к примеру?)

    Всего записей: 56 | Зарегистр. 31-03-2007 | Отправлено: 20:34 15-07-2014 | Исправлено: ESV1987, 20:38 15-07-2014
    Frodo_Torbins

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ESV1987

    Цитата:
    если у меня их в where 6000, к примеру?)

    Похоже вы что то делаете не так. Наверняка эти 6000 параметров можно оптимизировать.

    Всего записей: 2318 | Зарегистр. 24-05-2007 | Отправлено: 21:44 15-07-2014
    ESV1987

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Frodo_Torbins )))
     
    так точно
     
    у меня параметры в духе ID_X=:ID_X or ID_X=:ID_X or ID_X=:ID_X or ID_X=:ID_X or ID_X=:ID_X or ID_X=:ID_X or ID_X=:ID_X or ID_X=:ID_X or ID_X=:ID_X or ID_X=:ID_X or ID_X=:ID_X и так далее
     
    а потом я в параметры добавляю сами значения ID_X...
     
    в другом запросе у меня сделано так:
    .... where ID_X in (..........)
     
    но это уже без параметров выходит... мне кажется с параметрами надёжнее, вот если подскажете, как сделать второй вариант с in и с параметрами - буду благодарен

    Всего записей: 56 | Зарегистр. 31-03-2007 | Отправлено: 22:01 15-07-2014
    krapotkin

    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    ESV1987
    делается табличка. возможно временная. туда заливаются все значения и условие выглядит как where ID_X in (Select field1 from TmpTable)

    Всего записей: 69 | Зарегистр. 10-01-2006 | Отправлено: 22:33 15-07-2014
    exteris

    Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору

    Цитата:
    делается табличка. возможно временная. туда заливаются все значения и условие выглядит как where ID_X in (Select field1 from TmpTable)  

    +1 за табличку.
    И in не нужен. Заменяем на join.

    Всего записей: 382 | Зарегистр. 14-04-2003 | Отправлено: 09:10 16-07-2014
    ESV1987

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    krapotkin
    Какой-то слишком радикальный вариант. Вряд ли я могу создать временную таблицу в той БД.
     
    ошибка EOleException 8007000E, т.е., как я и думал, out of memory

    Всего записей: 56 | Зарегистр. 31-03-2007 | Отправлено: 09:40 16-07-2014
    ShIvADeSt



    Moderator
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ESV1987

    Цитата:
    Какой-то слишком радикальный вариант. Вряд ли я могу создать временную таблицу в той БД.  

    Ну у меня в акцезе тоже нет временных табличек (или я их не нашел), но можно сделать таблицу нужного формата, чистить ее перед очередным селектом, заполнять нужными айдишниками и либо через in либо через join, либо через запятую подключаете.
    А делать условие с 6000 параметрами - это очень плохо.

    ----------
    И создал Бог женщину... Существо получилось злобное, но забавное...

    Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 10:41 16-07-2014
    ESV1987

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Update: вроде как удалось прикрепить данный запрос к предыдущему, из которого эти 6000 id и получались с помощью left join. Тестирую...

    Всего записей: 56 | Зарегистр. 31-03-2007 | Отправлено: 10:57 16-07-2014
    ShIvADeSt



    Moderator
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ESV1987
    То есть 6000 айдишников - это результат запроса? А можно его увидеть, чтобы более детально обсудить.

    ----------
    И создал Бог женщину... Существо получилось злобное, но забавное...

    Всего записей: 3956 | Зарегистр. 29-07-2003 | Отправлено: 11:47 16-07-2014
    ESV1987

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ShIvADeSt
     
    там сложный запрос
     
    суть его в том, есть БД с 20000 объектами (ориентировочно). По каждому объекту полно информации (информация устаревает, условно говоря, по каждому объекту очень много решений на разные даты). По некоторому условию объекты фильтруются (условие задаётся оператором), потом для объектов, прошедших фильтр (N штук), выбирается самая поздняя по дате информация и её набор для N объектов сохраняется
     
    второй мой запрос, в который я закидывал эти N объектов, доставал для них ещё доп. информацию из другой таблицы. Сейчас я тот запрос поджоинил с первым и всё ОК стало.

    Всего записей: 56 | Зарегистр. 31-03-2007 | Отправлено: 20:47 16-07-2014
    ant0ni02004

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ESV1987

    Цитата:
    По некоторому условию объекты фильтруются (условие задаётся оператором), потом для объектов, прошедших фильтр (N штук), выбирается самая поздняя по дате информация и её набор для N объектов сохраняется  

    подобное на Oracle хорошо делается, прямо в SQL (windowing)

    Всего записей: 442 | Зарегистр. 26-10-2004 | Отправлено: 23:22 16-07-2014
    krapotkin

    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    в Firebird тоже есть временные таблы, оч. удобно
    но и постоянная подойдет, если туда вписывать уникальный ID группы

    Всего записей: 69 | Зарегистр. 10-01-2006 | Отправлено: 09:26 17-07-2014
    NightSpawn



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Было соообщение и убежало %)

    Всего записей: 87 | Зарегистр. 01-01-2007 | Отправлено: 06:39 18-07-2014 | Исправлено: NightSpawn, 06:56 18-07-2014
    Man_Without_Face



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Доброго времени суток! Нужно отобразить текст в каком нибудь контролле, например мемо поле. Но должен быть поиск по ctrl+f. Поиск который меня устраивает есть в TWebBrowser, но текст после загрузки отображается одной длинной строкой, которую нужно проматывать скроллом. Подскажите как лучше сделать? Может можно как то настроить в TWebBrowser или есть другие стандартные компоненты (сторонние не подойдут). Спасибо.

    Всего записей: 381 | Зарегистр. 25-01-2010 | Отправлено: 18:10 18-07-2014
    XPerformer



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Man_Without_Face

    Цитата:
    но текст после загрузки отображается одной длинной строкой, которую нужно проматывать скроллом.  

    Сделайте замену в тексте перед показом в браузере
    s := StrUtils.ReplaceStr(s, #13#10, '<p>');

    Всего записей: 2536 | Зарегистр. 20-06-2011 | Отправлено: 18:19 18-07-2014
    Man_Without_Face



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    Сделайте замену в тексте перед показом в браузере

    А без строки можно? Я пишу вот так, через мемори стрим не делал, не помню почему:
          TBlobField(queXmlViewDetailLOG).SaveToFile(ExtractFilePath(paramstr(0)) + 'detail.xml');
          WbDetail.Navigate(ExtractFilePath(paramstr(0)) + 'detail.xml');
    А сейчас мне нужно обычный текст впихнуть.

    Всего записей: 381 | Зарегистр. 25-01-2010 | Отправлено: 18:35 18-07-2014
    Czechoslovak



    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Man_Without_Face
     
    А RichEdit не пойодет? Там есть функция поиска текста, в хэлпе есть пример с диалогом

    Всего записей: 175 | Зарегистр. 27-06-2007 | Отправлено: 10:48 23-07-2014
    idiMAN

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Man_Without_Face
     
    В интернете всё уже есть - Поиск в TMemo с использованием TFindDialog

    Всего записей: 466 | Зарегистр. 05-05-2003 | Отправлено: 15:46 24-07-2014
    LadyOfWood

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    Может можно как то настроить в TWebBrowser

    Можно пересносы добавить (<br/>)

    Всего записей: 620 | Зарегистр. 16-09-2003 | Отправлено: 21:45 27-07-2014
    YuriyRR



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Использую портабельную версию Delphi7 и почему-то не устанавливается пакет vclx70.bpl. Никто не сталкивался с такой проблемой?

    Всего записей: 516 | Зарегистр. 07-06-2007 | Отправлено: 19:19 30-07-2014
    Открыть новую тему     Написать ответ в эту тему

    Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125

    Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по Delphi (до версии 2009) - часть 6


    Реклама на форуме Ru.Board.

    Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
    Modified by Ru.B0ard
    © Ru.B0ard 2000-2024

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru