delphi 如何调用数据库?
比如有100mb大小的txt,用assigninput去读,会很久而且很麻烦。。变量占用内存也大。。如何用delphi快速调用100mbtxt里面的数据,做到搜索定位呢?...
比如有100mb大小的txt,用assigninput去读,会很久而且很麻烦。。变量占用内存也大。。
如何用delphi快速调用100mb txt里面的数据,做到搜索定位呢?
或者告诉我相关知识点也好。。谢谢! 展开
如何用delphi快速调用100mb txt里面的数据,做到搜索定位呢?
或者告诉我相关知识点也好。。谢谢! 展开
2个回答
展开全部
这个是两难问题
要加载100M文件 自然要读取较慢
如果还要搜索定位 那去检索文件的话 自然慢
要搜索快,自然最好是文件在内存里,那样检索就快多了,但占用内存自然就大了。
如果非要一个折中办法 那就用数据库
字段 为 ID contextstr FilePos
ID为自增量 contextstr为string 记录一行的数据 filePos记录该一行在文件中的位置
那你可以一开始读取文件
AssignFile
readln
FilePos //这个属性是文件的当前位置
每读取一行 就记录在数据库里
检索文件的话 可以通过 sql语句的 like 要查找
就可以知道搜索结果所在FilePos
用 Seek移动指定位置
然后 显示 该ID边上几个ID的字段内容
缺点就是只显示搜索结果附近的内容,
要显示所有内容并定位也可以,不过需要数据都加载显示,不方便。
另外记录 FilePos改为记录行数
搜索到结果以后,指定显示指定行数据就好
不过一下子显示所有100M数据并定位,本来就不太现实。至少要占很多内存
要加载100M文件 自然要读取较慢
如果还要搜索定位 那去检索文件的话 自然慢
要搜索快,自然最好是文件在内存里,那样检索就快多了,但占用内存自然就大了。
如果非要一个折中办法 那就用数据库
字段 为 ID contextstr FilePos
ID为自增量 contextstr为string 记录一行的数据 filePos记录该一行在文件中的位置
那你可以一开始读取文件
AssignFile
readln
FilePos //这个属性是文件的当前位置
每读取一行 就记录在数据库里
检索文件的话 可以通过 sql语句的 like 要查找
就可以知道搜索结果所在FilePos
用 Seek移动指定位置
然后 显示 该ID边上几个ID的字段内容
缺点就是只显示搜索结果附近的内容,
要显示所有内容并定位也可以,不过需要数据都加载显示,不方便。
另外记录 FilePos改为记录行数
搜索到结果以后,指定显示指定行数据就好
不过一下子显示所有100M数据并定位,本来就不太现实。至少要占很多内存
展开全部
可用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;这算是一个小实例
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询