try
dbCmd := CoCommand.Create;
dbCmd.CommandTimeout := 30;
dbCmd.CommandType := adCmdText;
dbCmd.Set_ActiveConnection(dbConn);
for ParamsCount := dbCmd.Parameters.Count - 1 downto 0 do
dbCmd.Parameters.Delete(ParamsCount);
CmdString := 'select * from OperatorInfo where operator_name = ?';
Param := dbCmd.CreateParameter('@operator_name', adVarChar, adParamInput, 30, OperatorName); //OperatorName='admin';
dbCmd.Parameters.Append(Param);
dbCmd.CommandText := CmdString;
Rst := dbCmd.Execute(RecordsAffected, dbCmd.Parameters[0], 0);
while not Rst.EOF do
begin
...
Rst.MoveNext;
end;
except
on E: Exception do
...
end;
为什么在跟踪时发现传入值为空呀??
这是跟踪器跟踪出来的信息:exec sp_executesql N'select * from OperatorInfo where operator_name = @P1', N'@P1 varchar(30)', ''
dbCmd := CoCommand.Create;
dbCmd.CommandTimeout := 30;
dbCmd.CommandType := adCmdText;
dbCmd.Set_ActiveConnection(dbConn);
for ParamsCount := dbCmd.Parameters.Count - 1 downto 0 do
dbCmd.Parameters.Delete(ParamsCount);
CmdString := 'select * from OperatorInfo where operator_name = ?';
Param := dbCmd.CreateParameter('@operator_name', adVarChar, adParamInput, 30, OperatorName); //OperatorName='admin';
dbCmd.Parameters.Append(Param);
dbCmd.CommandText := CmdString;
Rst := dbCmd.Execute(RecordsAffected, dbCmd.Parameters[0], 0);
while not Rst.EOF do
begin
...
Rst.MoveNext;
end;
except
on E: Exception do
...
end;
为什么在跟踪时发现传入值为空呀??
这是跟踪器跟踪出来的信息:exec sp_executesql N'select * from OperatorInfo where operator_name = @P1', N'@P1 varchar(30)', ''
解决方案 »
- Sql 字符排序问题
- 如何向一正在运行的运用程序发送按键消息,比如A.exe发送<Y>键给正在运行的B.exe,A的代码应该如何写
- Date型变量和Time型变量怎么合成一个DateTime型变量?
- 生成xml的错误,高手请指教!!
- 请教DateTimePicker的问题
- 在创建一个ActiveXForm后,关闭工程再重新打开后,为什么Web发布菜单不能用?是Delphi的Bug吗?
- 关于矩阵乘法的问题?
- WEB应用程序—图形统计分析
- 如何安装DELPHI的控件?
- 纯送分帖:烟鬼程序员请看进来!斑竹手下留情不要删帖呀!~~~~
- 急急急---------------------什么问题!!!(再线)
- 关于静态变量的定义
Param := dbCmd.CreateParameter('@operator_name',adVarChar,adParamInput30,OperatorName);
//OperatorName='admin';
dbCmd.Parameters.Append(Param);
其中OperatorName有值,调试时已经看到。但为什么后台跟踪出来的代码却显示为空值。就是说OperatorName的值没有传入??
跟踪器结果:exec sp_executesql N'select * from OperatorInfo where operator_name = @P1', N'@P1 varchar(30)', ''
把"select * from OperatorInfo where operator_name = ?"改为:
"select * from OperatorInfo where operator_name = :operator_name"
把"Param := dbCmd.CreateParameter('@operator_name', adVarChar, adParamInput, 30, OperatorName); " 该为:
"Param := dbCmd.CreateParameter('operator_name', adVarChar, adParamInput, 30, OperatorName); "
试试^-^
用adostoreporc,试试,不用execprc,用active=true;