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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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
    salexn1



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    adasiko
    DAC, ODAC - не бесплатное
     
    попробовать вместо ADOQuery использовать TADOCommand

    Всего записей: 502 | Зарегистр. 21-02-2008 | Отправлено: 18:59 29-05-2012
    ant0ni02004

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    adasiko
     
    нужно завести и настроить столько TAdoQuery сколько таблиц (чтобы по нескольку раз не настраивать) перед чтением данных, потом только param.value:=... и execute
     
     
     
     
    Добавлено:
    salexn1
     
    или TAdoCommand - но опять же настроить их всех перед загрузкой данных

    Всего записей: 442 | Зарегистр. 26-10-2004 | Отправлено: 21:35 29-05-2012
    adasiko



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Все перебровал. Все равно скорость одинаковая Видать ограничения в последовательном выполнении в адо и больше из него не выжмешь

    Всего записей: 1807 | Зарегистр. 30-06-2008 | Отправлено: 10:03 30-05-2012
    Kmich



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    adasiko
    а если попробывать на оракл сами файлы закачать  
    а потом проделать сделать процедуру которая из временной таблицы сделает разбивку по всем таблицам  на Oracle.  
    Если конечно сервер достатно скоростной и позволяет это сделать.
     
    и еще бывает иногда скорость увеличивается при отключении индексов и тригеров, после импорта можно индексы создать поновому и тригеры активировать.

    Всего записей: 192 | Зарегистр. 21-01-2005 | Отправлено: 10:43 30-05-2012 | Исправлено: Kmich, 10:45 30-05-2012
    Frodo_Torbins

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    adasiko
    Мне кажется, что у вас основные потери на обмен данными с сервером. Нужно как нибудь изловчится все одним пакетом отправить. Можно через транзакцию попробовать, а можно один длинющий запрос построить.

    Всего записей: 2318 | Зарегистр. 24-05-2007 | Отправлено: 16:07 30-05-2012
    ant0ni02004

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    adasiko
     
    а BeginTrans.... тут всё загружаем..... CommitTrans

    Всего записей: 442 | Зарегистр. 26-10-2004 | Отправлено: 17:39 30-05-2012
    alex1334

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    akaGM
    За подсказку про union спасибо. В СИ я не пишу вообще, а в дельфи не доводилось встречаться с таким типом данных. К сожалению я нигде в настройках среды не нашел возможности чтобы компилятор Delphi понимал заголовачные файлы *.h вот и лепил я свои структуры.  

    Всего записей: 148 | Зарегистр. 10-10-2010 | Отправлено: 00:08 31-05-2012
    akaGM

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

    Цитата:
    а в дельфи не доводилось встречаться с таким типом данных

     
    union {
                DWORD   PhysicalAddress;
                DWORD   VirtualSize;
        } Misc;
     
    Misc = record
      case integer of
      0: (PhysicalAddress: DWORD);
      1: (VirtualSize: DWORD);
    end;
     
     writeln('sizeof(Misc) = ', sizeof(Misc));
    out:
     sizeof(Misc) = 4
     
    ты и Дельфи фигово знаешь...

    Всего записей: 24056 | Зарегистр. 06-12-2002 | Отправлено: 00:13 31-05-2012 | Исправлено: akaGM, 00:17 31-05-2012
    alex1334

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    akaGM SizeOf вас не спасет если в структуре вместо dword напишите word. Она вычислит размер в соответствии с тем типом который вы описали с ошибкой.  
    А поскольку данные то внешние то это неизбезно приведет к исключению или другой ошибке. Кстати delphi ругается на тип dword я использую cardinal.

    Всего записей: 148 | Зарегистр. 10-10-2010 | Отправлено: 23:59 03-06-2012
    akaGM

    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    alex1334
    а зачем меня спасать?
    размер такой структуры (как и юнион в С) определяется наибольшим элементом...
     
    ttt = packed record
    case integer of
      0: (PhysicalAddress: integer);
      1: (VirtualSize: integer);
      2: (bbb: byte);
      3: (ccc: char);
      4: (aaa: array[1..100] of integer);
    end;
     
    а для DWORD нужно юзать windows...

    Всего записей: 24056 | Зарегистр. 06-12-2002 | Отправлено: 00:33 04-06-2012 | Исправлено: akaGM, 11:07 04-06-2012
    Grande



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Что-то не пойму, в чем дело:
     

    Код:
    procedure TfrmServer.FormActivate(Sender: TObject);
    begin
      frmFrame := TfrmFrame.Create(frmServer);
      frmFrame.Parent := frmServer;
      frmFrame.OnCreate := frmFrame.FormCreate;
    end;
     
    procedure TfrmFrame.FormCreate(Sender: TObject);
    begin
      ShowMessage('УРААААА!!!!!');
    end;
     

     
    Событие TfrmFrame.FormCreate не срабатывает
    Что тут не так? Вроде, простейший код...

    Всего записей: 588 | Зарегистр. 18-09-2003 | Отправлено: 12:03 07-06-2012
    exteris

    Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Grande
    Вы событие на создание формы(или фрейма) назначаете уже после его создания.

    Всего записей: 382 | Зарегистр. 14-04-2003 | Отправлено: 13:17 07-06-2012 | Исправлено: exteris, 13:18 07-06-2012
    Grande



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

    Цитата:
    Вы событие на создание формы(или фрейма) назначаете уже после его создания.

     
    Пробовал менять местами - Access Violation.

    Всего записей: 588 | Зарегистр. 18-09-2003 | Отправлено: 13:31 07-06-2012
    akaGM

    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Grande
    а что ты хочешь сотворить-то?

    Всего записей: 24056 | Зарегистр. 06-12-2002 | Отправлено: 13:58 07-06-2012
    Grande



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

    Цитата:
    а что ты хочешь сотворить-то?

    У меня куча форм, создающихся в run-time, а посему я хочу сотворить кое-какие действия в OnCreate.

    Всего записей: 588 | Зарегистр. 18-09-2003 | Отправлено: 15:01 07-06-2012
    XPerformer



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Grande
    используй AfterConstruction

    Всего записей: 2536 | Зарегистр. 20-06-2011 | Отправлено: 15:41 07-06-2012
    mdid

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

    Цитата:
    У меня куча форм, создающихся в run-time, а посему я хочу сотворить кое-какие действия в OnCreate.
     

    а вам не кажется что это не удачная затея...хорошим тоном считается создавать форму тогда когда она надо а не все что есть в наличии и сразу...я конечно не знаю задачи..но все же

    Всего записей: 1298 | Зарегистр. 13-02-2006 | Отправлено: 15:47 07-06-2012
    Grande



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

    Цитата:
    используй AfterConstruction

    Спасибо, сделал
     

    Цитата:
    а вам не кажется что это не удачная затея...хорошим тоном считается создавать форму тогда когда она надо а не все что есть в наличии и сразу...я конечно не знаю задачи..но все же

    Так я их и создаю по мере надобности

    Всего записей: 588 | Зарегистр. 18-09-2003 | Отправлено: 16:05 07-06-2012
    akaGM

    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Grande
    что-то с логикой не того, только я не могу понять что...
     
    procedure TfrmServer.FormActivate(Sender: TObject);
    begin
      frmFrame := TfrmFrame.Create(Self);
      frmFrame.Parent := Self;
    //  frmFrame.OnCreate := frmFrame.FormCreate;
    end;
     
    тебе именно в FormActivate() надо воткнуться?

    Всего записей: 24056 | Зарегистр. 06-12-2002 | Отправлено: 16:15 07-06-2012
    Grande



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

    Цитата:
    тебе именно в FormActivate() надо воткнуться?

    Не обязательно: необходимо создать формы frmFrame после создания формы frmServer.

    Всего записей: 588 | Зарегистр. 18-09-2003 | Отправлено: 16:48 07-06-2012
    Открыть новую тему     Написать ответ в эту тему

    Страницы: 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