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

MS SQL Server


rustam_d

Вопрос

795d196b1044.jpg
Предлагаю ознакомиться с компонентом SDAC для работы с MS SQL.
Компания - https://www.devart.com/sdac/  Для тех кто еще не использует SDAC в ОС Android и IOS.
 
С версии 7.0.1 с ноября 2014 года компания доработала комонент SDAC
и появилась возможность работы с базой данных MS SQL Server из Android и IOS.
SDAC (pro version) компонент позволяет работать c MS SQL напрямую минуя посредников, 
в частности DataSnap, который требует разработки и поддержки своих application server.
 
Отсутсвие возможности соединяться с MS SQL из Android и IOS закрывало мне и массе другим
разработчикам в мир мобильных приложений на Delphi, всетаки мы не писатели на JDBC. 
Однако благодаря этому компоненту я снова в строю, хоть и с 2014 года ) никогда не поздно. 
Древняя технология клиент-сервер вполне работоспособная даже на 128 к/бит.
 
Разработчики компонента оперативно исправляют баги. Настройка соединения элементарная и
ничем не отличается от VCL. А последние версии уже почти не отличаются от VCL
в плане разработки.
 
В своих программах я предпочитаю использовать TMSStoredProc, но и другие компоненты работают идеально.
Стоит однако помнить, что для корректного отображения русского языка в гаджетах, важно в БД
создавать тип NVARCHAR, а в программе обращаться через AsWideString, например часть кода по загрузке меню.
 
 vSp.ParamByName('aSerial').AsWideString
 vSp.FieldByName('menu_text').AsWideString,
 
function TfmMain.LoadPopup: boolean;
var
    vSp: TMSStoredProc;
begin
    Result := false;
    vSp := SpCreate('ppp.sp_menu;3');
    try
      vSp.Open;
      while not vSp.eof do
      begin
        MenuInsert(
          vSp.FieldByName('btn_text').AsWideString,
          vSp.FieldByName('img_index').AsInteger,
          vSp.FieldByName('id').AsInteger
        );
        vSp.Next;
      end;
    finally
      vSp.Free;
    end;
    Result := true;
end;
 
function TfmMain.SpCreate(const aName: string):TMSStoredProc;
var
  vSp: TMSStoredProc;
begin
  Result := nil;
  vSp := TMSStoredProc.Create(Self);
  vSp.Connection := ssMain;
  vSp.StoredProcName := aName;
  vSp.PrepareSQL;
  Result := vSp;
end;
 
в этом примере подчеркнуто:
- простой SQL описанный в процедуре можно как и в VCL открыть c помощью Open (конечно ExecProc также доступен)
- префикс "3" означет поддержку префиксов(в одной процедуре более одной, типа oracle.package)
 
Еще один момент, но возможно разработчики его поправят, если есть OUT параметры, то они должны быть заполнены в процедуре,
другими словами инициализированы. Ниже упрощенный пример:
 
procedure TfmMain.actPinExecute(Sender: TObject);
var
  vSp: TMSStoredProc;
begin
  vSp := SpCreate('ooo.sp_pin;5');  //spcreate описана выше
  try
    vSp.ParamByName('aSerial').AsWideString := pSerial;
    vSp.ExecProc;
    if vSp.ParamByName('aTxt').AsWideString = 'OK' then
      ShowText(vSp.ParamByName('aTxt').AsWideString);
  finally
    vSp.Free;
  end;
end;
 
Скорость авторизации сессии TMSConnection достаточно высокая.
 
Компоненты проходят BindSource также как и любые другие DataSet.
Можно поспорить о безопасности клиент-сервер на гаджетах или облачных решениях, но если программер опытный в MS SQL
в плане безопасности, то проект будет достаточно профессионален, ведь не зря я использую хранимые процедуры, они ведь
все повязаны на грантах...
 
Devart разработали Delphi компоненты для всех существующих баз данных. И с работая с ними я также был очень доволен.
Фишка всех компонентов - отказ от клиентских драйверов. Не секрет, что стандартными компонентами FMX соединяться
с такими примитивными БД: mysql и sqllite порой "не айс", а иногда весьма сложно доставляя нагрузку поисковику гугл 
и различным стэковерам... Devart компоненты универсальны, как для VCL так и для FMX и значительно(часы, сутки и недели)
экономят время в разработке.
 
Компоненты SDAC проверены на личном опыте Андроида и ИОС, разработчики исправили 2 бага обнаруженые мной достаточно
оперативно.
 
Это не реклама, я бы хотел чтобы этот раздел также обсуждался разработчиками на форуме fire-monkey.ru
 
Ярослав, прошу создать ветку подфорума MS SQL.
 
С Уважением,
rustam_d
 
 
Изменено пользователем rustam_d
Ссылка на комментарий

Рекомендуемые сообщения

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...