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

flexit

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

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

  • Посещение

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

  1. Я тоже начинал с таких примеров и понимаю, что это штатный вариант.

    Но у меня он не проходит, и думаю, что кривизна рук тут не при чем.

     

    На форме у TFDConnection драйвер у меня тоже указан.

    Но если я напишу в  ConnectionString='Database='+DBPath, то TFDConnection не понимает, какой драйвер нужно использовать.

    Ну а Params.Values['DriverID']:='SQLite' можно писать, или не писать - все равно в этом варианте при компиляции под Андроид  возникает ошибка при попытке коннекта.

  2. Все же я вернулся к TFDConnection и выяснил следующее.

     

    Перед установкой соединения при компиляции под Windows можно написать:

      FDConnection1.Params.Values['DriverID']:='SQLite';

      FDConnection1.Params.Values['Database']:= DBPath;   
    или 
      FDConnection1.ConnectionString:='DriverID=SQLite;Database='+DBPath;
    Проблем не будет в обоих случаях.
     
    А вот под Андроид первый вариант выдает ошибку [FireDAC][stan][Def]-254. Definition [baseName] is not found in [],
    а второй - успешно работает.
     
    P.S. Только начал изучать разработку мобильных приложений в Delphi, но подобные 'милые особенности' на каждом шагу уже успели изрядно утомить. 
  3. Попробовал использовать компонент TSqlConnection вместо TFDConnection c тем же самым кодом - ошибки при соединении не происходит. Придется использовать dbExpess вместо FireDAC.

    И все же интересно, в чем же может быть проблема при работе с компонентом TFDConnection. Есть какие-нибудь идеи?

  4. GetSharedDocumentsPath не работает

    GetDocumentsPath работает 

     FDConnection1.Params.Values['Database']  := TPath.Combine(TPath.GetDocumentsPath, 'lbase.db');

    Так я тоже пробовал и с тем же результатом. Изначально в Deloyment указывал .\assets\internal и использовал функцию GetDocumentsPath.

    Потом попробовал указывать в Deloyment .\assets в качестве RemotePath и использовать функцию GetSharedDocumentsPath. В результате  TFile.Exists показывает в обоих случаях, что файл базы присутствует, но ошибка все равно возникает.

    TPath.Combine я тоже использовал.

  5. Здравствуйте!

     

    Для создания соединения использую TFDConnection.

    Под Windows проблем нет, на планшете под Андроидом возникает ошибка:

    [FireDAC][stan][Def]-254. Definition [lbase] is not found in [].

    Физически база на устройстве присутствует, вижу ее в файловом менеджере и в коде проверяю наличие файла с помощью TFile.Exists.

     

    Код:

     

    procedure TForm5.FDConnection1BeforeConnect(Sender: TObject);
    var DBPath: string;
    begin
      {$IFDEF ANDROID}
         DBPath:=TPath.GetSharedDocumentsPath + PathDelim + 'lbase.db';
      {$ELSE}
         DBPath:='d:\test\lbase.db';
      {$ENDIF}
      if TFile.Exists(DBPath) then
        ShowMessage('File exist') else
        ShowMessage('File not exist');
      FDConnection1.Params.Values['Database']:= DBPath;
    end;
     
    procedure TForm5.Button1Click(Sender: TObject);
    begin
      FDConnection1.Connected:=true;
    end;

    TestConnect.zip

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