s2:= '%'+edit1.Text+'%';
s1:='select * from j1 where 假名 like '''+s2+''' or 汉字 like '''+s2+''' or 词义 like '''+s2+'''';代码如上,运行时提示内存溢出错误,这是为什么?
s1:='select * from j1 where 假名 like '''+s2+''' or 汉字 like '''+s2+''' or 词义 like '''+s2+'''';代码如上,运行时提示内存溢出错误,这是为什么?
s1 := ' select * from j1 '
+' where 假名 like '+s+' or 汉字 like '+s+' or 词义 like '+s+' ';
这样试试呢
建议使用quotedstr函数来替换看看。
s1:='select * from j1 where 假名 = ''aaa''';
是SQL Server吗?
先用查询分析器代入执行一下看有总有问题,首先排队SQL语句问题,再查看Delphi的问题
s1:='select * from j1 where 假名 like '''+s2+
''' union all (select * from j1 where 汉字 like '''+s2+''') '+
' union all (select * from j1 where 词义 like '''+s2+''')';
如果有重复记录的话把所有列group by下
with ADOQuery1 do
begin
Close;
SQL.Clear;
SQL.Add(' select * from j1 where 假名 like :a or 汉字 like :a or 词义 like :a ');
parameters.ParamByName('a').Value:='%'+Trim(edit1.Text)+'%';
Open;
end;
begin
Close;
SQL.Clear;
SQL.Add(' select * from j1 where 假名 like :a or 汉字 like :b or 词义 like :c');
parameters.ParamByName('a').Value:='%'+Trim(edit1.Text)+'%';
parameters.ParamByName('b').Value:='%'+Trim(edit1.Text)+'%';
parameters.ParamByName('c').Value:='%'+Trim(edit1.Text)+'%';
Open;
end;
忽然发现楼主是一个输入值查询数据库的好几个字段,怎么会有这种情况?数据库里哪个字段存什么东西应该固定吧.要查哪个就是查哪个啊.
我也不知道这段代码能否通过,现在机器上没有环境.自己试吧.
是access的Bug吧?