aardio 文档

aardio 范例: accesss 或 MSSSQL( SQL Server ) 数据库插入二进制数据。

//accesss 或 MSSSQL( SQL Server ) 数据库插入二进制数据。
import access;

//创建数据库
var db = access("/test-binary.mdb")

//创建表
if(!db.existsTable("Chunks") ){
    db.exec("CREATE TABLE Chunks(ID integer identity NOT NULL, Photo LONGBINARY NULL)")
}

//参数化插入数据
var cmd = db.createCommand( "INSERT INTO Chunks(Photo) VALUES(@Photo)" );  

//设置所有 SQL 命令参数的值
cmd.bind(  
    //用 string.loadBuffer 函数加载二进制字节串( buffer 类型 )。
    Photo = string.loadBuffer( "~\example\Graphics\.gdip.jpg" );
)

//执行命令
cmd.Execute()

/*

//下面这样写是错的,因为 db.exec 唯一的功能是执行 SQL,而 SQL 只是一个字符串。
db.exec(  "INSERT INTO Chunks(Photo) VALUES(@Photo)" ,{ 
    Photo = string.loadBuffer( "~\example\Graphics\.gdip.jpg" );
})

*/

import gdip;
for(rs,fields in db.each("SELECT * FROM Chunks") ){
    var bin = rs("Photo").value; //读取二进制数据
    if(bin){
        var hdc = ::GetDC(0);
        var graphics = gdip.graphics( hdc );

        var img = gdip.image(bin);
        graphics.drawImage( img ); //画到屏幕上看看

        img.dispose();
        graphics.delete();
        ::ReleaseDC(0,hdc);

        break;
    }
}

db.close();
Markdown 格式