DbGrid中显示sqlite3数据库的问题,请帮我看看
delphi吧
全部回复
仅看楼主
level 4
qq511542629 楼主
想在DBgrid中显示sqlite3数据库,用的AdoConnection和AdoQuery组件,总是不对,代码如下
procedure TForm1.Button1Click(Sender: TObject);
begin
AdoConnection1.Close ;
AdoConnection1.ConnectionString :='Provider=MSDASQL.1;Persist Security Info=False;Extended Properties="DSN=SQLite3 Datasource;Database=D:\1.db;StepAPI=0;Timeout=1000"';
AdoConnection1.LoginPrompt :=False;
AdoConnection1.Open;
if AdoConnection1.Connected=True then
begin
showmessage('连接成功'); //已经显示连接成功了!!!
AdoQuery1.Connection :=AdoConnection1;
Dbgrid1.DataSource :=AdoQuery1.DataSource;
AdoQuery1.Close;
AdoQuery1.SQL.Clear ;
AdoQuery1.SQL.Add('select * from table1');
AdoQuery1.Open; //好像运行到这句就会出错!!!!!!!!!
end;
2016年10月21日 01点10分 1
level 1
单步调试很有帮助,按F8就可以。数据库查询操作是这样传递数据的:数据感知组件(显示表格)<-数据源组件<-数据集组件<-数据连接,前面依次从后面获取数据,查询时赋值各组件属性,把它们串联起来就可以查询了。上面代码少了一行(假设数据源为DataSource1):DataSource1.DataSet:=ADOQuery1;同时Dbgrid1.DataSource :=AdoQuery1.DataSource;改为:Dbgrid1.DataSource :=DataSource1;
2016年10月21日 03点10分 2
level 4
qq511542629 楼主
@三条大汉
改成这样还是出错,到AdoQuery1.open;就出错。
2016年10月21日 05点10分 3
level 1
你用的Delphi是什么版本?如果是7,它的ADO组件本身不支持SQLite数据库,需要安装ODBC驱动,所以先确认你安装了SQLite3的ODBC驱动,官网里找SqliteOdbc下载安装。同时把连接字符串中的DSN=SQLite3 Datasource;改成Driver={SQLite3 ODBC Driver};其他不变。小型数据库也可选用Access,微软Office自带,ADO直接支持,这个是商业的。
2016年10月21日 09点10分 4
是delphi7,驱动也安装过了,按照你说的改了,但还是不行。计划写期货和股票分析,所以数据库会比较大,期货一个交易日就会产生10多万条记录,要分配进400多个数据库中。后期再加股票的数据就更多了
2016年10月22日 07点10分
我想写的东西也就是自己用的,需要实现数据库存储和数据分析,然后画K线画曲线。搞开发的应该觉得很简单,我没基础,自学很吃力,请给点建议
2016年10月22日 07点10分
@qq511542629 报什么错,在哪一步报错?你的数据库创建好表了吗?如果错误不明显,就用排除法缩小范围。找个第三方的管理工具(比如SQLite Expert或SQLiteStudio)连接你的数据库,没有问题的话说明不是数据库本身的错。
2016年10月22日 08点10分
@三条大汉 数据库已经创建好了,表名也确定没错。另外请问delphi xe7有没有现成的控件操作sqlite。我做期货股票数据的分析,用sqlite是否合适,需创建3000个左右数据库,就只是自己用,
2016年10月22日 11点10分
level 1
新版我没用过。FireDAC支持SQLite,这是推荐的,dbExpress也支持后来去掉了(支持就是集成了驱动,小数据库区别不大)。SQLite的限制理论上主要是硬件和文件系统的限制。实际效果可以自己测试,一个循环建10万条数据很快(打开事务)。很多因素影响效率,比如计算复杂度,具体问题具体分析。这是这个数据库的限制,官文的翻译文章: http://www.oschina.net/translate/limits-in-sqlite-new
2016年10月23日 02点10分 5
level 1
解决了吗
2017年09月23日 03点09分 6
level 8
用新版本,自带fireDAC.
2017年09月27日 18点09分 7
1