adoquery查询问题(50分)

  • 主题发起人 主题发起人 hkunfcn
  • 开始时间 开始时间
H

hkunfcn

Unregistered / Unconfirmed
GUEST, unregistred user!
源代码:
begin

s:='select * from jklbl where 姓名=:="'+edname.text+'"' ;
with adoquery1do
begin
close;
sql.Clear ;
sql.Add(s);
open;
end;
错误提示如下:
---------------------------
Debugger Exception Notification
---------------------------
Project jkly.exe raised exception class EDatabaseError with message 'Missing Connection or ConnectionString'. Process stopped. Use Step or Run to continue.
---------------------------
OK Help
---------------------------
 
你需要给adoquery1指定连接啊
 
必须建立连接吗?TQUERY不建立连接也可以使用,它们在这方面有区别吗?
 
不建立连接,那怎么知道操作的是什么数据库呢?
你可以把adoquery1的Connection 属性指定为一个Tadoconnection控件
或则直接指定它的connectionString属性
 
建立连接后,Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:/jkl/data/jklbl.mdb;Persist Security Info=False(connectionString属性)
又提示出现如下错误
---------------------------
Debugger Exception Notification
---------------------------
Project jkly.exe raised exception class EOleException with message 'Parameter object is improperly defined. Inconsistent or incomplete information was provided'. Process stopped. Use Step or Run to continue.
---------------------------
OK Help
---------------------------
 
s:='select * from jklbl where 姓名=:="'+edname.text+'"' ;//改成
s:='select * from jklbl where 姓名="'+edname.text+'"' ;
 
s:='select * from jklbl where 姓名=:="'+edname.text+'"' ;//改成
s:='select * from jklbl where 姓名="'+edname.text+'";' ;
要有分号,呵呵
 
改成
s:='select * from jklbl where 姓名="'+edname.text+'"' ;

出现如下错误提示:(我的数据库在d:/jkl/data/下)

---------------------------
Debugger Exception Notification
---------------------------
Project jkly.exe raised exception class EOleException with message 'Microsoft Jet 数据库引擎找不到输入表或查询 'jklbl'。 确定它是否存在,以及它的名称的拼写是否正确。'. Process stopped. Use Step or Run to continue.
---------------------------
OK Help
---------------------------
 
AQOQuery建立的连接是静态的吧,最好在create 事件里重新复制connectted string属性。
或者使用个DM,在 DM 的create 时间里面写。form单元uses 那个DM
 
在窗体的create中重新复制后,仍提示找不到数据库
procedure Tfrm_bshchx.FormCreate(Sender: TObject);
begin
adoquery1.connectionstring:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:/jkl/data/jklbl.mdb;Persist Security Info=False ';
end;
 
多人接受答案了。
 
后退
顶部