发表回复 
SQLite如何保存txt
2012-06-28, 10 : 17
SQLite如何保存txt
[i=s] 本帖最后由 zhqjsh 于 2012-7-2 13:43 编辑 [/i]

从论坛找到的linpinger老兄的脚本,我试图用来保存txt,但是一直失败。

谁能帮我写几个可用的实例吗?只要简单的写入,读取,更新和删除就可以。

这是我改的,拜托帮我看看。
代码: (全选)
F1::
        DBPath := "d:\FoxTest.DB"

FileRead,小说,D:\小说.txt     ;一本大概几百k的小说。

        oDB := New SQLiteDB ; 实例化对象
        oDB.opendb(DBPath)  ; 打开数据库

        ; 创建表
        odb.exec("create table FoxMsg(ID integer primary key, Name text, Msg text)")



        odb.exec("BEGIN;") ; 事务开始, 当有批量任务时,使用事务能加速
    loop, 1 {
                oDB.exec("insert into foxmsg (name, Msg) values('Fox_" . A_index "', '现在时间是:" . 小说 "')")
    }
        odb.exec("COMMIT;") ; 提交事务

        ; 这里有其他的搜索方法吗?
        ; 这里好像是id,可以搜索关键字吗?
        ; 还有想读取出来,只有查询这个方法吗?
        ; 有什么方法可以直接指定读取的内容吗?
        oDB.gettable("select * from foxmsg where ID > 0", oTable)
        Txt := ""
        loop, % oTable.RowCount
                Txt .= oTable.rows[A_index][1] . "|" . oTable.rows[A_index][2] . "|" . oTable.rows[A_index][3] . "`r`n"
        Fileappend, %txt%, d:\查询结果_L.txt, CP936

        oDB.closedb() ; 记得关闭数据库
        Traytip, 提示:, 完毕

return

#include Class_SQLiteDB.ahk

用两个单引号替换掉单个的单引号……
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2012-06-28, 13 : 39
 
学习sql语法,http://www.w3school.com.cn/sql/
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2012-06-29, 10 : 06
 
嗯,谢谢,不过这个看不懂啊,我只会一些ahk命令……
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2012-06-29, 10 : 36
 
oDB.exec("insert into foxmsg (name, Msg) values('Fox_" . A_index "', '现在时间是:" . 小说 "');")
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2012-06-29, 10 : 47
 
擦,搜索了一圈,竟然没有一个解释下怎么建表的……
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2012-06-29, 11 : 01
 
sql 语法都不会的就不要用数据库工具了,txt文本不是挺好用的,直观方便。
这里只是提供AHK和其他工具的桥梁,并不是用AHK操作数据库,最后还是用sql语言操作数据库。建表用table,插入用insert,这些最基本的sql不学,谈何​操作数据库。
http://www.w3school.com.cn/sql/ 已经是最基础的教程了,看完这个再看sqlite的教程
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2012-06-29, 11 : 30
 
呃,抱歉没看到你前面的回复。

spl语法我觉得很简单啊,相关的命令很少的,只是教程太简陋了。

现在的感觉是,T.T ahk的中文帮助太强大了,看惯了,再看其他的,强大的落差啊……感谢制作者们……

下载了SQLite Administrator,一边测试,一边学习中……
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2012-06-29, 11 : 34
 
想用数据库的原因是最近写的编辑器需要频繁实时读写,用txt太牵强了。而且感觉学会了数据库,就可以用ahk.exe做一个控制台,全部用dll执行命令了。
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2012-06-29, 11 : 45
 
然后写个类似进程池,变量池的东西,就完美了……

我现在exe之外运行了3个dll进程。
主进程是鼠标手势,其他dll进程,一个剪贴板增强,一个窗口监视,看到桌面就更新壁纸,看到不喜欢的窗口就自动关闭,看到无法打开的网页就自动代理这些,还有一个是时钟​,肩负着系统计划任务,软件更新啦,自动备份啦,日期提示什么的……
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2012-06-29, 11 : 48
 
可惜ahk并没有真正的多线程
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2012-06-29, 11 : 58
 
某些SQL语法不简单................ 谁要说SQL简单我和谁急

要不要我给你个需求你给我写一个SQL试试
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2012-06-29, 12 : 09
 
呃,纯粹菜鸟言论,不要打脸啊……

不过命令确定很少嘛,至少和ahk相比那就是一个零头。

找到一个靠谱的中文帮助。


附件
.chm  sqlite(中文).chm (大小: 68.59 KB / 下载: 32)
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2012-06-29, 13 : 56
 
= = 遇到个问题,单引号除了替换之外,有没有其他方法呢?转义符什么……
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2012-06-29, 16 : 50
 
[i=s] 本帖最后由 zhqjsh 于 2012-6-29 17:20 编辑 [/i]

E=字
odb.exec("UPDATE foxmsg SET Msg =" E)


为何当 E 为非数字的时候就无法修改呢?
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2012-06-29, 17 : 27
 
找到了
odb.exec("UPDATE foxmsg SET Msg ='" . E . "')
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2012-06-29, 18 : 17
 
顺利入门……
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2012-06-30, 16 : 48
 
最近有想写这样的数据库简单入门的想法,不清楚需要的人有多少

AutoHotkey 学习指南 我的帖子
我不生产代码,我只是 AutoHotkey 的搬运工:从官方到中文;从其他语言到 AutoHotkey;有时则把 AutoHotkey 搬运到普通用户面前。
访问这个用户的网站 查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2012-06-30, 20 : 35
 
有很多人需要的,我很早之前就想用数据库,在网上找ahk相关的教程找了很久都没找到……
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2012-07-01, 11 : 33
 
支持版主写教程哦。
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
2012-07-01, 15 : 00
 
这个东西主要还是SQL那边
查找这个用户的全部帖子
表示感谢 引用并回复 移动视图置页面顶端
发表回复 


论坛跳转:


联系我们 | Autohotkey 中文站 | 回到顶部 | 回到正文区 | 精简(归档)模式 | RSS 聚合