0

认为是时候就这个错误寻求一些帮助了,因为我已经尝试了所有我知道该怎么做的事情。基本上我在 MySQL 中创建了一个名为 AddUser 的存储过程,数据库名称是 PersonalWebsiteColdfusion。我可以向你保证它确实存在。如果有帮助,我将使用 Windows IIS 7.5 和 OpenBD for Coldfusion。也只是为了澄清我已经在 OpenBD 网络管理员中创建并验证了数据源。MySQL 是 5.6 版,它是 x64 位环境。问题是,它适用于 cfquery,但如果可能的话,我更喜欢使用 cfstoredproc。错误基本上就是标题中所说的。希望有人可以提供帮助。

更新以提供相关程序代码。

<cfstoredproc datasource="PersonalWebsiteCF" procedure="AddUser" returnCode="yes">
    <cfprocparam cfsqltype="cf_sql_varchar" value="#form.txtFirstName#" type="in" variable="strFirstName" />
    <cfprocparam cfsqltype="cf_sql_varchar" value="#form.txtLastName#" type="in" variable="strLastName" />
    <cfprocparam cfsqltype="cf_sql_varchar" value="#form.txtEmail#" type="in" variable="strEmail" />
    <cfprocparam cfsqltype="cf_sql_varchar" value="#form.txtUsername#" type="in" variable="strUsername" />
    <cfprocparam cfsqltype="cf_sql_varchar" value="#form.txtPassword#" type="in" variable="strPassword" />
    <cfprocparam cfsqltype="cf_sql_timestamp" value="#Now()#" type="in" variable="strDateJoined" />
    <cfprocparam cfsqltype="cf_sql_varchar" value="#cgi.remote_addr#" type="in" variable="strIP" />
    <cfprocparam cfsqltype="cf_sql_varchar" value="Member" type="in" variable="strMembershipStatus" />
    <cfprocparam cfsqltype="cf_sql_varchar" value="No" type="in" variable="strActive" />
    <cfprocparam cfsqltype="cf_sql_integer" value="0" type="out" variable="strUserID" />
</cfstoredproc>

也许存储过程本身也很有用:

DELIMITER //
CREATE PROCEDURE AddUser (

IN strFirstName varchar(50), 
IN strLastName varchar(50),
IN strEmail varchar(50),
IN strUsername varchar(50),
IN strPassword varchar(150),
IN strDateJoined datetime,
IN strIP varchar(50),
IN strMembershipStatus varchar(50),
IN strActive varchar(50),
OUT strUserID int

) 

BEGIN

INSERT INTO tblUsers (FirstName, LastName, Email, Username, Password, DateJoined, IP,  MembershipStatus, Active) VALUES (strFirstName, strLastName, strEmail, strUsername, strPassword, strDateJoined, strIP, strMembershipStatus, strActive);

SET strUserID = LAST_INSERT_ID();

END//;

自从我第一次发布以来,我一直在尝试各种事情,但我仍然没有找到解决方案。

谢谢

道格拉斯

4

1 回答 1

0

验证在您创建 DSN的管理部分的高级设置中,选择了存储过程选项。

此外,一种解决方法,虽然它不能解决您最初的问题,但它是通过查询调用 SP。

<cfquery name="SomeName" dataSource="SOME_DSN">
    call Your_SP #Arg_1#,#Arg_2#
</cfquery>
于 2014-03-26T09:10:24.700 回答