Как реализовать файловые операции с QT и SQLite - PullRequest
0 голосов
/ 29 октября 2011

Greetz,

Мне очень любопытно, как использовать базовые файловые операции в QT и SQLite, и мне интересно, есть ли текущие примеры.Мои идеи такие:

  • OnAppOpen - создавать таблицы в: memory: database (просто вызвать новый файл)
  • OnFileSave - копировать все в: memory: в файл на диске
  • OnFileOpen - скопировать все из файла на диске в: memory:
  • OnFileNew - удалить текущую: memory: базу данных и создать новую (OnAppOpen)

иличто-то вроде

  • AppOpen
  • FileNew - отключить от базы данных и создать новую с: memory: name
  • FileSave - получить имя текущей базы данных

Любая помощь с этим будет более чем признательна, спасибо.

Ответы [ 2 ]

1 голос
/ 11 мая 2017

Пример dbAdapter, если вы хотите сохранить логи как таковые.

public class DBAdapter {
    static final String ________________ (xtimes u need it)

    static final String DATABASE_CREATE = "CREATE TABLE ('_______');
    final Context context;
    DatabaseHelper DBHelper;
    SQLiteDatabase db;

    public DBAdapter(Context ctx)
    {
        this.context = ctx;
        DBHelper = new DatabaseHelper(context);
    }
    private static class DatabaseHelper extends SQLiteOpenHelper
    {
        DatabaseHelper(Context context)
        {
            super(context, DATABASE_NAME, null, DATABASE_VERSION);
        }
        @Override
        public void onCreate(SQLiteDatabase db)
        {
            try {
                db.execSQL(DATABASE_CREATE);
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        @Override
        public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)
        {
            Log.w(TAG, "Upgrading database from version " + oldVersion + " to "
                    + newVersion + ", which will destroy all old data");
            db.execSQL("DROP TABLE IF EXISTS vehicle");
            onCreate(db);
        }
    }

    public DBAdapter open() throws SQLException
    {
        db = DBHelper.getWritableDatabase();
        return this;
    }

    public void close()
    {
        DBHelper.close();
    }

    public long insertVehicle(String _________ (xtimes u want))
    {
        ContentValues initialValues = new ContentValues();
        initialValues.put(_________);
        return db.insert(DATABASE_TABLE, null, initialValues);
    }

    public Cursor getAllVehicles()
    {
        return db.query(DATABASE_TABLE, new String[] {DATABASE_ROW_ID, ____}, null, null, null, null, null);
    }
0 голосов
/ 15 мая 2012

Qt уже имеет MySql как встроенный пакет SQL для операций с базой данных.QSQllite может быть недоступен из-за несовместимости лицензий.Если вы хотите использовать sqllite, вам следует установить пакет разработки для использования служб sqllite.

Операции, подобные упомянутым выше, абсолютно возможны с sqllite.

Примеры sqllite можно найти по адресу http://doc.trolltech.com/4.5/examples.html#sql

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...