为何sql7的数据库导入到sql2000以后,我的查询语句无效了?(30分)

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

xyt3dnow

Unregistered / Unconfirmed
GUEST, unregistred user!
为何sql7的数据库导入到sql2000以后,我的查询语句无效了?
在sql7中能查出数据,而在sql2000中就查不出来?
我将以下语句放在sql2000的查询分析器中却也可以运行啊(把num参数换为一个具体数字),
求各位大侠指点。
var a:string;
begin
a:='%'+edit1.text+'%';
mydata.kkndquery.close;
mydata.kkndquery.SQL.Clear;
mydata.kkndquery.sql.add('SELECT *');
mydata.kkndquery.sql.add('FROM kknd');
mydata.kkndQuery.sql.add('where kknd.fwsyzh like :num');
mydata.kkndquery.parameters.parambyname('num').value:=a;
mydata.kkndquery.sql.add('order by kknd.id');
mydata.kkndquery.Prepared;
try
mydata.kkndquery.Open;
except
end;
end;
 
如果说查询管理器可以应该就没有问题,还有:
mydata.kkndquery.Prepared;//应该是mydata.kkndquery.Prepare;
 
那为什么会出现只有在sql7才能进行查询的现象呢?如果是在sql2000中建的库
导入到sql7中会不会出现相同的问题呢?
 
怀疑是你的字段被设成nchar 255
会看不到数据的。
 
没有啊,我的字段都是nvchar 10-50 ,导入2000后也没变化啊
 
mydata.kkndQuery.sql.add('where kknd.fwsyzh like :num');
mydata.kkndquery.parameters.parambyname('num').value:=a;

你變量我的形式,在SQL中的語法like後台的變量應該是 '....'形式

mydata.kkndQuery.sql.add('where kknd.fwsyzh like '+''''+a+'''');
 
我也遇到过类似情况, like 的变量,两边要加上单引号,就行
 
like 的变量,两边要加上单引号,就行?能说的具体点吗?
 
mydata.kkndQuery.sql.add('where kknd.fwsyzh like '+''''+a+'''');

或者:
mydata.kkndQuery.sql.add('where kknd.fwsyzh like :num');
mydata.kkndquery.parameters.parambyname('num').value:=a;
改寫成:
mydata.kkndQuery.sql.add('where kknd.fwsyzh like :num');
mydata.kkndquery.parameters.parambyname('num').AsString:=''''+a+'''';


 
bes96261大侠,将程序改成以下时,连在mssql7都查不出数据了
mydata.kkndQuery.sql.add('where kknd.fwsyzh like :num');
mydata.kkndquery.parameters.parambyname('num').AsString:=''''+a+'''';
 
我是我用的測試代碼,環境Delphi 5 + Server SQL 2000。執行結果正確
字段CardName定義為 Varchar(50)
procedure TForm1.Button1Click(Sender: TObject);
var a:string;
begin
a:='%'+Edit1.Text+'%';
with Query1 do
begin
Close;
SQL.Clear;
SQL.Add(' select * from Client where CardName like :CardName');
Params[0].AsString:=a;
Open;
end;
end;
 
我忘了说是用adoquery的了。
 
我忘了说是用adoquery的了。
 
http://www.delphibbs.com/delphibbs/dispq.asp?lid=799025
 
多人接受答案了。
 
后退
顶部