Поиск сообщества
Показаны результаты для тегов 'fmx mssql'.
Найдено: 1 результат
-
Предлагаю ознакомиться с компонентом 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