delphi 如何调用数据库?

比如有100mb大小的txt,用assigninput去读,会很久而且很麻烦。。变量占用内存也大。。如何用delphi快速调用100mbtxt里面的数据,做到搜索定位呢?... 比如有100mb大小的txt,用assigninput去读,会很久而且很麻烦。。变量占用内存也大。。
如何用delphi快速调用100mb txt里面的数据,做到搜索定位呢?
或者告诉我相关知识点也好。。谢谢!
展开
 我来答
sirouszlh
推荐于2016-06-26 · TA获得超过1651个赞
知道小有建树答主
回答量:1038
采纳率:100%
帮助的人:642万
展开全部
这个是两难问题
要加载100M文件 自然要读取较慢
如果还要搜索定位 那去检索文件的话 自然慢
要搜索快,自然最好是文件在内存里,那样检索就快多了,但占用内存自然就大了。

如果非要一个折中办法 那就用数据库
字段 为 ID contextstr FilePos
ID为自增量 contextstr为string 记录一行的数据 filePos记录该一行在文件中的位置
那你可以一开始读取文件
AssignFile
readln
FilePos //这个属性是文件的当前位置
每读取一行 就记录在数据库里
检索文件的话 可以通过 sql语句的 like 要查找
就可以知道搜索结果所在FilePos
用 Seek移动指定位置
然后 显示 该ID边上几个ID的字段内容

缺点就是只显示搜索结果附近的内容,

要显示所有内容并定位也可以,不过需要数据都加载显示,不方便。
另外记录 FilePos改为记录行数
搜索到结果以后,指定显示指定行数据就好
不过一下子显示所有100M数据并定位,本来就不太现实。至少要占很多内存
小川JSwm1
2014-09-09 · 超过62用户采纳过TA的回答
知道答主
回答量:102
采纳率:0%
帮助的人:114万
展开全部
可用TADOQuery控件,把它和数据库建立连接,当然还要一个TDataSource指向那个TADOQueryDelphi中的SQL语句类似:adoquery1.sql.clear;之后可在ADOQuery1中加代码实现更新。adoquery1.sql.add("Update yourtable set 姓名="+quotedstr(edit1.text));adoquery1.close;adoquery1.sql.add("where 年纪="+quotedstr(edit2.text));adoquery1.execsql;这算是一个小实例
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式