0

私が知っている方法をすべて試したので、このエラーについて助けを求める時が来たと思います. 基本的に、MySQL で AddUser というストアド プロシージャを作成しました。データベース名は PersonalWebsiteColdfusion です。存在することを保証できます。参考になれば、Coldfusion には Windows IIS 7.5 と OpenBD を使用しています。また、OpenBD Web 管理者でデータソースを作成して検証したことを明確にするために。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 に答える