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