0

这是我的程序:

CREATE DEFINER=`root`@`localhost` PROCEDURE `RPTtempreceipts`(
IN vRCPTNO VARCHAR(20))
BEGIN
DECLARE vBNo VARCHAR(20);
DECLARE vPtyCde INTEGER DEFAULT 0;
DECLARE vWMC VARCHAR(20);
DECLARE vPrdCde VARCHAR(10);
DECLARE vBcde CHAR(5);
DECLARE vSAPLID INTEGER DEFAULT 0;

-- Assign Values
SELECT T.BNo,T.pty_code,T.WMC,T.PrdCde,T.Bcde INTO 
vBNo,vPtyCde,vWMC,vPrdCde,vBcde FROM
tbltransaction T INNER JOIN tbltransreceipts TR
ON T.BNo=TR.BNo WHERE TR.RcptNO=vRCPTNO;

SELECT SAPLID INTO vSAPLID FROM tblcust_prd_wor WHERE pty_code=vPtyCde;

-- Select Queries are configured as for Typed Dataset under DT's
SELECT * FROM tbltrans WHERE BNo=vBNo;
SELECT * FROM tbltransrcpt WHERE RNo=vRCPTNO;
END

显示以下错误:

错误代码:1064 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的“DECLARE vPtyCde INTEGER”附近使用正确的语法(耗时 328 毫秒)

错误代码:1064 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的“DECLARE vWMC VARCHAR(20)”附近使用正确的语法(耗时 312 毫秒)

错误代码:1064 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的“DECLARE vPrdCde VARCHAR(10)”附近使用正确的语法(耗时 328 毫秒)

错误代码:1064 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的“DECLARE vBcde CHAR(5)”附近使用正确的语法(耗时 313 毫秒)

错误代码:1064 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的“DECLARE vSAPLID INTEGER DEFAULT 0”附近使用正确的语法(耗时 297 毫秒)

错误代码:1327 未声明的变量:vBNo(占用 312 毫秒)

错误代码:1327 未声明的变量:vSAPLID(耗时 297 毫秒)

我对此感到困惑,因为它在本地主机中工作正常。现在我完成了项目并喜欢将数据库上传到服务器。但是这些错误阻止了我继续前进......请帮助我。

问候,森萨。

4

2 回答 2

0

phpMyAdmin 在每个;.

这篇文章解释了如何避免这种情况:http: //blog.nth-design.com/2009/02/25/creating-sp-in-phpmyadmin/

于 2012-04-22T17:38:04.593 回答
0

正如 DCoder 所说,您使用的分隔符“;” 导致问题。您需要将分隔符更改为不会出现在查询中的任何内容。博客文章中的“$$”示例很可能是安全的,因为双美元符号不太可能出现在许多地方。

您需要确保您的数据库是 5.0 或更高版本的 MySQL 数据库,因为过程仅在 5.0 中启动。

此外,定义 root@localhost 不适用于 Go Daddy 共享主机。您应该能够摆脱该部分或使用 dbuser@'%'。

于 2012-04-23T19:39:39.407 回答