数据库对内存的存储与读取

#include "mainwindow.h"
#include <QApplication>
#include <QtSql/QSqlDatabase>
#include <QtDebug>
#include <QtSql/qsqlquery.h>
#include <QByteArray>
#include <QTextCodec>
#include <QSqlError>
#define MAX_BUFFER_SIZE (200)
typedef unsigned char UCHAR8;
typedef UCHAR8 Message[MAX_BUFFER_SIZE];
typedef struct _Buffer
{
Message message;
int length;
}Buffer;

int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF-8"));
QSqlDatabase db = QSqlDatabase::addDatabase("QOCI");
db.setHostName("localhost");
db.setUserName("SYSTEM");
db.setPassword("FuxinOracle2014");
db.setPort(1523);
db.setDatabaseName("orcl");
if(db.open())
qDebug() << "open";
QSqlQuery q(db);
_Buffer buf;
memset(&buf, 0, sizeof(_Buffer));
buf.length = 1400;
for(int i = 0; i < 10; i++)
buf.message[i] = i + ‘a‘;
for(int i = 10; i < 20; i++)
buf.message[i] = ‘\0‘;
for(int i = 20; i < 30; i++)
buf.message[i] = i + ‘a‘;
for(int i = 30; i < 40; i++)
buf.message[i] = ‘,‘;
for(int i = 40; i < 50; i++)
buf.message[i] = ‘a‘ - i;
QByteArray by((char*)buf.message, 1400);
if(q.prepare("insert into ssss values(?)"))
{
q.bindValue(0,by);
if(q.exec())
qDebug() << "sus";
else
qDebug() << q.lastError();
}
q.exec("select * from ssss");
while(q.next())
{

QByteArray by2 = q.value(0).toByteArray();
;
}
return a.exec();
}

数据库对内存的存储与读取

时间: 2024-11-05 15:56:18

数据库对内存的存储与读取的相关文章

IOS中sqlite数据库利用bold类型存储与读取字典

我在做app收藏时, 发现我的数据有的是字典, 字典怎么向数据库中保存呢? 就看了好多博客, 字典应该利用数据库中的bold类型来保存,可是添加到数据库之后,读取不出来, 为此伤透了脑筋,为了解决这个问题, 花费了好时间. 以前认为bold类型就是用来存放二进制的,可以存放图片等, 而我的数据存到数据库中的确是二进制,所以读的时候全是二进制, 以致不能转换成字典.后来发现我保存数据的方法就是错的, bold类型不仅可以放二进制也可以放数据,简直颠覆了我对bold类型的看法,BLOB,只是一个数据

blob的存储与读取

对于oracle数据库的blob的存储与读取对应的是byte数组. 将blob类型数据存入数据库: String blob: byte[] byte = blob.getBytes(); entity.setDoc(byte); 然后直接作为blob类型存入即可: 将blob类型数据取出在前台展示: String blobStr = String(entity.getBlob(),"UTF-8"); 然后就可以在前台展示了

数据库:事务(存储引擎)

事务 其实对于事务而言,我们就是为了数据库恢复技术而产生的概念. 事务(Database Transaction) ,是指作为单个逻辑工作单元执行的一系列操作,要么完全地执行,要么完全地不执行. 事务处理可以确保除非事务性单元内的所有操作都成功完成,否则不会永久更新面向数据的资源.通过将一组相关操作组合为一个要么全部成功要么全部失败的单元,可以简化错误恢复并使应用程序更加可靠. 对于事务有如下相关属性: 原子性(Atomic)(Atomicity) 事务必须是原子工作单元:对于其数据修改,要么全

Oracle 12.1.0.2 New Feature翻译学习【In-Memory column store内存列存储】【原创】

翻译没有追求信达雅,不是为了学英语翻译,是为了快速了解新特性,如有语义理解错误可以指正.欢迎加微信12735770或QQ12735770探讨oracle技术问题:) In-Memory Column Store内存列存储 Starting in Oracle Database 12c Release 1 (12.1.0.2), the In-Memory Column Store (IM column store) is an optional, static SGA pool that sto

Mysql数据库的触发器、存储引擎和存储过程

数据库的触发器 1.触发器 触发器是MySQL响应以下任意语句而自动执行的一条MySQL语句(或位于BEGIN和END语句之间的一组语句): DELETE,INSERT,UPDATE 我们可以监视某表的变化,当发生某种变化时,触发某个操作. 能监视:增,删,改 触发操作:增,删,改 2.触发器应用场景: 1.当向一张表中添加或删除记录时,需要在相关表中进行同步操作.比如,当一个订单产生时,订单所购的商品的库存量相应减少. 2.当表上某列数据的值与其他表中的数据有联系时.比如,当某客户进行欠款消费

重新学习MySQL数据库3:Mysql存储引擎与数据存储原理

重新学习Mysql数据库3:Mysql存储引擎与数据存储原理 数据库的定义 很多开发者在最开始时其实都对数据库有一个比较模糊的认识,觉得数据库就是一堆数据的集合,但是实际却比这复杂的多,数据库领域中有两个词非常容易混淆,也就是数据库和实例: 数据库:物理操作文件系统或其他形式文件类型的集合: 实例:MySQL 数据库由后台线程以及一个共享内存区组成: 对于数据库和实例的定义都来自于 MySQL 技术内幕:InnoDB 存储引擎 一书,想要了解 InnoDB 存储引擎的读者可以阅读这本书籍. 数据

Oracle数据库之内存管理

大页内存 备注 备注1:不能使用oracle自动内存管理: 备注2:目的是减少swap的使用: 备注3:建议SGA大于8G: 备注4:只限于linux系统: 备注5:不会使用/dev/shm空间: 备注6:需要设置内存锁: 如果配置了大页内存但没有被oracle使用 1.sga_max_size超过了大页内存: 2.没有设置内存锁: 3.没有取消自动内存管理: 查看系统大页内存的使用情况 cat /proc/meminfo | grep -i HugePages 备注1:一般大页内存的默认大小为

[转] C#实现在Sql Server中存储和读取Word文件

出处 C#实现在Sql Server中存储和读取Word文件 要实现在Sql Server中实现将文件读写Word文件,需要在要存取的表中添加Image类型的列,示例表结构为: CREATE TABLE CONTRACTS ( ID VARCHAR (50), CONTRACT_FILE IMAGE ); 要将Word文件存储到数据库的CONTRACT_FILE字段中,需要将文件转换为byte数组,具体代码如下: /// 将文件转换为byte数组 /// <summary> /// 将文件转换

浮点数如何在内存中存储

首先,将10进制的小数0.1转换为二进制,方法如下: 0.1*2==0.2  取0.2的整数部分, 结果为0.0 0.2*2==0.4  取0.4的整数部分, 结果为0.00 0.4*2==0.8  取0.8的整数部分, 结果为0.000 0.8*2==1.6  取1.6的整数部分, 结果为0.0001 0.6*2==1.2  取1.6的整数部分, 结果为0.00011 0.2*2==0.4  取0.4的整数部分, 结果为0.000110 最后这一步开始循环,因此0.1的二进制为数为: 0.00