首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

插入一条记录出错,该怎么处理

2012-02-01 
插入一条记录出错我写了一个简单的数据库插入程序,分别插入姓名和年龄 ,用ado调用存储过程但是只能插入一

插入一条记录出错
我写了一个简单的数据库插入程序,分别插入姓名和年龄 ,用ado调用存储过程但是只能插入一个汉字或以字母为姓名的记录,如,只能插入 张 12 不能插入 张三 12,或 akdfg 12
CREATE PROCEDURE [Insert_Item]
@strName [char](8),
@iAge [int]
AS
insert into Demo([username] , [userage]) values(@strName ,@iAge)
GO


C/C++ code
_CommandPtr spCmd;    spCmd.CreateInstance( __uuidof(Command) );    spCmd->ActiveConnection = theApp.m_spConnection;    //spCmd->CommandText = /*(LPCTSTR)strCmd;*/_T("Insert_Item");    //spCmd->CommandType ;    //调用储存过程    _ParameterPtr param;    param = spCmd->CreateParameter("" , adChar , adParamInput,strName.GetLength() + 1 , _variant_t(strName));    spCmd->Parameters->Append(param) ;    param = spCmd->CreateParameter( "" , adInteger , adParamInput , sizeof(BYTE) + 1 , (BYTE)(iAge)) ;    spCmd->Parameters->Append(param);    spCmd->CommandText = _bstr_t(_T("Insert_Item")) ;    spCmd->CommandType = adCmdStoredProc ;    try    {            spCmd->Execute( NULL , NULL , adCmdStoredProc) ;        /*spCmd->Execute( NULL, NULL, adCmdText );*/    }    catch( _com_error& e )    {        AfxMessageBox( e.ErrorMessage() );        return;    }

当插入姓名多于一个汉字时报IDispatch error #3159
不知哪错了,谁给看看

[解决办法]
username字段定义多长啊
[解决办法]
@strName [char](8),
 改为
@strName [char](16),

[解决办法]
要插入的内容长度超过了你定义的字段长度,
增加字段定义的长度吧

热点排行