请教"第一行'-'附近有语法错误"这是个什么问题!

eques 2007-05-09 10:14:56
我要把抓拍的照片保持到名为'photo'的数据库里面,是用存储过程实现的,建表和存储过程代码如下:
IF EXISTS(SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_NAME = 'photo')
DROP TABLE photo
--创建客户信息表
CREATE TABLE photo(
id INT IDENTITY(1,1) PRIMARY KEY,

image nVARCHAR(50) NULL

);


CREATE PROCEDURE add_photo(

@param1 INT,
@param2 NVARCHAR(50)

)AS

DELETE FROM photo WHERE id = @param1;
INSERT INTO photo(image)
VALUES(@param2);


我用vc编写的函数如下:
void CBmxtDlg::insertimage(char a[255])
{
if(!UpdateData())
return;



TRY{
m_db.BeginTrans();
CRecordset rs(&m_db);
CString sql;
rs.Open(CRecordset::dynaset,
"Select max(id) from photo");
int newID=-1;
if(!rs.IsEOF()) {
CDBVariant var;
rs.GetFieldValue((short)0, var, SQL_C_SLONG);
if (var.m_dwType != DBVT_NULL)
newID = var.m_iVal+1;
}
//插入新的照片记录.



sql.Format("call add_photo(%d,""'%s')",newID,a);

TRACE(sql);
m_db.ExecuteSQL(sql);

}
CATCH(CDBException,ex)
{
AfxMessageBox (ex->m_strError);
AfxMessageBox (ex->m_strStateNativeOrigin);
m_db.Rollback();
}
AND_CATCH(CException,e)
{
TCHAR szError[100];
e->GetErrorMessage(szError,100);
AfxMessageBox (szError);
m_db.Rollback();
}
END_CATCH

}

为什么执行这个函数时会出现那样的错误呢?"第一行'-'附近有语法错误",那位帮我解决立即给分!
...全文
1146 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
OracleRoob 2007-05-10
  • 打赏
  • 举报
回复
自己给自己分?

:)
OracleRoob 2007-05-10
  • 打赏
  • 举报
回复
中断代码,逐句调试。
eques10 2007-05-10
  • 打赏
  • 举报
回复
不懂
paoluo 2007-05-09
  • 打赏
  • 举报
回复
存儲過程本身沒有看到問題,檢查下你的程式代碼。

34,593

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