qt怎么连接已经存在的sqlite3数据库

qt怎么连接已经存在的sqlite3数据库,第1张

采用将项目中的sqlite文件拷到android内存卡上的固定位置,先判断位置上是否存在sqlite文件,不存在则复制文件。 sqlite可放在res的raw目录下,亦可放在assets下,放在assets下,可新建其他层次目录,本例选择assets

1首先,添加sdcard权限在AndroidManifestxml

<uses-permission android:name="androidpermissionWRITE_EXTERNAL_STORAGE" />

在activity中有如下代码

2Java代码

button2setOnClickListener(new ButtonOnClickListener() {

@Override

publicvoid onClick(View arg0) {

try{

String DATABASE_PATH = androidosEnvironmentgetExternalStorageDirectory()getAbsolutePath()

+ "/testdb"; //将要存放于的文件夹

String DATABASE_FILENAME = "testDatabasedb"; //文件名

String databaseFilename = DATABASE_PATH + "/" + DATABASE_FILENAME;

File dir = new File(DATABASE_PATH);

// 如果/sdcard/testdb目录中存在,创建这个目录

if (!direxists())

dirmkdir();

// 如果在/sdcard/testdb目录中不存在

// testdb文件,则从asset\db目录中复制这个文件到

// SD卡的目录(/sdcard/testdb)

if (!(new File(databaseFilename))exists()) {

// 获得封装testDatabasedb文件的InputStream对象

AssetManager asset=getAssets();

InputStream is=assetopen("db/testDatabasedb");

FileOutputStream fos = new FileOutputStream(databaseFilename);

byte[] buffer = newbyte[8192];

int count = 0;

// 开始复制testDatabasedb文件

while ((count = isread(buffer)) > 0) {

foswrite(buffer, 0, count);

}

fosclose();

isclose();

assetclose();

}

SQLiteDatabase mSQLiteDatabase=openOrCreateDatabase(databaseFilename, ActivityMODE_PRIVATE, null);//有则打开,没有创建

Cursor cur=mSQLiteDatabaserawQuery("select from table1", null);

if(cur!=null){

if(curmoveToFirst()){

do{

int idColumnIndex=curgetColumnIndex("id");

int numColumnIndex=curgetColumnIndex("num");

int dataColumnIndex=curgetColumnIndex("data");

int id=curgetInt(idColumnIndex);

int num=curgetInt(numColumnIndex);

String data=curgetString(dataColumnIndex);

Systemoutprintln("id:"+id+";num:"+num+";data:"+data);

}while(curmoveToNext());

curclose();

}

}

mSQLiteDatabaseclose();//关闭数据库连接

}catch(Exception e){

eprintStackTrace();

}

//deleteDatabase("testDatabasedb");//删除数据库

}

});

都很强大,具体选用哪个跟你用数据库的需求以及使用环境等有关。如果你的编程环境是微软windows服务器,使用微软系的编程语言,比如C#、VB等,那么sql server肯定是首选;如果你对数据库的企业化要求非常高,比如非常完善的日志管理、sql代码优化等,oracle这方面做的不错;如果你是用php等来做轻量级网站编程,mysql则是非常好的搭档,php自带的mysqli工具包对 *** 作mysql来说非常方便。

另外,从好学不好学这个角度来说的话,想入门都很好学,想精通都得下一番功夫!

qt creator怎么查询数据库内容:

U-boot中有一个用来保存很多有用信息的全局结构体 --gd_t(global data缩写),其中包括了bd变量,可以说gd_t结构体包括了u-boot中所有重要全局变量。最后传递给内核的参数,都是从gd和bd中来的,如上 述的setup_memory_tags函数的作用就是用bd中的值来初始化RAM相应的tag。

对于ARM平台这个结构体的定义大致如下:

include/asm-arm/global_datah

typedef struct global_data {

bd_t bd;

unsigned long flags;

unsigned long baudrate;

unsigned long have_console; / serial_init() was called /

unsigned long reloc_off; / Relocation Offset /

unsigned long env_addr; / Address of Environment struct /

unsigned long env_valid; / Checksum of Environment valid /

unsigned long fb_base; / base address of frame buffer /

void jt; / jump table /

} gd_t;

在U-boot中使用gd结构之前要用先用宏DECLARE_GLOBAL_DATA_PTR来声明。这个宏的定义如下:

include/asm-arm/global_datah

#define DECLARE_GLOBAL_DATA_PTR register volatile gd_t gd asm ("r8")

从这个宏的定义可以看出,gd是一个保存在ARM的r8寄存器中的gd_t结构体的指针。

说明:本文的版本为U-boot-134、Linux-2628,平台是ARM。

以上就是关于qt怎么连接已经存在的sqlite3数据库全部的内容,包括:qt怎么连接已经存在的sqlite3数据库、用qt库做设计用mysql数据库好还是用sqlserver好、qt creator怎么查询数据库内容等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9493133.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-28
下一篇2023-04-28

发表评论

登录后才能评论

评论列表(0条)

    保存