Перейти к содержанию
Fire Monkey от А до Я

Nik

Пользователи
  • Постов

    38
  • Зарегистрирован

  • Посещение

  • Победитель дней

    1

Сообщения, опубликованные Nik

  1. 1 час назад, haword сказал:

    А вот что реально бы меня заинтересовало, очень причем, это фреймворк, который смог бы все что ты налабал на делфи, переводить в нативный код и потом этот код можно было бы собрать уже нативными студиями. например написал прогу на делфи, делаешь сборку для андроида и тадам, появляется папка java а в ней проект для android studio, который там же собирается и работает так как ты задумывал это в делфи. или собираешь а там папка apple а там проект для XCode и все собиралось бы для ios и macos. ВОТ!! где было бы счастье 

    Вроде программист, а всё мечтаешь о большой зелёной кнопке ;-)

  2. 5 часов назад, RoschinSpb сказал:

    03.06 и 10.06 у меня назначены пьянкиответственные мероприятия в других местах.
    Кстати напомню, что в прошлый раз кроме упомянутых личностей пришел только один человек. 
    :mellow:

    я из Москвы приеду )

  3. Задался тут вопросом обновления версии Android NDK...

    Delphi 10.2 Tokio:

    - android-ndk-r14b-windows-x86_64 - скомпилировалось, но при запуске приложения на андроиде сбоит и виснет;

    - android-ndk-r15-beta1-windows-x86_64 - полёт нормальный.. всё работает )

    P.S> может кому пригодится

  4. Может стоит прописать полный URL http://www.airnav.tj/ru/online/utdd ?
    У тебя сейчас www. пропущен..
    В браузере похоже автоматическая переадресация идёт в случае ненахождения по краткому имени, а в Indy такой переадресации или нет, или она не задействована..

  5. Т.е. если у меня не идет перехват исключения какой то функции, то ее надо завернуть еще в одну функцию и ее вызов завернуть в try except? Это как то звучит на грани безумия. В приведенной вам ссылке ничего подобного не увидел.

     

    Но вернемся к теме, мне не нужен перехват исключения, мне нужен рабочий код. В коде ошибок нет, он работает под всеми платформами и на всех версиях кроме андроида 6.

     

    Да, именно так.. А не увидел - просто невнимательно смотрел ) http://docwiki.embarcadero.com/RADStudio/XE5/en/Migrating_Delphi_Code_to_Mobile_from_Desktop#Use_a_Function_Call_in_a_try-except_Block_to_Prevent_Uncaught_Hardware_Exceptions

     

    var
      P: ^Integer = nil;
     
    procedure G1;
    begin
      P^ := 42;
    end;
     
    begin
      try
        G1;
      except
        writeln('Catch:G1 - pass');
      end;
    end.
    

    По поводу андроида 6 - вечером на планшете обновился до этой версии.. Но я Post использую в своей программе.. Проверю завтра как будет работать..

    Тестовый проект выкладывай - попробуем разобраться.

     

  6. Nik, можно ссылку - где почитать про отличия? Пока работаю только с iOS, там все как привык, но скоро грядет и андроид, посему знать надо.

    http://docwiki.embarcadero.com/RADStudio/XE5/en/Migrating_Delphi_Code_to_Mobile_from_Desktop

  7. Вы резво начали :). Давайте потихоньку. Я создаю проект. Какие компоненты IBX необходимы? И, кроме этого, как использовать библиотеку Embedded сервера?

    сорри.. привычка кодить руками ))

    по поводу библиотеки Embedded - скачайте архив с этой версией с сайта firebirdsql.org. Это архив будет. Его надо распаковать в корневую папку вашего приложения (причём всякие doc, pdf, txt можно удалить).

    Этого достаточно, чтобы ваше приложение могло работать без установки сервера СУБД.

  8. Я сторонник Firebird - так что не надо никого искать )))

    insert into table (id, field)
    values (1, 'text');

    Это SQL-код для вставки записи..

    function ExecSQL(aDB: TIBDatabase; aTrans: TIBTransaction; const aStr: string; const Args: array of variant): boolean;
    var
      Query: TIBQuery;
      i: integer;
      s: string;
    begin
      Query := TIBQuery.Create(aDB);
      Result := True;
      try
        try
          with Query do
          begin
            DataBase:=aDB;
            Transaction := aTrans;
            if aTrans.Active then
              aTrans.Active:=false;
            aTrans.StartTransaction;
            SQL.Text:=aStr;
            Prepare;
            for i:=low(Args) to high(Args) do
              Params[i].Value:=Args[i];
            ExecSQL;
            aTrans.Commit;
            Close;
          end;
        except
          on E: Exception do
          begin
            aTrans.Rollback;
            Result:=false;
          end;
        end;
      finally
        aTrans.Active:=false;
        Query.Free;
      end;
    end;

    Такую процедуру я использовал для выполнения запросов, которые не возвращают результат (не select-запросы), только компоненты в данном случае используются IBX, а не FireDAC.

    Но принцип точно такой же.

  9. Вопрос всем: уважаемые, кто-нибудь из вас работал с базой данных Firebird? Не с какой-то другой, а именно с этой базой данных?

     

     

    Не поверите, но именно с Firebird я и работаю в основном во всех своих проектах ))

     

    И если Andy правильно понял ваши объяснения (как оказывается), то он вам верно ответил.

    А про терминологию rustam_d верно подметил ))

  10. А автор сабжа просто спросил какие компоненты использовать для коннекта к БД )))

    FDConnection, FDQuery, FDTransaction - при необходимости, ну и FDPhysFBDriverLink и кинь ещё FDGUIWaitCursor

    С первой строчкой согласен ) со второй нет - там ниже указано, что имеется сервер промежуточный и данные компоненты не подойдут для решения задачи..

    Но смешное в этой "истории" другое - судя по всему данную тему вернул в обсуждение бот рекламный )

  11. вы точно знаете для чего нужен SQL? Вот foxpro как раз вашу задачу и решает...таблица дает все что хотите...но именно все, а не часть )

    Если вы не заметили, то я говорил только про загрузку картинок через кэш. Всю остальную работу предпочитаю делать через хранимки. В том числе, получать отчёты сразу готовыми - остаётся только отформатировать вывод.

     

    Про проекты - много проектов было (информация нашла адресата и подлежит удалению :) )

     

    По поводу работы спросил - не заметил, что в Казахстане проживаете - было интересно узнать какое ПО другие операторы используют в работе.

     

    Про оракл в чём-то согласен с вами, но есть там и очень вкусные плюшки в SQL.. сейчас Firebird начинает подтягиваться в этом к ораклу.. А вот MS SQL меня не особо впечатлил - хотя свои плюшки тоже имеются - отчёты удобно в нём делать..

  12.  

    не понял, какой пример? вы хоть что то бы описали...о чем вообще хотели рассказать? я тоже 5 лет! (дикий срок...) проработал в GSM компании, там 20млрд транзакций в день, оракл,  и что?? там то я и увидел что такое 3-х звенка и как ее делают Java кодеры ). Никаких хранимок, "динамичный sql" и т.п. и как результат, сделали из оракл - foxpro...а стоимость то оракл...да это как бентли юзать, чтобы овец перевозить...

    Кем вы работали в GSM-компании если не секрет? И в какой GSM-компании работали?

    Что там оракл и как устроена вся система я успел рассмотреть.. рассказывать о том, как устроена их система - это не вопрос двух-трёх слов.. поэтому я и не думал даже какие-то детали оттуда приводить..

     

    Про трёхзвенку на C# - это высший пилотаж! )) можно мне трёхзвенку на C# под линукс и солярис?

     

     

    да походу вы просто не разобрались в чем проблема...вы организовали хранение картинок как файлы или что-то подобное...а на самом деле, узкое место было как раз ваша 3-х звенка...т.к. по вашему примеру вижу неважный трафик между вашим сервером и сервером БД...

     

    сам я храню в БД картинки, да в блобах, но качаю разово на клиента все картинки для imagelist до изменения. Дизайнеру картбланш на все иконки в программе, и он все правит, меня не беспокоя...

     

    картинки как раз в блобах и лежат.. а выводы были сделаны после сравнения производительности SQL-запроса с выборкой из блобов и без них.. можно было бы закачать все картинки разом если бы их не было примерно так тыс 15-20 и число их постоянно растёт, а на планшете "здесь и сейчас" нужны только часть из имеющихся картинок.. картинки в данном случае - это jpeg-файлы размером 40-150 кб.. как думаете сколько времени бы программа тратила на закачку такого объёма картинок?

    Да, ещё такой момент - картинки на планшете нельзя сохранять.. Требования от службы безопасности.. а обновление списка фотографий идёт в режиме реального времени от нескольких штук до десятков штук в минуту..

     

    P.S. и наверное я за 18 лет программирования, больше 10 лет работы с Firebird'ом и нескольких реализованных проектов совершенно не понимаю чего я делаю ) Следующий раз обязательно буду у вас спрашивать как мне лучше организовать архитектуру своих проектов )

  13. 30~70 сигналов в секунду поступают в базу. Сервер обработки данных обрабатывает сырые исходные данные и кладет обратно в ту же базу. 10-30 клиентов смотрят визуализацию в "реальном времени" и заводят данные о событиях в системе. вполне себе нагрузка. С транзакциями все хорошо.

    HTTP сервер для каждого запроса будет все равно изображать отдельного пользователя. Пусть даже с пулом коннектов. В чем выигрыш? 

    При интенсивном обмене это очень замедлит передачу данных

    В режиме HTTP-сервера можно, например, сжать данные для уменьшения трафика, убрать весь доп.служебный трафик от СУБД.

     

    "запрос к базе - это текстовая строка"

     

    а вот ответ - совсем не факт. и чем более компактно он выглядит, тем выше скорость обмена.

    так что именно от задачи выстраивается архитектура.

     

    вы не поверите, но именно про архитектуру я и говорил в своём сообщении )) у вас же наоборот совет напрямую клиентом к БД подключаться..

     

     

    опять же, для 100+ клиентов делать 2 звена - это ставить базу на колени, так что сразу появится вынужденный промежуточный сервер. но таких задач мне не попадалось. Либо интенсивно и мало юзеров, либо много юзеров, но в нормальном неспешном режиме, а для этого есть php. Мы же не фейсбук пишем...

    для примера - я в билайне на поддержке биллинговой системы работал.. там базы 18 ТБ.. очень интересно было посмотреть как всё устроено...

     

    а из того, что лично было сделано -  приложение с 20-30 клиентами на планшетах.. используется HTTP-сервер для получения информации из БД.. одной из задач является отображение списка с фотографиями из 200-1000 элементов.. объём передаваемых данных при этом измеряется порядка 20-30 МБ на каждого клиента при открытии сессии.. после написания "прямого" вариант фактическая скорость загрузки оказалась чрезвычайно низкой.. и одним из узких мест было чтение картинок (blob-полей) из БД.. для решения этой проблемы был создан кэш картинок на стороне сервера и картинки брались не из БД, а из этого кэша - скорость загрузки картинок на планшет удалось поднять в несколько раз..

     

    Так что не всегда двухзвенка имеет преимущества даже на малом количестве клиентов..

×
×
  • Создать...