1

私は実際に古いバージョンの Realbasic (2008) を使用しており、VB スクリプトを使用していくつかの小さなデータベースを Zip ファイルとしてバックアップしています。

thnis メソッドは Windows 8 では機能せず、クロスプラットフォームでもありません。

増分できるようにバックアップを単一のファイルにしたいので、小さなデータベースのコピーを保持するために大きなデータベースを使用することを考えました。

これは可能ですか?

このためのプラグインを購入するつもりはありません。

4

3 に答える 3

2

ポールの答えに似ています。格納するファイルのバイナリ データを MemoryBlock に読み取り、結果の文字列をデータベースに保存できます。いくつかのアプリケーションでこれを行いました。すべてが最初にRAMで発生し、次にデータベースに書き込まれるため、高速であるとは思わないでください。

理想的には、保存する前にファイル/文字列を圧縮したいと思います。ただし、Xojo には gzip が組み込まれていないため、圧縮にサードパーティのソリューションを使用するか、Declares を介して OS 呼び出しを行う必要があります。

于 2013-11-05T14:26:06.947 に答える
1

助けてくれた Paul と BKeeney に感謝します。BKeeney が最も接近し、いくつかの実験の後、成功しました!

これが私がしたことです...

      //
      Dim l, p As Integer
      Dim ReadFromFile as BinaryStream
      Dim f as FolderItem

      f= GetFolderItem("Keyhoe.db3")

      If f <> Nil Then
        l = f.Length
        ReadFromFile=f.OpenAsBinaryFile( False)

        mb = New MemoryBlock(l)

        While Not ReadFromFile.EOF
          mb.byte(p) = ReadFromFile.ReadInt8
          p = p + 1
        wend

        ReadFromFile.close
      End If

      Dim dbFile as FolderItem
      Dim db as REALSQLdatabase
      db= New REALSQLdatabase
      Dim mydate as New Date
      Dim rec as DatabaseRecord

      dbFile = GetFolderItem("Backup.db3")
      db.DatabaseFile = dbFile
      If db.Connect Then
        rec = New DatabaseRecord

        rec.Column("Name") = "Keyhoe"
        rec.BlobColumn("Content") = mb.LeftB(l)
        db.InsertRecord("Databases",rec)
        db.Commit
      else
        MsgBox "Error: "+db.ErrorMessage
      End if

      msgbox "Done..."

ありがとうございます...あとはデータベースを元に戻す方法を見つけるだけですが、そのタスクの例がいくつかあります。

乾杯、

アラン...

于 2013-11-05T20:08:43.457 に答える