Q
qun
Unregistered / Unconfirmed
GUEST, unregistred user!
procedure TForm3.ComboBox3Change(Sender: TObject);
begin
if combobox3.ItemIndex=0 then
//选择数据表为student
begin
combobox1.Items.Clear;
combobox1.Items.Add('学号');
combobox1.Items.Add('姓名');
combobox1.Items.Add('年龄');
combobox1.Items.Add('性别');
combobox1.Items.Add('班级');
combobox1.Items.Add('系别');
combobox1.Items.Add('电话号码');
combobox1.Items.Add('借阅许可');
end;
if combobox3.ItemIndex=1 then
//选择数据表为book
begin
combobox1.Items.Clear;
combobox1.Items.Add('书号');
combobox1.Items.Add('书名');
combobox1.Items.Add('作者');
combobox1.Items.Add('出版社');
combobox1.Items.Add('购买时间');
combobox1.Items.Add('是否允许借阅');
combobox1.Items.Add('是否允许预约');
end;
if combobox3.ItemIndex=2 then
//选择数据表为record
begin
combobox1.Items.Clear;
combobox1.Items.Add('记录号');
combobox1.Items.Add('学号');
combobox1.Items.Add('书号');
combobox1.Items.Add('借阅时间');
combobox1.Items.Add('归还时间');
combobox1.Items.Add('是否过期');
combobox1.Items.Add('是否预约');
end;
if combobox3.ItemIndex=3 then
//选择数据表为user
begin
combobox1.Items.Clear;
combobox1.Items.Add('用户名');
combobox1.Items.Add('密码');
combobox1.Items.Add('权限');
end;
end;
procedure TForm3.BitBtn1Click(Sender: TObject);//重置
begin
combobox3.Text:='';
combobox1.Text:='';
combobox2.Text:='';
edit1.Text:='';
end;
procedure TForm3.BitBtn2Click(Sender: TObject);
//查询
begin
with query1do
begin
close;
sql.Clear;
sql.Add('select * from student where '+combobox1.text+''+combobox2.text+''+quotedstr(edit1.text));
open;
end;
end;
end.
这是我使用的综合查询模块
combobox2.text中是连接条件
我用这个语句
“sql.Add('select * from student where '+combobox1.text+''+combobox2.text+''+quotedstr(edit1.text));”
只能查到表student中数据类型为文本的字段,查其它字段时则显示信息”标准表达式中数据类型不匹配“
如果我把这个语句改为”“sql.Add('select * from student where '+combobox1.text+''+combobox2.text+''+edit1.text);"则只能查询数据类型为数字的字段,查询其它字段时,显示错误信息“参数‘(edit1.text)中输入的内容‘没有默认值“
我用的后台数据库为Access
这是怎么回事?怎么样才能所有的字段都可以查询得到
begin
if combobox3.ItemIndex=0 then
//选择数据表为student
begin
combobox1.Items.Clear;
combobox1.Items.Add('学号');
combobox1.Items.Add('姓名');
combobox1.Items.Add('年龄');
combobox1.Items.Add('性别');
combobox1.Items.Add('班级');
combobox1.Items.Add('系别');
combobox1.Items.Add('电话号码');
combobox1.Items.Add('借阅许可');
end;
if combobox3.ItemIndex=1 then
//选择数据表为book
begin
combobox1.Items.Clear;
combobox1.Items.Add('书号');
combobox1.Items.Add('书名');
combobox1.Items.Add('作者');
combobox1.Items.Add('出版社');
combobox1.Items.Add('购买时间');
combobox1.Items.Add('是否允许借阅');
combobox1.Items.Add('是否允许预约');
end;
if combobox3.ItemIndex=2 then
//选择数据表为record
begin
combobox1.Items.Clear;
combobox1.Items.Add('记录号');
combobox1.Items.Add('学号');
combobox1.Items.Add('书号');
combobox1.Items.Add('借阅时间');
combobox1.Items.Add('归还时间');
combobox1.Items.Add('是否过期');
combobox1.Items.Add('是否预约');
end;
if combobox3.ItemIndex=3 then
//选择数据表为user
begin
combobox1.Items.Clear;
combobox1.Items.Add('用户名');
combobox1.Items.Add('密码');
combobox1.Items.Add('权限');
end;
end;
procedure TForm3.BitBtn1Click(Sender: TObject);//重置
begin
combobox3.Text:='';
combobox1.Text:='';
combobox2.Text:='';
edit1.Text:='';
end;
procedure TForm3.BitBtn2Click(Sender: TObject);
//查询
begin
with query1do
begin
close;
sql.Clear;
sql.Add('select * from student where '+combobox1.text+''+combobox2.text+''+quotedstr(edit1.text));
open;
end;
end;
end.
这是我使用的综合查询模块
combobox2.text中是连接条件
我用这个语句
“sql.Add('select * from student where '+combobox1.text+''+combobox2.text+''+quotedstr(edit1.text));”
只能查到表student中数据类型为文本的字段,查其它字段时则显示信息”标准表达式中数据类型不匹配“
如果我把这个语句改为”“sql.Add('select * from student where '+combobox1.text+''+combobox2.text+''+edit1.text);"则只能查询数据类型为数字的字段,查询其它字段时,显示错误信息“参数‘(edit1.text)中输入的内容‘没有默认值“
我用的后台数据库为Access
这是怎么回事?怎么样才能所有的字段都可以查询得到