我现在做了一个数据库应用程序,以前我做的都是基于FORM的数据库程序,直接在窗体中拖入ADO控件就行了。可是现在在做一个不是基于的FORM的程序,我要动态创建ADO,可是我不知道该怎么做。我已经写了下列代码:
AdoConn := TAdoConnection.Create(self);
AdoConnectionstr := 'Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;'+ 'Data Source='+GetCurrentDir+'\DBPhone.mdb;Mode=Share Deny None;Extended Properties="";Jet OLEDB:System database="";Jet OLEDB:Registry Path="";Jet OLEDB:Database Password="";'+'Jet OLEDB:Engine Type=5;Jet OLEDB:Database Locking Mode=0;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;'+'Jet OLEDB:New Database Password="";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don''t Copy Locale on Compact=False;'+'Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False';
AdoConn.ConnectionString := AdoConnectionStr;
adoconn.Close;
adoconn.LoginPrompt := False;
AdoConn.Open; AdoQuery := TadoQuery.Create(self);
AdoQuery.Connection := Adoconn; AdoQuery.SQL.Add('select *from Totaluser') ;
AdoQuery.Open;
//showmessage(AdoQuery.Fields.Fields[0]);
AdodataSource := TDataSource.Create(self);
AdoDataSource.DataSet := AdoQuery;
//DbGrid1.Fields[0].FieldName := AdoQuery.FieldDefList.FieldDefs[0].Name; DbGrid1.DataSource := AdoDataSource;我想把totalcall中的数据取得,然后在dbgrid1中显示了来,请问我该怎么做呀?要不要动态初建Fields呀,哪位高手能给我写一段代码参考一下,非常感谢!
AdoConn := TAdoConnection.Create(self);
AdoConnectionstr := 'Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;'+ 'Data Source='+GetCurrentDir+'\DBPhone.mdb;Mode=Share Deny None;Extended Properties="";Jet OLEDB:System database="";Jet OLEDB:Registry Path="";Jet OLEDB:Database Password="";'+'Jet OLEDB:Engine Type=5;Jet OLEDB:Database Locking Mode=0;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;'+'Jet OLEDB:New Database Password="";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don''t Copy Locale on Compact=False;'+'Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False';
AdoConn.ConnectionString := AdoConnectionStr;
adoconn.Close;
adoconn.LoginPrompt := False;
AdoConn.Open; AdoQuery := TadoQuery.Create(self);
AdoQuery.Connection := Adoconn; AdoQuery.SQL.Add('select *from Totaluser') ;
AdoQuery.Open;
//showmessage(AdoQuery.Fields.Fields[0]);
AdodataSource := TDataSource.Create(self);
AdoDataSource.DataSet := AdoQuery;
//DbGrid1.Fields[0].FieldName := AdoQuery.FieldDefList.FieldDefs[0].Name; DbGrid1.DataSource := AdoDataSource;我想把totalcall中的数据取得,然后在dbgrid1中显示了来,请问我该怎么做呀?要不要动态初建Fields呀,哪位高手能给我写一段代码参考一下,非常感谢!
解决方案 »
- 救命啊!!如何做dll窗体和传参数
- rave 报表乱码的问题
- 使用CommandText应该注意些什么?
- 求一个dbgrid的赋值问题!谢谢
- dbexpress連接mssql:SQL Error: Error mapping failed.
- 一个可能很简单的问题(让高手笑话了)
- 一个小时内提的第三个问题,前两个已结,这一个看到答案马上结。见者有份!
- 十万火急!!!!
- 您做过高速公路监控软件系统吗?
- RichEdit 的字体怎么改?
- 如何启用对象池?在我的组件管理中,启用对象池是禁止的(灰)。
- 使用了TADOQuery的ltBatchOptimistic,但没有类似TQuery中的UpdatesPending属性,如何才能知道缓存中有无未决的数据呢?
ADOQuery := TADOConnection;//TADOConnection 你也可以自己生成或直接用控件//do what you want ADOQuery.Close;
ADOQuery.Free;
procedure xxx;
var adoquery:Tadoquery;
begin
ADOQuery := TADOQuery.Create(nil);
ADOQuery := TADOConnection;//TADOConnection 你也可以自己生成或直接用控件//do what you want ADOQuery.Close;
ADOQuery.Free;
end;
还有要记得把ADODB加入到uses中
begin
fieldname:='field1';
title.caption:='titlename';
end;
后面如有需要再继续写上述代码!
THEADOQ.Connection:=THEONE;{THEONE是一个connection}
Close;
SQL.Clear;
SQL.Add('select * from ...');
Open;
前再加上Close;
SQL.Clear;
还有释放
不然占内存
还有你的adoquery.close;
adoquery.sql.clear;