有两个问题,一个是degrid里除了数字显示的都是乱码,还有就是查询不出来,出错提示为:gerenal sql error!请大家帮忙看看,谢谢了~
procedure TForm11.BitBtn3Click(Sender: TObject);
var
sqlstr,strval,comstr:string;
flag:integer;
begin
memo1.clear;
memo1.Lines.Add(' 商品名称, 数量 ');
memo1.Lines.Add('----------------------------------------------------------------------------------') ;
flag:=0;
strval:=trim(edit1.Text);
if strval<>''then
begin
sqlstr:='select*from rkguanli where(mingcheng='+'"+strval+")';
flag:=1;
end;
strval:=trim(edit2.Text);
if strval <>''then
begin
sqlstr:='select *from rkguanli where(caigouren='+'"+strval+")';
flag:=1;
end
else
begin
sqlstr:=sqlstr +'and(name='+'"+strval+")';
end;
strval:=trim(edit3.Text);
if strval <>''then
begin
sqlstr:='select *from rkguanli where(zongjia=edit3.Text)';
flag:=1;
end
else
begin
sqlstr:=sqlstr +'and(zongjia='+'"+strval+")';
end; strval:=trim(edit4.Text);
if strval <>''then
begin
sqlstr:='select *from rkguanli where(rukuriqi='+'"+strval+")';
flag:=1;
end
else
begin
sqlstr:=sqlstr +'and(rukuriqi='+'"+strval+")';
end;
if flag=0 then
begin
showmessage ('请正确输入查询条件');
end;
query1.Close;
query1.sql.text:=sqlstr;
query1.Open;
flag:=0;
while not query1.Eof do
begin
sqlstr:=query1.fieldbyname('mingcheng').AsString ;
sqlstr:=sqlstr+','+query1.fieldbyname('shuliang').asstring;
memo1.Lines.add(sqlstr);
query1.Next;
flag:=flag+1;
end;
memo1.Lines.Add('---------------------------------------------') ;
memo1.Lines.add('一共有'+inttostr(flag)+'项符合查询条件');
end;
end.
procedure TForm11.BitBtn3Click(Sender: TObject);
var
sqlstr,strval,comstr:string;
flag:integer;
begin
memo1.clear;
memo1.Lines.Add(' 商品名称, 数量 ');
memo1.Lines.Add('----------------------------------------------------------------------------------') ;
flag:=0;
strval:=trim(edit1.Text);
if strval<>''then
begin
sqlstr:='select*from rkguanli where(mingcheng='+'"+strval+")';
flag:=1;
end;
strval:=trim(edit2.Text);
if strval <>''then
begin
sqlstr:='select *from rkguanli where(caigouren='+'"+strval+")';
flag:=1;
end
else
begin
sqlstr:=sqlstr +'and(name='+'"+strval+")';
end;
strval:=trim(edit3.Text);
if strval <>''then
begin
sqlstr:='select *from rkguanli where(zongjia=edit3.Text)';
flag:=1;
end
else
begin
sqlstr:=sqlstr +'and(zongjia='+'"+strval+")';
end; strval:=trim(edit4.Text);
if strval <>''then
begin
sqlstr:='select *from rkguanli where(rukuriqi='+'"+strval+")';
flag:=1;
end
else
begin
sqlstr:=sqlstr +'and(rukuriqi='+'"+strval+")';
end;
if flag=0 then
begin
showmessage ('请正确输入查询条件');
end;
query1.Close;
query1.sql.text:=sqlstr;
query1.Open;
flag:=0;
while not query1.Eof do
begin
sqlstr:=query1.fieldbyname('mingcheng').AsString ;
sqlstr:=sqlstr+','+query1.fieldbyname('shuliang').asstring;
memo1.Lines.add(sqlstr);
query1.Next;
flag:=flag+1;
end;
memo1.Lines.Add('---------------------------------------------') ;
memo1.Lines.add('一共有'+inttostr(flag)+'项符合查询条件');
end;
end.
注意空格
记得delphi里面没有啊
奇怪
应该是:
sqlstr:= "select * from rkguanli where (caigouren= " +strval+ ")";
SQL语句你可以一个个调试出来在企业管理器或SQL查询分析器里执行一下,语法没错了就OK.