首页 数据库 mysql教程 sqlite入门练习,通讯录增删改查

sqlite入门练习,通讯录增删改查

Jun 07, 2016 pm 02:57 PM
sqlite 入门 练习 选择 通讯录

选择了sqlite作为sql语言入门练习的数据库,因而也选择了同样轻便的编程工具AAuto,其封装了sqlite库,方便好用且很快写出一个带界面的小工具,有兴趣的OSC友只需到官网下载快手开发工具,解压缩,新建工程运行以下代码即可看到效果。 透过编写这个工具了解及

  选择了sqlite作为sql语言入门练习的数据库, 因而也选择了同样轻便的编程工具AAuto ,其封装了sqlite 库,方便好用且很快写出一个带界面的小工具 ,有兴趣的OSC友只需到官网下载快手开发工具,解压缩,新建工程运行以下代码即可看到效果。

透过编写这个工具了解及学习了以下知识:
1.sql基本语言, sqlite数据库创建、数据增加、修改、删除及模糊查询,命名参数运用。
2.列表视图listview控件的简单操作运用。
3.windows控件、窗体的命令响应、通知,消息循环等知识。
4.aauto的编程语言的数据类型、名字空间等特点。


        SQLite AAuto Quicker            

       

                                                sqlite入门练习,通讯录增删改查                                                                        

import win.ui;
import crreaDb;
/*DSG{{*/
var winform = ..win.form(text="快手通讯录   by 菲菲OSC";right=558;bottom=427;parent=...)
winform.add(
button={cls="button";text="添加记录";left=19;top=19;right=100;bottom=48;z=1};
button2={cls="button";text="编辑记录";left=115;top=19;right=196;bottom=48;z=2};
button3={cls="button";text="删除记录";left=211;top=19;right=292;bottom=48;z=3};
button4={cls="button";text="查找";left=476;top=22;right=536;bottom=48;z=5};
dress={cls="edit";left=375;top=152;right=541;bottom=176;edge=1;z=9};
edit={cls="edit";text="输入查找条件...";left=318;top=21;right=457;bottom=48;edge=1;z=4};
emal={cls="edit";left=375;top=193;right=541;bottom=217;edge=1;z=10};
listview={cls="listview";left=19;top=69;right=292;bottom=408;bgcolor=16777215;edge=1;fullRow=1;z=6};
mark={cls="richedit";text="备注";left=313;top=280;right=543;bottom=408;edge=1;hscroll=1;multiline=1;vscroll=1;z=17};
name={cls="edit";left=375;top=71;right=541;bottom=95;edge=1;z=7};
qq={cls="edit";left=375;top=234;right=541;bottom=258;edge=1;z=11};
static={cls="static";text="姓名";left=319;top=69;right=359;bottom=93;transparent=1;z=12};
static2={cls="static";text="电话";left=319;top=110;right=359;bottom=134;transparent=1;z=13};
static3={cls="static";text="地址";left=319;top=152;right=359;bottom=176;transparent=1;z=14};
static4={cls="static";text="邮箱";left=319;top=193;right=359;bottom=217;transparent=1;z=15};
static5={cls="static";text="QQ/MSN";left=319;top=234;right=359;bottom=258;transparent=1;z=16};
tel={cls="edit";left=375;top=112;right=541;bottom=136;edge=1;z=8}
)
/*}}*/

var sqlConnection = sqlite("\res\contact.db")
crreaDb.careaTable(sqlConnection)

// 显示数据
var showData = function(sql){
	for id,姓名,电话, 地址,邮箱,QQ ,备注 in sqlConnection.each("select rowid,* from tl") {
		winform.listview.addItem({tostring(id);姓名;电话; 地址;邮箱;QQ;备注})  	
	}
}

winform.listview.insertColumn("id",1)
winform.listview.insertColumn("姓名",100)
winform.listview.insertColumn("电话",100)
winform.listview.insertColumn("地址",120)
winform.listview.insertColumn("邮箱",120)
winform.listview.insertColumn("QQ",80)
winform.listview.insertColumn("备注",150)
showData()
winform.show() 

winform.button.oncommand = function(id,event){
	// 添加
	var name = winform.name.text
	var tel = winform.tel.text
	var dress = winform.dress.text
	var em = winform.emal.text
	var qq = winform.qq.text
	var mark = winform.mark.text
	crreaDb.addData(sqlConnection,name,tel,dress,em,qq,mark)
	id = sqlConnection.lastInsertRowid()
	var data = sqlConnection.stepQuery("select rowid,* from [tl] where rowid = "+id)
	winform.listview.addItem({tostring(data.id);data.name;data.tel;data.dress;data.em;data.qq;data.mark})
}

