チュートリアルをたくさん読んだが、画像をSQLテーブルに保存できない。私は私の迅速なアプリケーションとsqliteデータベースを接続するためにFMDBフレームワークを使用しています。これは、このオブジェクトを作成して保存する方法です画像をBlobフィールドに保存するFMDB
CREATE TABLE "PRODUCTO" (
`CODIGOPRODUCTO` integer NOT NULL PRIMARY KEY AUTOINCREMENT,
`CODIGOCATEGORIA` integer NOT NULL,
`NOMBREPRODUCTO` varchar(50) NOT NULL,
`DESCRIPCIONPRODUCTO` varchar(50) NOT NULL,
`IMAGEN` BLOB,
FOREIGN KEY(`CODIGOCATEGORIA`) REFERENCES `CATEGORIA`(`CODIGOCATEGORIA`)
)
データベースです
let newPr: Producto = Producto()
newPr.nombre = txtNombre.text!
newPr.descripcion = txtDescripcion.text!
newPr.idCategoria = Int(categoriaSel.id)
newPr.imagen = imageView.image!
Producto().insertar(itemProducto: newPr)
最後にこれは
conexion.database!.open()
let consulta: Bool = conexion.database!.executeUpdate("insert into PRODUCTO (CODIGOCATEGORIA,NOMBREPRODUCTO,DESCRIPCIONPRODUCTO, IMAGEN) values (\(itemProducto.idCategoria),'\(itemProducto.nombre)','\(itemProducto.descripcion)', \(UIImagePNGRepresentation(itemProducto.imagen)! as NSData))", withArgumentsIn: nil)
conexion.database!.close()
しかし、このコードは「insertar」機能で使用されるSQL文があります常に失敗します。
これは非効率的で、ベース64のプロセスにおいて33%より大きいPNG表現が(符号化し、それを復号する時間はもちろんする)コードを作ります。 SQLiteはBLOBとしてバイナリデータを直接格納できます – Rob