Y
yanghaijun
Unregistered / Unconfirmed
GUEST, unregistred user!
...
var
p:TParam;
begin
ClientDataSet2.Close;
ClientDataSet2.CommandText:='select A.部门,A.用户姓名 责任监督员,B.监督登记号
,B.工程名称 from 用户控制信息表 A,工程总信息表 B where
A.用户编号=B.责任监督员 and A.部门 LIKE :bm';
ClientDataSet2.Params.Clear;
p:=TParam.Create(nil);
P.Name:='bm';
p.DataType:=ftString;
P.Value:='四室';
ClientDataSet2.Params.AddParam(p);
ClientDataSet2.Open;
end;
我用的是SQL Server,建立一个三层数据库程序,应用程序服务器用的是ADO,本段代码
目的是想检索所有'四室'这个部门的工程信息,结果,什么都没检索到,用SQL Server
Profiler查看,有如下信息,最后为'四?',而原本应为'四室'的,说明未正确传到
SQL Server上:
exec sp_cursoropen @P1 output, N'select A.部门,A.用户姓名 责任监督员,
B.监督登记号,B.工程名称 from 用户控制信息表 A,工程总信息表 B
where A.用户编号=B.责任监督员 and A.部门 LIKE @P1',
@P3 output, @P4 output, @P5 output, N'@P1 varchar(2)', '四?'
^^^^^
而若我直接在CommandText写入'select A.部门,A.用户姓名 责任监督员,B.监督登记号,
B.工程名称 from 用户控制信息表 A,工程总信息表 B where A.用户编号=B.责任监督员
and A.部门 LIKE ''四室'''
则能正确检索到相应的信息。
请问该如何解决此问题。
var
p:TParam;
begin
ClientDataSet2.Close;
ClientDataSet2.CommandText:='select A.部门,A.用户姓名 责任监督员,B.监督登记号
,B.工程名称 from 用户控制信息表 A,工程总信息表 B where
A.用户编号=B.责任监督员 and A.部门 LIKE :bm';
ClientDataSet2.Params.Clear;
p:=TParam.Create(nil);
P.Name:='bm';
p.DataType:=ftString;
P.Value:='四室';
ClientDataSet2.Params.AddParam(p);
ClientDataSet2.Open;
end;
我用的是SQL Server,建立一个三层数据库程序,应用程序服务器用的是ADO,本段代码
目的是想检索所有'四室'这个部门的工程信息,结果,什么都没检索到,用SQL Server
Profiler查看,有如下信息,最后为'四?',而原本应为'四室'的,说明未正确传到
SQL Server上:
exec sp_cursoropen @P1 output, N'select A.部门,A.用户姓名 责任监督员,
B.监督登记号,B.工程名称 from 用户控制信息表 A,工程总信息表 B
where A.用户编号=B.责任监督员 and A.部门 LIKE @P1',
@P3 output, @P4 output, @P5 output, N'@P1 varchar(2)', '四?'
^^^^^
而若我直接在CommandText写入'select A.部门,A.用户姓名 责任监督员,B.监督登记号,
B.工程名称 from 用户控制信息表 A,工程总信息表 B where A.用户编号=B.责任监督员
and A.部门 LIKE ''四室'''
则能正确检索到相应的信息。
请问该如何解决此问题。