winform.button3.oncommand = function(id,event){
	// 删除
	var coun = winform.listview.selIndex
	var id = winform.listview.getItemText(coun)
	if(id){
		crreaDb.delData(sqlConnection,id)	
		winform.listview.clear()
		showData()		
		winform.listview.selIndex = coun	
	}
	else {
		winform.msgbox("请选择要删除的列")
	}
}


winform.button2.oncommand = function(id,event){
	// 编辑修改
	crreaDb.editData(sqlConnection,name,tel,dress,em,qq,mark,id)	
}


winform.button4.oncommand = function(id,event){
	// 查询
	var vv = winform.edit.text
	var id = crreaDb.inQuiry(sqlConnection,vv)
	winform.listview.clear()
	if(id){		
		for(i=1;#id;1){
			winform.listview.addItem({tostring(id[i].rowid);id[i].name;id[i].tel; id[i].dress;id[i].em;id[i].qq;id[i].mark})	
		}
	}
	else {
		winform.msgbox("找不到记录")
	}
}

winform.edit.wndproc = function(hwnd,message,wParam,lParam){
	if( message = 0x202/*_WM_LBUTTONUP*/ ) winform.edit.text = ""
}

winform.listview.onnotify = function(id,code,ptr){
	select(code) {
		case 0xFFFFFF9B/*_LVN_ITEMCHANGED*/  {
			if(winform.listview.selIndex){
				var lvw = winform.listview				
				winform.name.text = lvw.getItemText(lvw.selIndex,2)
				winform.tel.text = lvw.getItemText(lvw.selIndex,3)
				winform.dress.text = lvw.getItemText(lvw.selIndex,4)
				winform.emal.text = lvw.getItemText(lvw.selIndex,5)
				winform.qq.text = lvw.getItemText(lvw.selIndex,6)
				winform.mark.tex = lvw.getItemText(lvw.selIndex,7)
			}
		}
	}
}

win.loopMessage();
sqlConnection.exec("VACUUM")
sqlConnection.close()
return winform;
登录后复制

namespace crreaDb;
import sqlite;

careaTable = function(db){
	if( not db.existsTable("tl") ){
	//创建表
		db.exec( "create table tl(
			name, 
			tel , 
			dress,
			em,
			qq ,
			mark
			);"
		)
	}
}

// 添加数据
addData = function(db,name,tell,dress,em,qq,mark){
	var command = db.prepare("insert into [tl] values ( @name,@tel,@dress,@em,@qq,@mark );" ) 
	command.bind.parameterAtNames(  
	   	name = name;
		tel = tell;
		dress = dress;
		em = em;
		qq = qq;
		mark = mark
	).step() 
	command.finalize()	
}


// 删除
delData = function(db,id){
	db.exec("DELETE FROM [%s] where rowid=%d;","tl",id)
}


// 修改
editData = function(db,name,tel,dress,em,qq,mark,id){
	db.exec("UPDATE [tl] SET name = @name,tel=@te1 ,dress=@dress,em=@em,QQ=@qq,mark=@mark WHERE rowid = @id;",{
    	name = name;
		tel = tel;
		dress = dress;
		em = em;
		qq = qq;
		mark = mark;
		id = id    
	});				
}


// 模糊查询
inQuiry = function(db,re){
	var tab = db.getTable("select rowid,* from [tl] where ifnull(name,'') || ifnull(tel,'') || ifnull(QQ,'') like '%"+ re+ "%'")
	return  tab
}
登录后复制

                               

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它们
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

值得你花时间看的扩散模型教程,来自普渡大学 值得你花时间看的扩散模型教程,来自普渡大学 Apr 07, 2024 am 09:01 AM

Diffusion不仅可以更好地模仿,而且可以进行「创作」。扩散模型(DiffusionModel)是一种图像生成模型。与此前AI领域大名鼎鼎的GAN、VAE等算法,扩散模型另辟蹊径,其主要思想是一种先对图像增加噪声,再逐步去噪的过程。其中如何去噪还原原图像是算法的核心部分。最终算法能够从一张随机的噪声图像中生成图像。近年来,生成式AI的惊人增长将文本转换为图像生成、视频生成等领域的许多令人兴奋的应用提供了支持。这些生成工具背后的基本原理是扩散的概念,这是一种特殊的采样机制,克服了以前的方法中被

wallpaper engine能家庭共享吗 wallpaper engine能家庭共享吗 Mar 18, 2024 pm 07:28 PM

请问Wallpaper是否支持家庭共享呢?很遗憾,不能支持哦。尽管如此,我们仍有解决方案。比如,可以用小号购买或先由大号下载好软件和壁纸,然后再更换到小号。简单启动软件是完全没问题的。wallpaperengine能家庭共享吗答:Wallpaper暂不支持家庭共享功能。1、据了解,WallpaperEngine似乎并不适合家庭共享环境。2、为了解决这个困扰,建议您考虑购买全新账号;3、或者先在主账号下载所需软件和壁纸,再切到其他账号。4、只要轻点打开软件,便无碍。5、您可以在上述网页上查看属性“

