Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Delphi7 ADO调用where子句作为in参数的mysql存储过程_Mysql_Delphi 7_Procedure - Fatal编程技术网

如何使用Delphi7 ADO调用where子句作为in参数的mysql存储过程

如何使用Delphi7 ADO调用where子句作为in参数的mysql存储过程,mysql,delphi-7,procedure,Mysql,Delphi 7,Procedure,我有一个mySQL存储过程: PROCEDURE `update_table_set_where_datefield`( in p_date_time datetime) BEGIN UPDATE table SET onefield = 1 WHERE datefield = p_date_time; END 我尝试使用Delphi7ADO调用上面的存储过程,但数据没有更改。这是为什么?您需要在ADOStoredProcess上使用参数 ADOStoredProc1.ParamByN

我有一个mySQL存储过程:

PROCEDURE `update_table_set_where_datefield`(
in p_date_time datetime)
BEGIN
  UPDATE table SET onefield = 1
  WHERE datefield = p_date_time;
END

我尝试使用Delphi7ADO调用上面的存储过程,但数据没有更改。这是为什么?

您需要在ADOStoredProcess上使用参数

ADOStoredProc1.ParamByName('PARAM').AsInteger:=变量


adostoredpoc1.打开

您需要在ADOStoredProcess上使用参数

ADOStoredProc1.ParamByName('PARAM').AsInteger:=变量


adostoredpoc1.打开

但是p_date_time参数是日期时间数据类型,而不是整数。为什么要使用ADOStoredProc1.Open?mySQL存储过程没有返回结果集。例如,您应该使用ADOStoredProc1.ParamByName('PARAM').AsDateTime,您可以尝试使用ADOStoredProc1.ExecSql;但是p_date_time参数是日期时间数据类型,而不是整数。为什么要使用ADOStoredProc1.Open?mySQL存储过程没有返回结果集。例如,您应该使用ADOStoredProc1.ParamByName('PARAM').AsDateTime,您可以尝试使用ADOStoredProc1.ExecSql;