日期:2014-05-18  浏览次数:20544 次

请教"第一行'-'附近有语法错误"这是个什么问题!
我要把抓拍的照片保持到名为'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

}

为什么执行这个函数时会出现那样的错误呢?"第一行'-'附近有语法错误",那位帮我解决立即给分!

------解决方案--------------------
不懂