一键生成PPT!Kimi :让「PPT民工」先浪起来 一键生成PPT!Kimi :让「PPT民工」先浪起来 Aug 01, 2024 pm 03:28 PM

Kimi:一句话,十几秒钟,一份PPT就新鲜出炉了。PPT这玩意儿,可太招人烦了!开个碰头会,要有PPT;写个周报,要做PPT;拉个投资,要展示PPT;就连控诉出轨,都得发个PPT。大学更像是学了个PPT专业,上课看PPT,下课做PPT。或许,37年前丹尼斯・奥斯汀发明PPT时也没想到,有一天PPT竟如此泛滥成灾。吗喽们做PPT的苦逼经历,说起来都是泪。「一份二十多页的PPT花了三个月,改了几十遍,看到PPT都想吐」;「最巅峰的时候,一天做了五个PPT,连呼吸都是PPT」;「临时开个会,都要做个

wallpaper engine怎么设置锁屏壁纸?wallpaper engine使用方法 wallpaper engine怎么设置锁屏壁纸?wallpaper engine使用方法 Mar 13, 2024 pm 08:07 PM

  wallpaperengine是常用于设置桌面壁纸的软件,用户在wallpaperengine里可以搜索自己喜欢的图片来生成桌面壁纸,还支持将电脑中的图片添加到wallpaperengine中设置成电脑壁纸。下面就来看看wallpaperengine设置锁屏壁纸的方法吧。  wallpaperengine设置锁屏壁纸教程  1、首先进入软件,然后选择已安装,点击“配置壁纸选项”。  2、单独设置选择完壁纸后需要点击右下方的确定。  3、再去点击上方的设置选和预览。  4、接下来

金山打字通怎么练打字-金山打字通练习打字方法 金山打字通怎么练打字-金山打字通练习打字方法 Mar 18, 2024 pm 04:25 PM

现在很多朋友喜欢用金山打字通这款软件,那么打字速度快慢严重影响工作效率,所以教大家练习打字速度,那么如何使用金山打字通练打字呢?今天小编就将金山打字通练习打数字教程如下讲述,希望对大家有所帮助。首先,打开金山打字软件然后,鼠标点击(新手入门)按钮接着,在新窗口中点击(数字键位)按钮随后,点击下方的(从头开始)按钮即可练习也可以点击(测试模式)按钮最后,输入数字进行练习就可以了此外金山打字通还有其他功能,能帮助大家更好的练习打字。1.选择练习模式:在软件界面上,您可以看到有不同的练习模式,例如“新

wallpaper engine看片有病毒吗 wallpaper engine看片有病毒吗 Mar 18, 2024 pm 07:28 PM

用户在使用wallpaperengine可以下载各种壁纸,还可以使用动态壁纸,有很多用户不知道wallpaperengine看片有没有病毒,只是视频文件是无法作为病毒的。wallpaperengine看片有病毒吗答:不会。1、只是视频文件是无法作为病毒的。2、只要确保从可信的来源下载视频,并保持电脑的安全防护措施,就可以避免病毒感染的风险。3、应用程序类壁纸是apk格式,apk可能会携带木马病毒。4、WallpaperEngine本身没有病毒,但是创意工坊里的一些应用程序类壁纸可能有病毒。

CVPR 2024全部奖项公布!近万人线下参会,谷歌华人研究员获最佳论文奖 CVPR 2024全部奖项公布!近万人线下参会,谷歌华人研究员获最佳论文奖 Jun 20, 2024 pm 05:43 PM

北京时间6月20日凌晨,在西雅图举办的国际计算机视觉顶会CVPR2024正式公布了最佳论文等奖项。今年共有10篇论文获奖,其中2篇最佳论文,2篇最佳学生论文,另外还有2篇最佳论文提名和4篇最佳学生论文提名。计算机视觉(CV)领域的顶级会议是CVPR,每年都会吸引大量研究机构和高校参会。据统计,今年共提交了11532份论文,2719篇被接收,录用率为23.6%。根据佐治亚理工学院对CVPR2024的数据统计分析,从研究主题来看,论文数量最多的是图像和视频合成与生成(Imageandvideosyn

wallpaper engine的壁纸在哪个文件夹 wallpaper engine的壁纸在哪个文件夹 Mar 19, 2024 am 08:16 AM

用户在使用wallpaper时可以下载各种自己喜欢的壁纸进行使用,有很多用户不知道wallpaper的壁纸在哪个文件夹,用户下载的壁纸存放在content文件夹里。wallpaper的壁纸在哪个文件夹答:content文件夹。1、打开文件资源管理器。2、点击左侧“此电脑”。3、找到“STEAM”文件夹。4、选择“steamapps”。5、点击“workshop”。6、找寻“content”文件夹。

See all articles