<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      秋·風

        博客園 :: 首頁 :: 博問 :: 閃存 :: 新隨筆 :: 聯系 :: 訂閱 訂閱 :: 管理 ::
      2024.09.11:
      dclvquery10.lpk在aarch64等linux平臺安裝出錯。
      解決方法:
      打開source/VirtualQuery.inc添加
      {$ifdef linux}
        {$if defined(cpuloongarch64) or defined(cpuaarch64) or defined(cpuarm) or defined(cpuriscv64)}
          {$DEFINE NOSTATIC}
        {$endif}
      {$endif}


      unidac 9.x.x不支持lazarus for linux(loongarch64或arm64)SQLite,因unidac SQLite默認使用靜態連接方式,但UNIDAC官方SQLite未提供arm64或loongarch64靜態庫,造成linux forloongarch64/arm64無法安裝liteprovider10.lpk,經跟蹤unidac源碼發現在source/uniProviders/SQLite/LiteDac.inc添加

      {$ifdef linux}
        {$if defined(cpuloongarch64) or defined(cpuaarch64) or defined(cpuarm) or defined(cpuriscv64)}
          {$DEFINE NOSTATIC}
        {$endif}
      {$endif}

      就可以安裝liteprovider10.lpk,SQLite的libsqlite3.so可以用這個帶加密功能的版本:linux編譯加密版sqlite - 秋·風 - 博客園 (cnblogs.com)

      unidac官方提供靜態庫前先用這個方法解決sqlite使用問題。

      //////////////////////////////////////////////////
      //  SQLite Data Access Components
      //  Copyright ? 2008-2022 Devart. All right reserved.
      //////////////////////////////////////////////////
      
      {$I Dac.inc}

      {$ifdef linux}
        {$if defined(cpuloongarch64) or defined(cpuaarch64) or defined(cpuarm) or defined(cpuriscv64) }
          {$DEFINE NOSTATIC}
        {$endif}
      {$endif}

      {$DEFINE UNIDACPRO}
      
      {$IFNDEF NOSTATIC}
        {$IFDEF STD}
          {$IFNDEF LITE}
            {$DEFINE NOSTATIC}
          {$ENDIF}
        {$ENDIF}

      使用方式:

      unit Unit1;
      
      {$mode objfpc}{$H+}
      
      interface
      
      uses
        Classes, SysUtils, DB, Forms, Controls, Graphics, Dialogs, StdCtrls, DBGrids,
        CnSM4, CnNative, SQLiteUniProvider, Uni,LiteConstsUni,inifiles;
      
      type
      
        { TForm1 }
      
        TForm1 = class(TForm)
          Button1: TButton;
          Button2: TButton;
          Button3: TButton;
          DataSource1: TDataSource;
          DBGrid1: TDBGrid;
          Edit1: TEdit;
          Label1: TLabel;
          SQLiteUniProvider1: TSQLiteUniProvider;
          UniConnection1: TUniConnection;
          UniQuery1: TUniQuery;
          UniTable1: TUniTable;
          procedure Button3Click(Sender: TObject);
          procedure FormClose(Sender: TObject; var CloseAction: TCloseAction);
          procedure FormCreate(Sender: TObject);
          procedure Button1Click(Sender: TObject);
          procedure Button2Click(Sender: TObject);
        private
      
        public
      
        end;
      
      var
        Form1: TForm1;
      
      implementation
      
      {$R *.lfm}
      
      { TForm1 }
      
      function IsSQLite3File(const FileName: TFileName): boolean;
      var F: THandle;
          Header:array [0..15] of char ;
      begin
        F := FileOpen(FileName,fmOpenRead or fmShareDenyNone);
        if F= THandle(-1) then
          result := false else begin
          FileRead(F,Header,15);
          if  Header='SQLite format 3' then  result:=true;
          FileClose(F);
        end;
      end;
      
      procedure TForm1.Button3Click(Sender: TObject);
      begin
        TLiteUtils.EncryptDatabase(UniConnection1,edit1.Text);//修改密碼
      end;
      
      procedure TForm1.FormClose(Sender: TObject; var CloseAction: TCloseAction);
      var MYIniFile:TIniFile;
      begin
        MYIniFile := TIniFile.Create(Extractfilepath(Paramstr(0)) + 'config.ini');
        MyIniFile.writestring('數據庫', '密碼',edit1.Text);
        MYIniFile.Free;
      end;
      
      procedure TForm1.FormCreate(Sender: TObject);
      var MYIniFile:TIniFile;
      begin
        MYIniFile := TIniFile.Create(Extractfilepath(Paramstr(0)) + 'config.ini');
        edit1.text:=MyIniFile.readstring('數據庫', '密碼','1231asd');
        MYIniFile.Free;
      end;
      
      procedure TForm1.Button1Click(Sender: TObject);
      begin
        if not FileExists(ExtractFilePath(Application.ExeName)+'demo.db3') then
        begin
          with UniConnection1 do
          begin
            ConnectString:='Provider Name=SQLite';
            Database:=ExtractFilePath(Application.ExeName)+'demo.db3';
            SpecificOptions.Values['ForceCreateDatabase']:='True';
            SpecificOptions.Values['EncryptionAlgorithm']:='leAES256';//設置加密方式
            SpecificOptions.Values['EncryptionKey']:=edit1.Text;
            SpecificOptions.Values['ClientLibrary']:=ExtractFilePath(Application.ExeName)+'libsqlite3.so';
            Connect;
            Close;
          end;
          UniQuery1.SQL.Clear;
          UniQuery1.SQL.Add('CREATE TABLE hardware (id INTEGER PRIMARY KEY, compname VARCHAR(30), username VARCHAR(30), model VARCHAR(30));');
          UniQuery1.SQL.Add('CREATE INDEX sHardware ON hardware(compname);');
          UniQuery1.SQL.Add('INSERT INTO hardware(id, compname, username, model) VALUES (1, "AMD8537", "OMonge", "Gigabyte");');
          UniQuery1.SQL.Add('INSERT INTO hardware(id, compname, username, model) VALUES (2, "英特爾", "OMonge", "Gigabyte");');
          UniQuery1.ExecSQL;
        end;
      end;
      
      procedure TForm1.Button2Click(Sender: TObject);
      begin
        UniConnection1.Connected:=false;
        with UniConnection1 do
        begin
          ConnectString:='Provider Name=SQLite';
          Database:=ExtractFilePath(Application.ExeName)+'demo.db3';
          SpecificOptions.Values['ClientLibrary']:=ExtractFilePath(Application.ExeName)+'libsqlite3.so';
          SpecificOptions.Values['EncryptionAlgorithm']:='leAES256';//設置加密方式,如果沒加密,則設置為leDefault
          SpecificOptions.Values['EncryptionKey']:=edit1.Text;//設置加密密碼,加密方式為leDefault時不能設置密碼,否則運行時會有出錯提示
          //leTripleDES, leBlowfish, leAES128, leAES192, leAES256, leCast128, leRC4, leDefault
          UniTable1.TableName:='hardware';
          UniTable1.Open;
        end;
      end;
      
      end.

      未修改前安裝出錯截圖:

        在龍芯電腦使用UNIDAC SQLite的截圖:

       

      posted on 2023-04-09 20:34  秋·風  閱讀(1369)  評論(3)    收藏  舉報
      主站蜘蛛池模板: av无码久久久久不卡网站蜜桃| 亚洲av区一区二区三区| av 日韩 人妻 黑人 综合 无码| 99精品久久免费精品久久| 成人午夜视频在线| 91孕妇精品一区二区三区| 国产a级三级三级三级| 午夜福制92视频| 亚洲一区二区三区人妻天堂| 亚洲一区成人av在线| 国产精品剧情亚洲二区| 国产在线国偷精品免费看| 亚洲欧美日产综合在线网| 欧美交a欧美精品喷水| 久久夜色精品国产亚av| 国产精品美女自慰喷水| 涿鹿县| 999国产精品999久久久久久 | h无码精品3d动漫在线观看| 国产欧美综合在线观看第十页 | 久久香蕉国产线看观看猫咪av| 免费AV片在线观看网址| 国产老熟女无套内射不卡| 性夜夜春夜夜爽夜夜免费视频 | 婷婷六月天在线| 亚洲永久精品一区二区三区| 精品亚洲精品日韩精品| 茄子视频国产在线观看| 久热这里只有精品在线观看| 无遮无挡爽爽免费视频| 人妻中文字幕不卡精品| 被黑人巨大一区二区三区| 亚洲aⅴ无码专区在线观看春色| 99在线视频免费观看| av色欲无码人妻中文字幕| 亚洲人午夜射精精品日韩| 国产精品SM捆绑调教视频| 姐姐6电视剧在线观看| 久久精品日韩av无码| 国产-第1页-浮力影院| 日韩精品一区二区亚洲专区|