某些表的动态数据库备份

发布于 2024-10-12 10:14:28 字数 328 浏览 5 评论 0原文

我只需要备份主数据库中的一些表。其他表是参考表并且是静态的,因此不需要备份。

我在 SDCARD 上创建了一个新的空白数据库。我可以直接访问SDCARD上的数据库还是需要在备份完成后复制它?

真正的问题是我是否可以循环遍历每个记录中的字段或其他内容,这样我就不必有数百行代码,每个字段一个。

在 VB .NET 中,我会做一些类似的事情

For X = 0 to RS.Fields.Count
 NewRS.Fields(x).value = Rs.Fields(x).value

...在 android 中这样做有多伤?

I need to backup just some of the tables in my main database. The other tables are reference and are static so do not need to be backed up.

I have created a new blank DB that is on the SDCARD. Can I access the DB directly on the SDCARD or do I need to copy it when its finished backup?

The real question is can I iterate through the fields in each record in a loop or something so I dont have to have hundreds of line of code, one for each field.

In VB .NET I would do something like

For X = 0 to RS.Fields.Count
 NewRS.Fields(x).value = Rs.Fields(x).value

etc... How wound I do that in android?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

〆一缕阳光ご 2024-10-19 10:14:28

我写了一个类来处理这个问题。是的,我的数据库至少有 95% 是参考...

以下是代码的核心内容:

Cursor c = DbBak.rawQuery(Sql, null);
            String Cn[] = c.getColumnNames();

            if (c != null ) {
                if  (c.moveToFirst()) {
                    do {
                        for ( x=0; x< c.getColumnCount(); x++)
                        {
                            newRow.put(Cn[x].toString(), c.getString(x));
                        }

                        Db.insert(TableName,  null, newRow);

                    }while (c.moveToNext());

I wrote a class to handle this. Yes my DB is at least 95% reference...

Here is the guts of the code:

Cursor c = DbBak.rawQuery(Sql, null);
            String Cn[] = c.getColumnNames();

            if (c != null ) {
                if  (c.moveToFirst()) {
                    do {
                        for ( x=0; x< c.getColumnCount(); x++)
                        {
                            newRow.put(Cn[x].toString(), c.getString(x));
                        }

                        Db.insert(TableName,  null, newRow);

                    }while (c.moveToNext());
绝不服输 2024-10-19 10:14:28

除非您的参考表占数据库大小的 95%,否则我只需在数据库关闭时使用标准 Java 文件 I/O 复制数据库文件。这比尝试一次逐个单元地传输数据要快得多。

Unless your reference tables make up 95% of your database size, I'd just copy the database file using standard Java file I/O, while the database is closed. That will be substantially faster than trying to schlep the data over cell-at-a-time.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文