什么问题,进来侃侃!Access数据库(90分)

  • 主题发起人 主题发起人 清风徐来
  • 开始时间 开始时间

清风徐来

Unregistered / Unconfirmed
GUEST, unregistred user!
我在进行数据库查询时,
procedure Tcx.Button1Click(Sender: TObject);
begin
if edit1.Visible=true then
begin
with cx do
ADOQuery1.Close;
DBGrid1.Visible:=true;
ADOQuery1.SQL.Add('select * from lb where 工号=:gh');
ADOQuery1.Parameters.ParamByName('gh').Value:=edit1.text;
ADOQuery1.Prepared;
ADOQuery1.Open;
end
else
begin
with cx do
ADOQuery1.Close;
DBGrid1.Visible:=true;
ADOQuery1.SQL.Add('select * from lb where 姓名=:xm');
ADOQuery1.Parameters.ParamByName('xm').Value:=edit2.text;
ADOQuery1.Prepared;
ADOQuery1.Open;
end;

end;

为什么工号能查询成功,而姓名不能,在运行程序的时候,出现数据库连接错误!(我的工号和姓名在数据库Access
中都是文本型的)
 
procedure Tcx.Button1Click(Sender: TObject);
begin
if edit1.Visible=true then
begin
with cx do
ADOQuery1.Close;
ADOQuery1.Sql.clear;
DBGrid1.Visible:=true;
ADOQuery1.SQL.Add('select * from lb where 工号=:gh');
ADOQuery1.Parameters.ParamByName('gh').asstring:=QuotedStr(edit1.text);
ADOQuery1.Prepared;
ADOQuery1.Open;
end
else
begin
with cx do
ADOQuery1.Close;
ADOQuery1.Sql.clear;
DBGrid1.Visible:=true;
ADOQuery1.SQL.Add('select * from lb where 姓名=:xm');
ADOQuery1.Parameters.ParamByName('xm').asstring:=QuotedStr(edit2.text);
ADOQuery1.Prepared;
ADOQuery1.Open;
end;

end;
 
用wzp31的方法试一下,不对的话再来说
 
出现错误提示:undeclared identifier 'Asstring'怎么解决
 
ADOQuery1.Parameters.ParamByName('xm').Value:=edit2.text;
你还是用原来的value方式赋值,原来出错是因为少了
ADOQuery1.Sql.clear;
造成原来的SQL语句未清除又累加进新的SQL语句。
 
>>出现错误提示:undeclared identifier 'Asstring'怎么解决
这个错误是出在这里:ADOQuery1.Parameters.ParamByName('xm').asstring
因为没有asString这个属性。
你原来代码的错误原因正如QuickSilver所说。
 
怎么解决undeclared identifier 'Asstring'
 
同意楼上
 
难道没有人能解决这个简单的问题吗
 
tO 清风徐来,

看看ADOQuery1.Prepared的返回值试真是假
 
还有一个问题,aceess 数据库中的文本类型如果指定其长度超过了我们查询时输入的
文本的长度,以后在访问数据库时怎么办!
 
多人接受答案了。
 
后退
顶部