`

ruby 将图片读入sqlite,再取出

阅读更多

 

# -*- coding: utf-8 -*-

require 'sqlite3'

require 'base64'

 

if File.exist?('abc.db')

    File.delete('abc.db')

end

db = SQLite3::Database.new 'abc.db'

 

rows = db.execute <<-SQL

  create table scenes(

    id integer primary key,

    name varchar(30),

    image blob

  );

SQL

 

image = File.open( 't.jpg' ,'rb').read

db.execute( "INSERT INTO scenes (image) VALUES " + 

"('#{ Base64::encode64( image ) }');" )

 

db.execute( "SELECT * FROM scenes" ) do |scene|

  image = Base64::decode64( scene[2] )

  File.open( "back.png", "wb" ) do |back_out|

    back_out << image

  end

end

 

 

#一晚功夫...

 

下面是小改动resulthash返回数据

 

 

# -*- coding: utf-8 -*-

require 'sqlite3'

require 'base64'

 

if File.exist?('abc.db')

    File.delete('abc.db')

end

db = SQLite3::Database.new 'abc.db'

 

 

rows = db.execute <<-SQL

  create table scenes(

    id integer primary key,

    name varchar(30),

    image blob

  );

SQL

 

image = File.open( 't.jpg' ,'rb').read

db.execute( "INSERT INTO scenes (image) VALUES " + 

"('#{ Base64::encode64( image )  }');" )

 

db.results_as_hash = true

db.execute( "SELECT * FROM scenes" ) do |scene|

  image = Base64::decode64(scene['image'].to_s )

  File.open( "back.png", "wb" ) do |back_out|

    back_out << image

  end

end

 

分享到:
评论

相关推荐

    Ruby-SQLite3Ruby绑定SQLite3嵌入式数据库

    本文将深入探讨Ruby-SQLite3的使用方法、核心特性以及在实际开发中的应用。 首先,我们来了解如何在Ruby项目中安装SQLite3库。通过Ruby的包管理工具RubyGems,可以简单地执行以下命令来安装: ```bash gem install...

    sqlite3 ruby安装包

    SQLite3 是一个轻量级、开源的嵌入式数据库引擎,它不需要独立的服务器进程,而是作为应用程序的一...通过理解如何处理依赖、安装特定版本以及在代码中使用该 gem,你可以顺利地将 SQLite3 集成到你的 Ruby 项目中。

    C#使用SQLite存取图片的示例

    这个程序可能包含了数据库操作的UI界面,用户可以通过选择本地图片,将图片上传到SQLite数据库,然后从数据库读取并显示在PictureBox中。这展示了C#与SQLite结合处理图片数据的能力,是学习数据库操作和文件处理的一...

    sqlite3-ruby-mswin32.gem

    本文将深入探讨`sqlite3-ruby`在Windows平台上的应用以及相关文件的含义。 首先,我们关注的三个文件分别是: 1. `sqlite3-ruby-1.3.1-x86-mingw32.gem`: 这是一个适用于MinGW32环境的Ruby gem包,版本为1.3.1,...

    sqlite3安装包 sqlite3.dll ruby sqlite3数据库组件

    在Ruby on Rails框架中,SQLite3常被用作开发环境下的默认数据库,因其简单易用和快速响应而广受欢迎。当我们升级Rails到2.0.2版本时,系统会自动转向使用SQLite3作为数据库管理系统。 在这个压缩包中,有两个关键...

    Java将xlsx或者xls数据读入SQLite数据库

    做大创过程中需要将大量Excel数据读入SQLite数据库,百度了很多,但并没有解决我的问题,摸索了一天,想出了一个稍显复杂的办法: 第一步:将xlsx或者xls文件另存为csv文件(注意不能直接修改后缀),如果文件有很多...

    SQLite上传和保存图片

    本教程将深入探讨如何在SQLite中上传和保存图片,以及如何下载这些图片。 首先,我们要理解SQLite并不直接支持存储二进制大对象(BLOB)如图片。但是,我们可以通过将图片转换为字节流并将其存储在BLOB类型的列中来...

    sqlite3-ruby 适合于winxp上安装,附安装方法,解决初学者的困扰

    对于 WinXP,你需要手动下载 SQLite3 的预编译库(例如 sqlite3.dll 和 sqlite3.h),将其放在系统的 PATH 路径下,或者 Ruby 的 lib 目录下。 安装完成后,你可以通过下面的代码测试是否成功: ```ruby require '...

    WPF SQLite存储与读取二进制图片

    本篇文章将详细探讨如何在WPF应用中使用SQLite数据库来存储和读取二进制图片。 一、SQLite简介 SQLite是一款开源、无服务器、零配置、事务性的SQL数据库引擎,适用于嵌入式环境,无需额外的安装或管理。它支持标准...

    sqlite图片的上传下载.rar

    可以考虑使用缓存机制,或者将大图片进行压缩后再存储,减小数据库的负担。 7. **安全考虑**:在上传图片时,要确保文件来源的安全性,防止恶意代码注入。同时,处理用户输入时应进行适当的验证和清理。 8. **源码...

    Sqlite存储图片

    - **查询**:从数据库中查询图片时,获取到`BLOB`字段的内容,将其转换回字节数组,再通过`OutputStream`写入文件或者在内存中处理。 4. **ContentProvider和CursorLoader**:在Android环境中,通常会使用...

    Ruby-RubySQLite中的语言学习工具

    将SQLite与Ruby结合,开发者可以方便地进行数据库操作,而无需复杂的配置和额外的依赖。 在Ruby中使用SQLite,首先需要安装`sqlite3`库,这可以通过Ruby的包管理器`gem`来完成: ```bash gem install sqlite3 ``` ...

    `require': no such file to load -- sqlite3/sqlite3_native

    - **拷贝dll文件**:如果是Windows环境,将`sqlite3.dll`文件拷贝到系统目录(如`C:\Windows\System32`)或Ruby的bin目录下,以便系统能正确找到。 5. **源码和工具**:标签中的"源码"和"工具"暗示这可能涉及到对...

    iOS SQLite的基本操作以及在数据库保存保图片

    3. **从数据库读取图片**:查询图片记录时,将返回的`imageData`取出,再用NSData的`initWithData:`方法创建一个新的NSData对象,最后用这个NSData对象创建UIImage,如: ```objc UIImage *image = [[UIImage ...

    sqliteodbc驱动,可以让vbs通过ADO操作sqlite数据库

    当VBS通过ADO发出SQL查询时,这个驱动会将这些命令转换为SQLite能理解的格式,并将SQLite的响应转化为VBS可以通过ADO处理的形式。这使得开发者可以使用熟悉的ADO对象和方法来执行CRUD(创建、读取、更新、删除)操作...

    sqliteodbc驱动sqlite3

    假设我们已经成功安装并配置好了SQLiteODBC,下面将展示如何使用Python通过SQLiteODBC连接SQLite数据库: ```python import pyodbc # 数据库文件路径 db_file = 'C:\\path\\to\\your\\database.db' # ODBC DSN...

    SQLite 安装包 sqlite3 及sqlite数据库jdbc jar包

    描述中的“2分不能再少了”可能是指这个资源的价值或者评分,意味着这个SQLite的安装包和JDBC驱动对于某些用户来说是非常必要且有价值的。 在标签中,“SQLite”是数据库系统的名字,“sqlite3”是其命令行工具,...

    Qt sqlite 实现的图片查询小工具及代码

    【Qt sqlite 实现的图片查询小工具及代码】是一个基于Qt框架和SQLite数据库技术的应用程序,主要用于查询和显示图片。这个工具提供了通过图片ID或命令行(CMD)查询功能,帮助用户快速找到并查看存储在数据库中的...

    sqlite3文件(sqlite3.dll,sqlite3.h,sqlite3.lib)

    这意味着你的可执行文件将包含SQLite3的功能,无需在运行时依赖`sqlite3.dll`。然而,静态链接可能导致生成的可执行文件较大。 SQLite3的主要特点包括: 1. **零配置**:无需安装,只需要拷贝相关库文件到项目目录...

    Ruby + SQLite中的语言学习工具-Ruby开发

    用Ruby + SQLite编写的语言学习工具重要说明:这些工具应在终端中运行(“命令行”)。 一旦下载了这个git仓库,就进入您终端中的目录,并准备好键入用Ruby + SQLite编写的语言学习工具。重要说明:这些工具应在终端...

Global site tag (gtag.js) - Google Analytics