//使用table作为参数
import sqlite
import console;
//打开数据库连接
var conn = sqlite("/tableParameter.db")
//创建表
if( not conn.existsTable("dataTable") ) {
//下面指定 name 字段为主键
conn.exec( "CREATE TABLE dataTable( name TEXT PRIMARY KEY,info BLOB);" );
}
//添加数据,如果存在相同主键数据则覆盖;
//-----------------------------------------------
var cmd = conn.prepare("replace into [dataTable] values ( @name,@info );")
cmd.bind.parameterByNamesAt(
name = "相同名称";
info = {
a = 123;
b = {
d = "测试";
}
}
);
cmd.step(); //执行命令
cmd.reset(); //重置命令
cmd.bind.parameterByNamesAt(
name = "相同名称";
info = {
a = 456;
b = {
d = "测试";
}
}
);
cmd.step(); //执行命令
cmd.reset(); //重置命令
cmd.bind.parameterByNamesAt(
name = "不同名称";
info = {
a = 789;
b = {
d = "测试";
}
}
);
cmd.step(); //执行命令
//查询数据
//-----------------------------------------------
cmd.prepare("SELECT * FROM [dataTable] ",{
name = "不同名称"; //可使用键值对指定查询条件
} )
console.log("自动生成的sql语句",cmd.sql )
var tab = cmd.stepQuery();
console.varDump("----------cmd.prepare(sql).stepQuery()-------------",tab)
cmd.finalize()
//查询数据 下面的代码更简单,等效于上面的代码
//-----------------------------------------------
tab = conn.stepQuery("SELECT * FROM [dataTable] ",{
name = "不同名称"; //可使用键值对指定查询条件
} )
console.varDump("----------conn.stepQuery()-------------",tab)
//查询数据 返回所有符合条件的行记录数组
//-----------------------------------------------
tab = conn.getTable("SELECT * FROM [dataTable] ",{
name = "不同名称"; //可使用键值对指定查询条件
} )
console.varDump("----------conn.getTable()-------------",tab)
//-----------------------------------------------
conn.exec("drop table dataTable ")
conn.close();
import sqlite
import console;
//打开数据库连接
var conn = sqlite("/tableParameter.db")
//创建表
if( not conn.existsTable("dataTable") ) {
//下面指定 name 字段为主键
conn.exec( "CREATE TABLE dataTable( name TEXT PRIMARY KEY,info BLOB);" );
}
//添加数据,如果存在相同主键数据则覆盖;
//-----------------------------------------------
var cmd = conn.prepare("replace into [dataTable] values ( @name,@info );")
cmd.bind.parameterByNamesAt(
name = "相同名称";
info = {
a = 123;
b = {
d = "测试";
}
}
);
cmd.step(); //执行命令
cmd.reset(); //重置命令
cmd.bind.parameterByNamesAt(
name = "相同名称";
info = {
a = 456;
b = {
d = "测试";
}
}
);
cmd.step(); //执行命令
cmd.reset(); //重置命令
cmd.bind.parameterByNamesAt(
name = "不同名称";
info = {
a = 789;
b = {
d = "测试";
}
}
);
cmd.step(); //执行命令
//查询数据
//-----------------------------------------------
cmd.prepare("SELECT * FROM [dataTable] ",{
name = "不同名称"; //可使用键值对指定查询条件
} )
console.log("自动生成的sql语句",cmd.sql )
var tab = cmd.stepQuery();
console.varDump("----------cmd.prepare(sql).stepQuery()-------------",tab)
cmd.finalize()
//查询数据 下面的代码更简单,等效于上面的代码
//-----------------------------------------------
tab = conn.stepQuery("SELECT * FROM [dataTable] ",{
name = "不同名称"; //可使用键值对指定查询条件
} )
console.varDump("----------conn.stepQuery()-------------",tab)
//查询数据 返回所有符合条件的行记录数组
//-----------------------------------------------
tab = conn.getTable("SELECT * FROM [dataTable] ",{
name = "不同名称"; //可使用键值对指定查询条件
} )
console.varDump("----------conn.getTable()-------------",tab)
//-----------------------------------------------
conn.exec("drop table dataTable ")
conn.close();
//使用命名参数
import sqlite
io.open();
//打开数据库连接
var sqlConnection = sqlite("/testParameters.db")
//创建表
if( not sqlConnection.existsTable("film") ){
sqlConnection.exec( "create table film(title, length, year, starring);")
}
//可以用@表示命名参数
var command = sqlConnection.prepare("insert into film values (@title,@length,@year, 'Jodie Foster');" )
//绑定命名参数,此函数默认在所有键前前添加@字符
command.bind.parameterByNamesAt(
title = "标题";
length = 4;
year = time.now();
)
//也可以这样写
command.bind.parameterByNames(
["@title"] = "标题";
["@length"] = 4;
["@year"] = time.now();
);
command.step();
//释放命令对象
command.finalize()
//显示最后插入ID
io.print("最后插入ID",sqlConnection.last_insert_rowid())
//迭代方式查询数据
for title, length, year, starring in sqlConnection.each("select * from film") {
io.print( title, length, year, starring )
break;
}
io.print("------------迭代数据 ok")
//删除表
sqlConnection.exec("drop table film" );
execute("pause") //按任意键继续
io.close();//关闭控制台
import sqlite
io.open();
//打开数据库连接
var sqlConnection = sqlite("/testParameters.db")
//创建表
if( not sqlConnection.existsTable("film") ){
sqlConnection.exec( "create table film(title, length, year, starring);")
}
//可以用@表示命名参数
var command = sqlConnection.prepare("insert into film values (@title,@length,@year, 'Jodie Foster');" )
//绑定命名参数,此函数默认在所有键前前添加@字符
command.bind.parameterByNamesAt(
title = "标题";
length = 4;
year = time.now();
)
//也可以这样写
command.bind.parameterByNames(
["@title"] = "标题";
["@length"] = 4;
["@year"] = time.now();
);
command.step();
//释放命令对象
command.finalize()
//显示最后插入ID
io.print("最后插入ID",sqlConnection.last_insert_rowid())
//迭代方式查询数据
for title, length, year, starring in sqlConnection.each("select * from film") {
io.print( title, length, year, starring )
break;
}
io.print("------------迭代数据 ok")
//删除表
sqlConnection.exec("drop table film" );
execute("pause") //按任意键继续
io.close();//关闭控制台
//获取表的所有字段名
import console;
import sqlite
var sqlConnection = sqlite("/dbGetColumnNames.db")
if( not sqlConnection.existsTable("film") )
sqlConnection.exec( "create table film(title, length, year, starring);")
getTableColumnNames = function(tableName){
cmd = sqlConnection.prepare("SELECT * FROM ["+ tableName +"] ")
return cmd.getColumns();
}
var column = getTableColumnNames("film")
console.varDump( column )
import console;
import sqlite
var sqlConnection = sqlite("/dbGetColumnNames.db")
if( not sqlConnection.existsTable("film") )
sqlConnection.exec( "create table film(title, length, year, starring);")
getTableColumnNames = function(tableName){
cmd = sqlConnection.prepare("SELECT * FROM ["+ tableName +"] ")
return cmd.getColumns();
}
var column = getTableColumnNames("film")
console.varDump( column )
全新安装程序,1秒安装
· 速度全面提升,启动速度和标签切换速度达到极致
· 全新界面框架,操作更流畅顺滑
· 第二代防假死,界面无残留
· 插件分离技术,Flash等独立进程运行,再不影响浏览器进程
这是一个Beta版本,很多细节不完善,请大家多给一些时间,我们会保持世界之窗一贯的品质。
下载地址!
import win.ui;
/*DSG{{*/
var winform = win.form(parent=...; text="AAuto Form";right=651;bottom=262 )
winform.add(
picturebox={ top=72;z=1;bottom=108;right=165;left=53;cls="picturebox" }
)
/*}}*/
downCode=function(){
imgebuf=downData("http://www.sofut.com/code.php?" ++ math.random());
if(imgebuf){
//string.save("/aa.jpg",imgebuf )
winform.picturebox.image=imgebuf;
}
}
downData=function(url,postdata){
return win.invoke(
function(url,postdata){
import win;
import inet.http;
http=inet.http()
if(postdata){
html,msg=http.post(url,postdata);
}else {
html,msg=http.get(url)
}
http.close()
return html,msg;
} ,url,postdata
)
}
downCode();
winform.show()
win.loopMessage();
return winform;
/*DSG{{*/
var winform = win.form(parent=...; text="AAuto Form";right=651;bottom=262 )
winform.add(
picturebox={ top=72;z=1;bottom=108;right=165;left=53;cls="picturebox" }
)
/*}}*/
downCode=function(){
imgebuf=downData("http://www.sofut.com/code.php?" ++ math.random());
if(imgebuf){
//string.save("/aa.jpg",imgebuf )
winform.picturebox.image=imgebuf;
}
}
downData=function(url,postdata){
return win.invoke(
function(url,postdata){
import win;
import inet.http;
http=inet.http()
if(postdata){
html,msg=http.post(url,postdata);
}else {
html,msg=http.get(url)
}
http.close()
return html,msg;
} ,url,postdata
)
}
downCode();
winform.show()
win.loopMessage();
return winform;









