总是提示select字句中包含一个保留字、拼写错误或丢失的参数,或标点符号不正确。(50分)

  • 主题发起人 xinphoebe
  • 开始时间
X

xinphoebe

Unregistered / Unconfirmed
GUEST, unregistred user!
下面的程序那里不正确呢?
procedure TForm1.Button1Click(Sender: TObject);
var
sqlstring:string;
begin
if edit1.text<>'' then
begin
sqlstring:=' 联系电话='''+edit1.Text+'''';
end;
if edit2.text<>'' then
begin
if sqlstring<>'' then
begin
sqlstring:=sqlstring+' and 商店名称='''+edit2.text+'''';
end
else
begin
sqlstring:=' 商店名称='''+edit2.text+'''';
end;
end;
if edit3.text<>'' then
begin
if sqlstring<>'' then
begin
sqlstring:=sqlstring+' and 店主姓名='''+edit3.text+'''';
end
else
begin
sqlstring:=' 店主姓名='''+edit3.text+'''';
end;
end;
if form1.ComboBox1.ItemIndex=0 then
begin
sqlstring:='select all from 零售户销量表 where'+sqlstring;
query1.SQL.Add(sqlstring);
query1.open;
end;
if form1.ComboBox1.ItemIndex=1 then
begin
sqlstring:='select all from 政务告示板 where'+sqlstring;
query1.sql.add(sqlstring);
query1.open;
end;
if form1.ComboBox1.ItemIndex=2 then
begin
sqlstring:='select all from 专卖业户管理档案表 where'+sqlstring;
query1.sql.add(sqlstring);
query1.open;
end;
end;
 
select all from ....
改成
select all * from....或 select * from ...
 
无论用你说的哪一个,这次提示:参数不足,期待是一
怎么办?哪里有问题呢?
 
你在写else语句中没有写and
 
在执行Query1.Open之前加入
ShowMessage(Query1.Sql.text);
看一下最终执行的SQL,应该看得出是什么问题。
 
1、楼上的说法很好!你可以通过此方法取得SQL,然后到数据库的SQL执行工具里直接执行,看看错误提示。
2、另外,我不知道你用的什么数据库,反正“select all from ”这样的语句我没有见过(当然也许我是菜鸟,世界之大,不奇怪),通常大家用“select * from ”
 
按楼上说的自已调试一下,也可以在Query1.Open前加入断点,程序运行到断点处时,将
Query1.Sql.text里的内容拷到记事本中,很容易看清楚是什么问题。
 
真的,谢谢大家,我也学到了东西。只不过,很可惜,哈哈,我好丢人,我把字段名写错了。
对不起大家。我感到50分不够分。。。。谢谢大家!
 
多人接受答案了。
 
顶部