我要把抓拍的照片保持到名为'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}为什么执行这个函数时会出现那样的错误呢?"第一行'-'附近有语法错误",那位帮我解决立即给分!