delphi中的adoquery动态连接adoConnection出错

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了delphi中的adoquery动态连接adoConnection出错相关的知识,希望对你有一定的参考价值。

function Tdm.UsersAdd(Sender: TDBGridEh;UserName, Pwd: string): boolean;
var
Adoexec:TAdoquery;
begin
Adoexec.Active:=false;
Adoexec.Connection:=dm.adoConnection1; //设置断点发现到这步就错,我的adoConnection1连接数据库没有问题
Adoexec.SQL.text:='insert into Users(用户名,密码) values ('''+UserName+''','''+Pwd+''')';
try
adoexec.ExecSQL;
result:=true;
except
result:=false
end;
end;

参考技术A 给你一个思路:
设置一个ComboBox1,用来显示你所有的数据库.一个ComboBox2用来显示连接的数据库中的所有表.

(使用ADOConnection控件实现.ComboBox1中的数据库名要带有完整的路径)

//动态配置数据源
ConnStr := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source= ' + Trim(ComboBox1.Text) + ';Persist Security Info=False';

ADOConnection1.Connected := false;
ADOConnection1.ConnectionString :=ConnStr;
ADOConnection1.Connected := true;

//利用ADOConnection控件自带的GetTableNames属性得到连接的数据库中的所有表名
ADOConnection1.GetTableNames(ComboBox2.Items,False);
ComboBox2.ItemIndex := 0;

得到表名后,让用户自己选择表并进行查询操作就可以了.

比如查询一个表(将ADOQuery连接到ADOConnection中即可.):
procedure TForm1.Button2Click(Sender: TObject);
var
SQLStr : string;
begin
SQLStr := 'select * from ' + trim(ComboBox2.Text);
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add(SQLStr);
ADOQuery1.Open;
end;
参考技术B 你的dm.adoConnection1有没打开阿,你要使它的CONNECTED:=TRUE;在这句Adoexec.Active:=false; 的后边加上dm.adoConnection1.connected:=true;试下。 参考技术C function Tdm.UsersAdd(Sender: TDBGridEh; UserName, Pwd: string): Boolean;
var
Adoexec: TAdoquery;
begin
Result := False;
Adoexec := TAdoquery.Create(nil); //必须要创建类的实例
Adoexec.Connection := dm.adoConnection1;
Adoexec.SQL.text := 'insert into Users(用户名,密码) values ('''+UserName+''','''+Pwd+''')';
try
Result := Adoexec.ExecSQL > 0;
finally
Adoexec.Connection := nil
Adoexec.Free;
end;
end;本回答被提问者采纳

以上是关于delphi中的adoquery动态连接adoConnection出错的主要内容,如果未能解决你的问题,请参考以下文章

delphi如何将明细表中的数据保存到数据库中

Delphi ADOQuery连接数据库的查询插入删除修改

Delphi ADOQuery

delphi数据库的增加,保存,删除

delphi中adoquery的使用(delphi高手详细说一下)

“delphi”怎样判断“adoquery”查询后的结果是不是为空?