delphi中的adoquery动态连接adoConnection出错
functionTdm.UsersAdd(Sender:TDBGridEh;UserName,Pwd:string):boolean;varAdoexec:TAdoque...
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; 展开
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; 展开
展开全部
给你一个思路:
设置一个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;
设置一个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;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
大雅新科技有限公司
2024-11-19 广告
2024-11-19 广告
这方面更多更全面的信息其实可以找下大雅新。深圳市大雅新科技有限公司从事KVM延长器,DVI延长器,USB延长器,键盘鼠标延长器,双绞线视频传输器,VGA视频双绞线传输器,VGA延长器,VGA视频延长器,DVI KVM 切换器等,优质供应商,...
点击进入详情页
本回答由大雅新科技有限公司提供
展开全部
你的dm.adoConnection1有没打开阿,你要使它的CONNECTED:=TRUE;在这句Adoexec.Active:=false; 的后边加上dm.adoConnection1.connected:=true;试下。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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;
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;
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询